Lead Distribution Engine

Routes unassigned leads to reps by location, then priority tier, then workload, then fair share — and never holds a lead.

What it is

The routing engine. For each unassigned New Lead it filters to the reps whose territory covers the lead's county, ZIP or state; picks among them by tier and current open workload; and if every eligible rep is saturated it assigns anyway to the top performer rather than parking the lead. Built to run a 3,200-lead migration in a single pass.

Also called: round robin leads · assign leads automatically · lead routing · who gets the next lead

See it
Lead Distribution Engine
New lead 3
Marlin Hoover
$52k
Delia Yoder
$39k
Sutter Kline
$24k
Contacted 4
Sutter Kline
$29k
Ronan Petsch
$49k
Ivy Brubaker
$65k
Estimate 2
Ivy Brubaker
$33k
Gideon Alt
$62k
Marlin Hoover
$62k
Sold 2
Marlin Hoover
$59k
Delia Yoder
$55k
Sutter Kline
$22k
The Distribution Manager's run report card: assigned count, a per-rep breakdown, territory gaps and remaining. Sample data — no customer information appears here.
How it works
  1. 1Location is a hard filter; a rep with a completely empty territory covers everywhere
  2. 2Weighted model: while any rep is below their tier fill cap the lead goes to whoever holds fewest open leads; once all are at cap it splits by priority times weight
  3. 3Strict model: the lowest tier takes every lead until capped, then spills down
  4. 4Every decision is made in memory first, then written as a compare-and-swap so two concurrent runs can never double-assign a lead
  5. 5Each assignment writes an audit row and each rep gets one grouped notification, never one per lead
Why we built it

Assigning imported leads by hand does not scale, and the first automated version broke silently at exactly the moment it mattered: it read only the first thousand rows, so a 3,200-lead import looked finished at 1,000 and the rest sat stranded with no signal that anything was wrong. The write path made two round trips per lead, which on an import that size guaranteed a timeout. And with no reps configured it logged a gap for every lead in the backlog, burying the one message that mattered — configure some reps. Routing now goes by location, then priority tier, then workload, then fair share, and it never holds a lead.

The problem
  • Manual assignment as a daily chore nobody does
  • Leads outside anyone's area silently going nowhere
  • Bulk imports timing out or stopping at a thousand rows
  • Two people assigning the same lead at once
Sound familiar?
What you get
Every lead gets an owner the moment it arrives
Territory respected without a rep having to know the map
A rep at capacity stops receiving; the lead still gets routed
One notification per rep per run, not one per lead
What's inside
Draw a Rep's Territory on a Map
One continuous map where you click, paint or circle counties across state lines to set a rep's primary and backup coverage.
Tiers, Weights and Workload Caps
Each rep has a priority tier, a weight, an open-lead cap and an optional daily cap, and the fairness rule stops anyone hoarding while someone sits empty.
Distribution Simulator
Watch simulated leads drop into each rep's column one by one so you can confirm the split matches what you meant before you save.
Territory Gap Queue
A lead nobody's territory covers is recorded once as a gap and left visible for an owner to fix, never silently dropped.
Overflow: Never Hold a Lead
When every eligible rep is at capacity the lead is assigned anyway — to your top performer, or to a rep you nominate.
Routed Leads Count Toward Rep Score
Every engine-routed lead writes an owner-stamped record so the rep score that drives routing can actually see the leads it routed.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →