Route inbound leads to the right owner: ordered first-match rules by account ownership, segment, territory, and intent, weighted round robin with availability and capacity caps inside each pool, speed-to-lead SLAs by intent, a fairness audit, and a misroute fix that preserves context and the original clock. Use when someone asks to design, fix, audit, or explain lead routing or assignment rules, set up round robin, or stop leads going to the wrong rep or sitting unowned. For scoring which leads deserve sales time use lead_scoring; for researching one named account use lead_intelligence.
./install.sh lead-routingname: "lead_routing" description: "Route inbound leads to the right owner: ordered first-match rules by account ownership, segment, territory, and intent, weighted round robin with availability and capacity caps inside each pool, speed-to-lead SLAs by intent, a fairness audit, and a misroute fix that preserves context and the original clock. Use when someone asks to design, fix, audit, or explain lead routing or assignment rules, set up round robin, or stop leads going to the wrong rep or sitting unowned. For scoring which leads deserve sales time use lead_scoring; for researching one named account use lead_intelligence."
Lead routing decides which person gets a new lead, how fast they hear about it, and what happens when they do not act. Bad routing is quiet damage: a demo request lands with a rep on leave, an existing customer gets a cold first call from a stranger, a high intent lead waits in a shared queue while a low intent download gets worked first.
This skill ships a method, a working router at bin/route.py, and worked tables in references/routing-tables.md. The router is tool neutral. The same ordered rules translate into Salesforce assignment rules, a HubSpot rotation workflow, or a standalone script. Design the rules once, on paper, before building them in any one tool.
Two platform facts shape the design. Salesforce assignment rules evaluate entries in order and stop at the first match, and only one assignment rule per object can be active at a time. HubSpot rotation distributes records across a set of owners and can restrict assignment to available users, but the owners in the rotation need the right paid seats. In both cases the rule order you choose is the routing policy, whether you wrote it down or not.
Order the rules like this, first match wins:
Keep the rule count small. Add a rule only when a misroute pattern repeats, and log every change with date, before, after, and reason.
Group reps into pools by segment or territory, one pool per routing destination. Inside a pool:
Response speed is the part of routing with hard research behind it, and the research needs honest handling:
Set targets from intent, for example: 5 minutes for demo and contact requests, 15 to 30 minutes for partner and event leads, 1 hour for content leads, all inside business hours, with an after-hours rule stated plainly. Pair every target with a consequence: at breach, notify the manager and reassign to the next available rep in the pool. A target with no consequence is a wish. Do not repeat the popular claim that most buyers pick the first responder as a measured fact: no traceable original study for it was found while researching this skill.
Write pools and rules in one JSON config following references/config-example.json, then route a lead export:
bash
python3 ~/workspace/skills/lead-routing/bin/route.py route \
--config references/config-example.json \
--leads references/leads-example.csv --out routed.csv
Read the output by hand. In the worked example, ten leads cover every path: one goes straight to its existing account owner, one named account lead jumps the content rule because named account sits higher, midmarket demo leads split 2 to 1 by weight while a rep on leave gets none, and one unmatched event lead lands in the monitor queue instead of vanishing.
Then audit distribution and check the clock:
bash
python3 ~/workspace/skills/lead-routing/bin/route.py audit \
--routed routed.csv --config references/config-example.json
python3 ~/workspace/skills/lead-routing/bin/route.py sla \
--routed routed.csv --now 2026-10-13T16:00:00
The audit compares each owner share against the weighted expected share and flags deviation over 0.15 by default. Judge it on a week or a few hundred leads, not a handful. The SLA check lists every lead past its first-touch deadline with no recorded first touch.
When a lead lands wrong:
Full procedure and worked tables are in references/routing-tables.md.
Track four numbers: routing speed from submission to assignment (under 60 seconds is a sane target for automated routing), first-touch time by intent tier, acceptance rate by pool (below 70 percent accepted and worked points at routing or scoring, not rep effort), and conversion by route type. Review breaches by pool before blaming a rep: a pool-wide miss is a staffing or target problem.
Deliver, in this order:
muse.connector_search to find other connectors and muse.skill_search to find related skills.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.