Search Rampline

Routing Rules That Survive a Headcount Change

Lead routing breaks quietly. Here is the shape of a ruleset that keeps working after the org chart moves, and the two queries we use to tell whether yours is already broken.

Share

Routing is the least glamorous system a revenue team owns and the one most likely to be silently losing meetings. It breaks in a specific way: not with an error, but with a lead landing on a rep who left in March, sitting in their queue, and ageing out.

The failure is invisible because every dashboard treats an assigned lead as a handled lead.

Rules should key on attributes, not people

The single biggest source of rot is routing to named individuals. Every assign to Dana rule is a time bomb set for whenever Dana changes territory, goes on leave, or leaves.

The indirection costs one extra lookup and saves the entire quarterly cleanup.

Every rule needs a fallback and a clock

Two properties turn a routing table from a liability into a system:

  1. A terminal fallback. Some lead will match nothing. If there is no catch-all queue with a real owner, that lead is gone and nobody will ever know it existed.
  2. A reassignment clock. An assignment that isn’t actioned within a defined window returns to the pool. Without this, a rep on holiday is a black hole.

Two queries that tell you if it’s broken

These are deliberately blunt. Run them against whatever your CRM’s query surface is — the shapes below are for a warehouse copy of the leads table.

Stale assignments

-- Leads assigned but untouched. Anything past ~5 days is effectively lost.
select owner_id, count(*) as stalled
from leads
where status = 'assigned'
  and last_activity_at < current_date - interval '5 days'
group by owner_id
order by stalled desc;

Orphaned owners

-- Open leads sitting with someone who is no longer active.
select l.owner_id, count(*) as orphaned
from leads l
left join users u on u.id = l.owner_id
where l.status in ('assigned', 'working')
  and (u.id is null or u.is_active = false)
group by l.owner_id
order by orphaned desc;

If the second query returns anything at all, your routing keys on people. If the first returns a long tail, your clock is missing.

Where autonomous outbound changes the picture

Routing exists to get a human to a conversation before it goes cold. When the agent works the reply itself — researching, responding, handling the objection, and booking — routing stops being a race and becomes a hand-off: a qualified meeting lands on a calendar with the thread attached.

Want to see what your routing looks like when only booked meetings flow through it? Book a demo.

Keep reading