Design lead routing and SLAs that actually get built.
The assignment rules, round-robin or account-based logic, SLA timers, and fallbacks, written as a spec.
Inside: The match logic, the SLA timers, and fallback paths.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads live account ownership, rep capacity, and territory fields automatically, so routing respects who already owns what.
fills the firmographic fields (size, industry, geo) that routing depends on before assignment, so fewer leads fall to fallback.
measures real first-touch times so the SLA is set against reality, not hope.
This was built for a B2B SaaS org routing inbound to a segmented sales team. Set these to your stack:
Pin the account-ownership rule first. The fastest way to poison a routing model is to hand a rep a lead at a company another rep already runs.
| Set this | What it is | Default / Example |
|---|---|---|
| CRM | your CRM connector | a CRM (Salesforce |
| ROUTING model | how leads match to owners | round-robinterritoryaccount-basedhybrid |
| ROUTING fields | the fields assignment reads | segmentgeocompany sizeexisting owner |
| SEGMENTS | the buckets you route into | SMBMid-MarketEnterprise |
| SLA timers | first-touch clock per segment | 5 min for hot inbound1 business day otherwise |
| CAPACITY rule | how load is balanced | equal round-robinweighted by ramp |
| FALLBACKS | what happens when no rule matches | queue ownermanagerholding pool |
Everything the skill does, in full.
Takes your team shape and your rules and produces a routing and SLA model written to be built. It lays out how a lead gets matched to an owner, whether by round-robin, territory, or account ownership, sets the SLA clock for first touch, and defines the fallbacks for the cases that quietly break every routing setup: the rep who is out, the lead that matches nobody, the account already owned. The output is a spec, not a suggestion.
- 1Match logic
Define the order rules are evaluated in, because order is the model. Typically: existing account owner wins first, then territory or segment match, then round-robin within the matched pool. Print the precedence so there is no ambiguity about which rule fires when two could.
- 2Round-robin and capacity
Within a pool, assign in rotation, and state how capacity is handled: flat rotation, or weighted so a ramping rep gets fewer. Define what "available" means so leads never route to someone out of office. Capacity without an availability rule just routes leads into a void.
- 3SLA timers
Set a first-touch clock per segment and state the business-hours rule. Define the escalation: what happens at the SLA breach, who gets notified, and whether the lead re-routes. An SLA with no breach action is a wish.
- 4Fallback paths
Name the destination for every lead that matches nothing: no territory, no enrichment, no available rep. A holding queue with a named owner beats a lead sitting unassigned. Every path in the model must terminate at a human.
- 5Implementation spec
Output the rules as an ordered, buildable list: field checks, pool definitions, rotation logic, timers, and escalations. Written so whoever configures the CRM can build it without guessing what you meant.
- Every routing path terminates at a named owner or queue. No lead can fall through.
- Rule precedence is explicit. No two rules can fire ambiguously.
- Every SLA has a breach action, not just a timer.
- Account ownership is checked before any new assignment. No poaching by routing.
LEAD ROUTING MODEL · 3 segments · 14 reps Precedence: 1. Existing account owner -> that owner (skip all below) 2. Enterprise (size >= 1000) -> Ent pool, round-robin, weighted by ramp 3. Mid-Market -> MM pool, flat round-robin 4. SMB -> SMB pool, flat round-robin 5. No match / missing fields -> holding queue (owner: RevOps lead) SLA: Hot inbound (demo request): 5 min first touch, breach -> notify rep + manager, re-route at 15 min Standard inbound: 1 business day, breach -> notify manager Fallbacks: Rep out of office -> skip in rotation, do not queue to them No enrichment -> route to holding queue, flag for enrichment, not to a rep
The SLA timers (5 minutes hot, 1 business day standard) and the size cutoffs are defaults, not laws. They suited a mid-market SaaS inbound motion. If your buyers move slower or your segments split elsewhere, change them. The precedence logic holds. The thresholds are yours.
Where an operator takes this next.
The spec is step one. Here is where an operator takes it once the manual version proves out.
You built the model once, now the leaks get caught as they happen.
Hand the ordered rule list to whoever configures Salesforce or HubSpot routing (native rules or a tool like LeanData), so the spec becomes the live config, not a doc that sits next to it.
Wire a scheduled Claude task to check first-touch time against the timer and post a breach alert to Slack the moment a lead crosses it.
Pull everything that landed in the holding queue from the CRM and report why (missing field, no territory match), so the enrichment gaps causing fallbacks actually get fixed.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.