#The challenge
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. When any link in the chain failed, the symptom was always the same and always visible to a rep: a meeting booked with the wrong owner, a duplicate opportunity, a lead that never converted to a contact, an opportunity with no calendar invite behind it. Reps reported these one at a time, continuously, and each one arrived as a specific record rather than a pattern.
#The approach
Treated routing failures as a standing operational queue, not a project
Every reported misroute became a ticket carrying the record link and the routing engine's audit log for that record. Each was traced to a specific rule, node or sync behaviour — an exception node nobody remembered adding, a deactivated owner breaking the CRM-to-CRM sync, a matching rule firing on the wrong object — and fixed at the rule level rather than by correcting the record.
Rebuilt segmentation around a single trustworthy employee-count signal
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.
Made ownership win over round-robin
The most common failure was an account that already had an owner, with the scheduler round-robining the meeting to someone else anyway. Reconfigured the rules so person-level and CRM-object-level criteria were evaluated separately, added industry and country to the person evaluation, made lead ownership respected alongside account and contact ownership, and constrained the ownership-update automation so it can never reassign an account already owned by an active rep and never touches internal or team accounts at all.
Stopped duplicate opportunity creation at the source
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.
Fixed the qualification and exclusion rules
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. Added a routing exception so an account with a required owner reaches that owner no matter which of its several domains the lead arrives on, rather than falling into the round-robin.
Stood up SLA tracking and then actually monitored it
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. Then ran a weekly manual check of the SLA reports for accuracy — specifically confirming that inactive contacts still surfaced as a missed SLA rather than quietly disappearing from the report.
Built the ABM and nurture automation on top of the fixed foundation
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. Added batch-size limits and failure monitoring after race conditions appeared at volume, and a failure-result field so every enrollment outcome was queryable.
Instrumented the front door
Web-analytics events for navigation anchors and header CTAs, comparisons between CTA clicks and completed form fills, a spike investigation into unattributed traffic, and account-level engagement fields rolled from child accounts to parent so campaign influence could be reported on the opportunity. Reworked the account page layout into a dedicated tab as engagement fields multiplied.
Ran a real handoff at the end
Categorized every open task as finish-now, hand off or close; documented status and next steps on the high-priority ones; recorded admin walkthroughs for each system; moved LeanScale-built reports into a dedicated folder; audited which dashboards were still in active use; reviewed validation rules, workflows and unmanaged packages for anything requiring maintenance; transferred integration and admin ownership; and removed LeanScale from alerts and licenses.
#Outcomes
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.
Unworked leads surface as a miss, not a mystery
SLA alerting carries enough context to act on, and a weekly monitoring pass verifies that edge cases — inactive contacts in particular — still trigger the alert.
Generated-copy outbound shipped with guardrails
Readiness checks, placeholder-token safeguards, batch limits and a queryable failure-result field meant an incomplete email could be caught before it sent rather than after.
The estate was handed back documented, not abandoned
Admin walkthroughs, a report and dashboard audit, an unmanaged-package review, and a transfer of integration ownership and access.
Open at handoff, and named as such
Consolidating the competing employee-count fields into one was researched and specified but still open when the engagement ended, along with a proactive error-monitoring dashboard and a speed-to-first-conversation report.