#The challenge
The firm ran two systems of record — a CRM for go-to-market and a separate operational system for delivery and billing — and the seam between them leaked. Outbound lived in the CRM's native sequencing tool, which the business-development team had outgrown: reps couldn't complete cadences whose steps interleaved email and calls, and historical context lived in a system they had to leave the sequencer to check. There was no systematic way to act on buying signals. The firm's best pipeline came from people it had already met, but past relationships decayed with nothing scheduling the next touch. Lead source was inconsistent across contact, deal and company, and duplicate and stale records were common enough that reporting was argued with rather than acted on.
#The approach
Migrated outbound onto a dedicated sales-engagement platform
Ported active CRM sequences across one at a time, closing enrollment in the old tool while letting in-flight contacts finish. Connected licenses, ran a full sync, replaced the CRM's mail plug-in with the sequencer's, swapped the browser and desktop mail extensions, disabled contact creation flowing the wrong direction, and cleaned up artifacts left behind by an earlier abandoned attempt at the same tool. Reps were trained live and with recorded walkthroughs.
Split every cadence by channel, because that was the actual blocker
Reps were stuck when a cadence alternated email and call steps and the call couldn't be made — the email step behind it was unreachable. Each cadence was split into a paired email-only and call-only cadence running on different intervals, with enrollment and un-enrollment kept in sync across the pair so a contact entering one entered both.
Built a signal-trigger library and specified each trigger before building it
Triggers for contact job changes, company hiring and departures, funding events, and transaction events such as mergers, acquisitions and public listings. Each was documented in a working sheet covering trigger name, description, intended output, who the resulting task or notification routes to, frequency, filter parameters and credit cost. Output landed as CRM notifications, dashboards, and — where the team wanted it — enrollment straight into a dedicated cadence with agreed messaging templates.
Tuned the triggers rather than trusting them
Alert volume proved unworkable within the first weeks, so the program was audited for repeat populations and false positives against real examples. Title coverage was widened at director level and above, transaction events were prioritized above funding events, time windows were capped, out-of-scope populations were excluded, and auto-enrollment was replaced by a review queue so a human triaged before anything sequenced. Every active filter and search prompt was written up, and the running cost was estimated.
Rebuilt the re-engagement motion for lapsed relationships
The data came first: years of historical meeting records consolidated, contacts enriched and de-duplicated, last-meeting and desired-next-meeting dates backfilled, and a rule to select which dormant contacts were actually workable. Then the automation — if a contact completes both the re-engagement and escalation cadences with no reply, the next target date resets ~90 days out. Cadences were broken out by owner, with a companion report listing contacts ineligible because they were already enrolled elsewhere.
Fixed lead source end to end
Created originating and most-recent source and sub-source fields at contact, deal and company level, automated them across the whole conversion chain, synced them to the operational system's company and project records, added dedicated values so signal-triggered contacts were attributable to the trigger that produced them, and backfilled historical records from a full export.
Closed the loop to the delivery and billing systems
Rolled invoiced amounts from the operational system's project records back into CRM deals, aggregated by invoice group, so booked value could be compared against what was actually billed — including a historical backfill of legacy projects as retroactive deal records. Validated that closed-won field mappings genuinely pushed through rather than assuming they did.
Built the resourcing object the reporting depended on, and ran a standing hygiene program
Designed and iterated a custom object for resource availability — status picklists, availability flags with entry and exit timestamps, expected return and approved-time-off dates, and checkbox mirrors of multi-select fields so they were reportable at all. Alongside it: a two-phase field audit with an explicit rule (delete custom fields under ~10% fill that no automation, formula or form references; keep above ~30%; review the rest), region-value standardization into one format with a derived target-region field, phone-field normalization, owner-reassignment automations, duplicate merges, and a clean separation of unsubscribe from do-not-contact after a bounce-driven suppression spike.
#Outcomes
Outbound consolidated onto one platform
Active sequences were retired from the CRM and rebuilt in the sequencer, with historical meeting and email context synced across so reps stopped bouncing between two systems mid-task.
The signal program survived contact with reps
Rather than being left running, the trigger library was audited against real false-positive examples, re-scoped, cost-estimated, and moved from auto-enrollment to a human review queue at the client's request.
Booked value became reconcilable against amounts actually billed
Invoiced amounts from the operational system now roll into the CRM deal record, historical projects included.
Lead source is consistent across the conversion chain
Originating and most-recent source now exist and stay populated at contact, deal and company level and sync into the operational system.
Resource availability became reportable
The availability object and its companion report now carry client-contact lookups, contact owner, last client activity and an outreach-made flag, so unassigned capacity can be worked rather than just viewed.