Residential solar has its own routing rules. TCPA consent evidence, utility territory filtering, homeowner qualification, monthly-bill thresholds, and state-by-state incentive rules all have to be enforced before a bid request reaches an installer. Lead Router runs all of it on one routing engine.
Real-Time
Routing decision
Certs forwarded
Consent evidence
Zip allow-lists
Utility territories
Webhook / HTTP post
Lead delivery
Example setup
A visual walkthrough with photographs, video and a routing diagram you can explore.
The Reality
Solar programs and local utility rules can affect which leads an installer wants. Use separate contracts, prices, and filters for the territories you serve. Keep those settings current as the installer agreements change.
On January 24, 2025, the Eleventh Circuit vacated the one-to-one and logically-and-topically-associated consent restrictions in Part III.D of FCC 23-107. Those vacated restrictions are not a current federal one-to-one requirement. Existing TCPA obligations still apply to the relevant calls and texts. Solar operators still need to review the planned outreach, keep the consumer’s actual disclosure, and set the correct installer eligibility. Read the court opinion.
Utility territory is the next filter most platforms skip. An installer based in San Jose serves PG&E customers but not SCE, SDG&E, or LADWP customers. An installer in Raleigh serves Duke Energy Carolinas but not Dominion. Without zip-to-utility filtering in the router, installers waste appointment-setter time on leads that cannot buy their panels. Lead Router uses zip allow-lists on each contract to enforce this. Operators run one contract per utility territory per installer.
Homeowner status, monthly electric bill, household income, and roof condition are the qualification filters that separate a real residential solar lead from wasted installer phone time. All four are custom field filters on the contract, evaluated before the bid step, so rejected leads never reach an installer.
State incentive rules change the numbers enough that distribution has to be state-aware. NEM 3.0 cut the California export credit and shifted value toward adding a battery. New Jersey and Massachusetts run SREC and SMART programs that change the dollar-per-watt payback for installers. Texas and Florida are pure retail-offset markets. Pricing, caps, and priority have to be set per contract per state.

How Lead Router Solves It
Each capability solves a specific solar problem and is enforced at the contract level.
Timestamp, IP, user agent, the campaign, and the verbatim consent language shown at submission are stored with the lead, along with TrustedForm and Jornaya certificate references when your form captures them. That is the evidence record a class-action plaintiff subpoenas, and it stays attached to the lead through delivery and export.
Each contract carries its own zip allow-list. Operators run one contract per utility per installer: PG&E, SCE, SDG&E, Duke Energy Carolinas, Duke Energy Florida, NYSEG, ConEd, Dominion, APS, Xcel, PSE&G. Zips outside the utility territory are rejected in the routing engine before the bid step.
Homeowner = true is a contract-level custom field filter. Renters are screened out before the buyer sees a bid request, so installers do not spend call time on leads that cannot install panels. The same pattern covers roof condition, roof age, and shading flags when the intake form captures them.
Monthly electric bill is a numeric custom field with range filters. A contract can require bills over $150 or $200 to match an installer that will not quote smaller systems. Household income buckets and FICO buckets work the same way, and all three are evaluated before the bid step.
Create a separate contract for each installer and territory. Set the price, filters, schedule, and caps to match that agreement. You can account for local solar programs when setting those terms; Lead Router applies the rules you enter.
Every contract has its own schedule (a time zone plus day-of-week and hour windows). The routing engine skips any contract whose window is closed. Set an installer schedule to the 8am to 9pm hours your TCPA policy allows. Run a separate contract where a state rule is stricter (Florida Sunday rules, for example). Off-hours leads go to the next eligible installer instead of one that cannot legally dial.
Inside Lead Router

Where It Fits
Residential solar is the primary use case. Adjacent sub-verticals reuse the same contract structure.
Delivery
Lead Router delivers over webhook or HTTP post, so it reaches any CRM, design tool, or proposal platform that exposes a lead-intake endpoint, which most modern solar tools do.
Delivery happens over HTTPS POST, generic webhook, email, or Google Sheets. Field mapping is set per contract, so the outbound payload matches what each destination expects. Zoho is a native CRM connector. Salesforce and HubSpot connectors are in development. Everything else is reached through its standard lead-intake endpoint. Teams often route solar leads into design and proposal systems like Aurora Solar, OpenSolar, or Enerflo the same way.
Consent artifacts travel with the lead. TrustedForm cert URLs, Jornaya LeadiD tokens, and ActiveProspect identifiers are forwarded in the delivery payload so the installer can pull the cert independently and match it to their own audit trail. That matters when a TCPA complaint comes in twelve months after the install and the discovery request arrives.
Frequently Asked
The questions solar operators ask before they migrate their routing.
Yes. Every contract has its own zip allow-list. That is how utility territory filtering works in practice. A contract scoped to PG&E gets only zips inside PG&E territory. The same pattern covers SCE, SDG&E, Duke Energy, NYSEG, ConEd, Dominion, APS, Xcel, and any other investor-owned or municipal utility. The zip-to-utility mapping lives on the contract, so you can run separate contracts for each utility an installer serves.
Lead Router preserves consent text, timestamps and certificate references supplied by the intake, with native consent capture available when configured. Operators remain responsible for obtaining valid consent for their outreach and configuring delivery of the relevant evidence.
Yes. Homeowner status is a contract-level custom field filter. A contract can require homeownership = true and reject renters before the buyer ever sees a bid request. The same custom field pattern supports roof condition, roof age, roof type, and solar shading flags when those are captured on the intake form.
Yes. Monthly electric bill is a numeric custom field with range filter support. Contracts can require bills above a given threshold (for example $150 or $200) to screen out prospects too small to justify a residential solar quote. Income and credit bucketing work the same way. Filter evaluation happens in the routing engine before bid, so rejected leads never reach the buyer.
Lead Router delivers over webhook or a standard HTTPS post, so it reaches any solar design, proposal, or CRM tool with a lead-intake endpoint. Teams often route leads into systems like Aurora Solar, OpenSolar, or Enerflo using their standard intake endpoints. Field mapping is set per contract, so the payload matches what each system expects. TrustedForm cert URLs, Jornaya LeadiD tokens, and ActiveProspect identifiers are sent in the same payload so buyers can audit consent on their side.
Built For Solar
Utility territory, homeowner qualification, monthly-bill thresholds, NEM 3.0 and SREC-aware contracts, and TCPA consent evidence on every lead. All on one engine. Get started with a test lead.
No feature tiers. Usage is metered and billed as you go.