The problem
From 12 to 27 August 2026 the intake lanes that assign new leads to a sales rep silently stopped assigning. No alert fired. 56 contacts went without an owner for 17 days.
The CRM's workflows are re-published by an external process, so a fix inside the CRM alone could be overwritten. The group needed to know the moment assignment stopped, whatever the cause.
What we built
- Workflow repairs, each saved with a before-and-after snapshot (16 files), including the lane that gated on lead source.
- A sweep that assigned the 16 contacts stranded behind that source gate.
- A workflow SDK that reads, builds and edits CRM workflow graphs through the platform's internal API, because the public API cannot read workflow steps. Dry-run by default, snapshot before every write, publishing only with explicit approval.
- A watchdog on a two-hour timer that asks one question: are new contacts getting an owner? It looks across a 7-day window as well as a short one.
Result
- On 2 July 2026, 541 opportunities were redistributed round-robin across six reps (91 / 90 / 90 / 90 / 90 / 90) with 0 failures.
- The watchdog has run since 30 August 2026. It flagged residual unassigned paid-social contacts on 2 and 27 September, and on 1 October read 0 of 41 unassigned (0%) over 7 days, with all lanes published.
- The design lesson: monitor the outcome, not the mechanism. A 7-day window caught a leak that a 24-hour window missed.
Scope and limits
- No claim about conversion or revenue. We have not measured the effect of faster assignment.
- The CRM and its intake workflows are not ours. We audited, repaired and instrumented them; we did not build them.
- The 56-contact figure comes from incident notes written at the time. The watchdog's own logs begin on 30 August 2026.