A full estate audit delivered in three review-ready workbooks





More than a decade of marketing automation had accumulated into an estate nobody could describe: roughly 15,000 programs, tens of thousands of smart campaigns, ~2,300 lead fields, ~600 forms, hundreds of email templates and thousands of lists, sitting on ~2.5M contacts with roughly 400k duplicates in them. The signed scope named a handful of integrations.
The first pass counted everything and reported the number that mattered: a few hundred active smart campaigns out of roughly fifteen thousand. The stated principle was that auditing all fifteen thousand programs row by row is wasted hours.
The legacy platform's REST API does not expose the integration registry or the webhook list, and does not return smart-list criteria, flow steps, or campaign run results. The live footprint had to be reconstructed from the activity-type catalog, the full lead-field schema, and the custom objects, with webhooks read out of the admin UI by hand.
Every lead field was inventoried and flagged for CRM origin using the custom-field API naming convention: roughly 1,600 of ~2,300 fields came from the CRM. Each row carries data type, length, read-only state and an explicit migrate-or-not decision.
The legacy platform's only real control was a per-field 'block updates' switch inside a bidirectional sync. The new platform allows a per-property rule: two-way, one-way in either direction, or don't sync at all.
Behavioural and demographic scoring lived across dozens of separate scoring campaigns feeding grade thresholds. In the new platform, one rule-based score property replaces dozens of campaigns.
Dynamic lists become active lists; static lists move as-is; segmentations have no direct equivalent and get rebuilt as single-select properties rather than as lists. Trigger campaigns become workflows with enrollment triggers; batch campaigns become scheduled or list-enrolled workflows.
Email, webinar and nurture programs are roughly 80% of the volume and the low-risk part; they migrate in waves with a QA gate at the end of each. The remaining 20% is the high-risk tail: campaigns with custom scripting (over a hundred scripted assets, a couple of dozen genuinely complex) and campaigns that fire external API calls.
A full estate audit delivered in three review-ready workbooks
Activities (roughly 2,500 live automations out of ~54,000 smart campaigns, ~85 activity types, ~29 channels, ~30 segmentations); Objects and Fields (~2,300 fields, ~1,600 of CRM origin, ~870 flagged unused); Other Assets (~600 forms, ~300 email templates, ~390 snippets, the scripted-campaign tail, ~50 integrations and ~16 webhooks).
5 steps
Consolidating two Salesforce orgs into one instance without stopping the business
Two orgs to one
ARR and MRR roll-forward


6 steps
Forecasting off an inherited spreadsheet, until the revenue book was rebuilt in the CRM
CRM became the self-serve source of truth for MRR