Routing behaviour became explainable




Every inbound lead crossed four systems before it reached a human: a web form, a meeting scheduler, a routing engine, and two CRMs kept in sync. Which sales pool a lead belonged to, commercial or enterprise, was decided by an inferred employee count that lived in several competing fields across leads, contacts, accounts and opportunities, populated by different sources with no agreed winner.
Every reported misroute became a ticket carrying the record link and the routing engine's audit log for that record.
Researched how each candidate field was populated, on which object, by which source, and which one the routing actually depended on. When the ceiling defining the commercial segment was raised, with a carve-out for one account type, the change was made in the scheduler and the routing engine together, in the same pass, rather than in one and then the other.
The most common failure was an account that already had an owner, with the scheduler round-robining the meeting to someone else anyway.
Added a check for an existing open opportunity before an opportunity is created from a booked meeting, and fixed the new-lead branch of the router so a lead already carrying a recent qualification date falls through to standard routing instead of down a second creation path.
Rewrote the disqualification logic after it was matching text anywhere inside an email address rather than at the domain, legitimate addresses were being excluded on a substring.
Built alerting on unworked leads with the engagement detail and title in the alert body so a rep could triage from the alert, and excluded owners who shouldn't receive them.
Personalized outbound built from an enrichment webhook, run through the marketing platform into a cold-email tool. Because the message copy was generated upstream and not always ready when the workflow fired, added email-readiness checks and copy safeguards so a contact cannot receive a send while a placeholder token is still unresolved.
Routing behaviour became explainable
Reported misroutes could be traced to a named rule or router node using the engine's audit log and fixed there, instead of being corrected record by record.
Ownership rules stopped being overridden. Owned accounts, team accounts and lead-level ownership are now respected by the scheduler and the ownership-update automation, closing the most frequently reported failure class.


5 steps
Deciding which system owns the MQL, and making the number defensible
A lead count marketing reports on
Lead routing and speed to lead



+1
6 steps
From an empty CRM to enrichment, territories and a live lead-routing engine
Full account base enriched
Attribution
5 steps
Rebuilding a channel taxonomy and the MQL workflows that were never firing
Channel taxonomy rebuilt