Zip code-based lead distribution is the most common geographic routing pattern for agencies working in home services, solar, insurance, and mortgage. Each buyer covers a set of zips — a contractor's service area, an installer's territory, a lender's licensed states — and the router matches incoming leads to the right buyer before they go cold.
The mechanics are simple when you have 10 buyers and 50 zips. They become a maintenance problem fast when you have 8 buyers, 600 zips, and overlap between territories — which is where most manual setups fall apart.
How zip code routing works
At its core, zip routing is a lookup: does the incoming lead's zip code appear in this buyer's list? The router loops through buyers in priority order, checks each buyer's zip list against the lead's zip, and delivers to the first match (exclusive mode) or all matches (shared mode).
Two common extensions make this more useful in practice:
- Zip ranges: instead of listing every zip individually, you define a range (e.g. all zips 90200–90299) or import a state-level zip list. Useful when buyers cover entire metro areas or states.
- Radius rules: instead of a list, you define a center zip and a radius in miles. The router calculates distance from the lead's zip centroid to the buyer's center. Common for service businesses with circular coverage areas rather than fixed territory maps.
Setting up zip routing in four steps
- Map each buyer's territory: collect the zip list or define the radius for each buyer. For home services agencies, this often means getting a coverage area from each contractor and converting it to a zip list. ZIP code databases by state or county are freely available and speed this up.
- Upload or enter zip lists per buyer: in a dedicated router, you paste the list or upload a CSV per buyer. In Zapier, you need a separate lookup spreadsheet updated manually — which breaks when a buyer adjusts their territory mid-month.
- Set priority for overlapping territories: any two buyers who cover the same zip need a priority ordering. Who gets first refusal? This is business logic, not technical — typically the buyer paying more per lead or closing a higher percentage.
- Define overflow rules: what happens to a lead from a zip no buyer covers? Configure a fallback rule (default buyer, queue, reject) so leads never drop silently.
Tools differ significantly in how they handle list size and rule combinations. LeadProsper supports zip routing on its $499/mo plan. LeadMove includes the same capability — zip lists, radius rules, and stacked conditions — on its $149/mo Starter plan, with no limit on list size per buyer.
Why Sheets and Zapier collapse at scale
A Sheets + Zapier zip routing setup works at small scale with a VLOOKUP or INDEX/MATCH approach. Past 200–300 zips per buyer, issues accumulate:
- VLOOKUP on a large sheet takes time, and Zapier steps have execution timeouts. Under lead bursts, steps time out silently and leads are lost without any error notification.
- Territory changes require updating the sheet and re-testing the Zap. In practice, this rarely happens on time, so buyers receive leads outside their area and disputes follow.
- Overlap logic — two buyers covering the same zip — requires conditional branch steps per buyer pair. With 8 buyers and overlapping territories, the Zap structure becomes impossible to audit.
- There is no built-in way to combine zip routing with caps or time-of-day rules in the same step. Each rule type requires its own layer of Zaps, multiplying failure points.
Comparing zip routing tools
| Tool | Zip list support | Radius rules | Max zips per buyer | Starting price |
|---|---|---|---|---|
| Zapier + Sheets | Manual (spreadsheet) | No | ~200 reliably | $49–300/mo |
| LeadMove | Yes (upload or paste) | Yes | Unlimited | $149/mo |
| LeadProsper | Yes | Yes | Unlimited | $499+/mo |
| Boberdoo | Yes | Yes | Unlimited | $1,000+/mo |
Handling territory overlaps and disputes
Territory disputes are the most common friction point in zip-based routing. Two buyers both claim a zip; one complains they are not getting enough leads from their area. Preventing this requires three things: explicit priority ordering documented and agreed to by both buyers, delivery logs that show exactly which buyer each lead went to and why, and a buyer portal where each buyer can audit their own lead history without contacting you.
Without logging at the rule-evaluation level — not just "did this lead deliver?" but "which buyer matched and why?" — diagnosing a territory dispute means reconstructing the routing decision from scattered data. Most Zapier setups have none of this; task history in Zapier shows whether a step ran, not which routing branch was taken or which zip condition matched.
Zip code routing works reliably when rule evaluation, delivery, and logging all happen in the same system. Splitting them across a spreadsheet, a Zap, and a manual inbox creates gaps that only surface as lost leads or buyer complaints — usually weeks after the problem started.