CRM data unification — case study hero image
Multi-site services2023~12 weeks (overlapping with vendor onboarding)

CRM data unification

One customer story before a messy cutover

Client

National operator with two legacy regions (~180 staff customer-facing). Salesforce was the target; spreadsheets and an older CRM export were sources.

How we engaged

Data workstream alongside their implementation partner — our team owned mapping, scripts, and sign-off packs; they owned Salesforce config.

Stack & tooling

  • Spreadsheet / CSV pipelines (documented transforms)
  • Airtable as staging for review queues
  • Reconciliation scripts (row counts, checksum samples)
  • Runbook co-owned with IT for cutover weekend
AirtableDataMigrationCRM

Two offices had been entering leads differently for years. Before a planned CRM consolidation, we normalised definitions, deduplicated records, and ran batched migrations with reconciliation checks the finance lead could sign off.

Starting point

Pipeline reports never matched finance’s view of won deals. The same company appeared three ways in the export. Some reps used free-text fields for industry; others used picklists. Automation projects had stalled because nobody trusted the underlying records.

Challenge

Politics around whose definition of ‘active customer’ was correct. Limited window for write-freeze over a long weekend. Zero appetite for another ‘big bang’ migration without a rollback story.

Approach

Facilitated a short workshop to pick golden definitions and document exceptions (e.g. parent/child accounts). Built dedupe rules with a human review queue for fuzzy matches. Migrated in batches with before/after counts and a sample of 50 accounts reviewed by sales ops each time. Wrote rollback steps that didn’t assume everyone read Slack at 2 a.m.

Outcomes

  • Exec dashboards stopped fighting the CRM list views post-cutover
  • Sales ops reported far fewer ‘which record is real?’ tickets in the first month
  • Integration vendor could proceed without constantly patching bad inbound data

Constraints & non-negotiables

Limits shape what ships now vs later — these were ours on this job.

  • · Could not delete historical notes—append-only migration for activity in phase one
  • · Some fields legally had to stay in the old system read-only for retention

Phases

Order and emphasis change by client — this is how this one ran.

  1. 1

    Weeks 1–3 · Audit & definitions

    Field inventory, owner map, agreed golden record rules, exception log started.

  2. 2

    Weeks 4–7 · Clean & dedupe

    Iterative passes, review queues, comms to reps with clear deadlines.

  3. 3

    Weeks 8–10 · Dry runs

    Full dress rehearsal in sandbox, timing estimates, failure drills.

  4. 4

    Weeks 11–12 · Cutover support

    Hypercare window, daily reconciliation notes, handover to internal admin.

What actually worked

Batching with sign-off beats ‘migrate everything Friday and hope’. Naming one accountable data owner per region ended circular arguments faster.

Real delivery patterns; names and details blended for confidentiality. Happy to walk through a comparable scope.