Skip to main content
Leeonex
All insights

Business systems

CRM Data Migration Checklist: Rehearse, Reconcile, Then Cut Over

A controlled migration plan for operations teams moving customer records, history, ownership, relationships, automations, and integrations into a new CRM.

By Leeonex14 min read
Customer records and relationships moving from a legacy CRM through a protected validation gateway into a new CRM with an archive and retry loop
A CRM migration is ready for cutover only after representative records, relationships, workflows, permissions, reports, and recovery steps have been rehearsed and reconciled.

The short answer: migrate a working customer record

A CRM migration is complete when users can trust the new system to run customer work—not when an import job reports success. Inventory and clean the source, map stable identities and relationships, rehearse representative loads, reconcile the result, approve a controlled cutover, and keep a tested recovery path until the destination is stable.

Protect the original source snapshot and record every rule that changes data. A contact without its company, a deal without its activity history, or a customer without the correct owner can pass a row-count check while failing the business.

Preserve

Source truth and stable identifiers.

Rehearse

Representative data and hard cases.

Reconcile

Records, relationships, tasks, reports.

Control eight migration lanes

CRM migration control matrix covering scope, identity, fields, relationships, history, automation, access, and evidence
Treat each lane as a business acceptance problem, not only a data-transfer task. A migration can load every row and still break the customer workflow.
LaneDecisionsAcceptance evidence
ScopeSources, objects, periods, exclusionsApproved inventory and archive
IdentitySource IDs, target keys, dedupeNo unexplained duplicates or collisions
FieldsTypes, values, transforms, defaultsCritical-field comparison
RelationshipsParent, child, many-to-many, ownerAssociation and orphan checks
HistoryActivities, notes, files, timestampsRepresentative customer timelines
BehaviorStages, rules, automation, reportsEnd-to-end task tests
AccessUsers, roles, consent, retentionRole tests and owner approval
OperationsCutover, delta, rollback, supportRehearsal log and signed gate

Inventory the operating system around the data

List every source, object, field, relationship, owner, activity, file, report, automation, integration, and downstream export. Mark each item migrate, transform, archive, rebuild, replace, or retire. Name a business owner for customer identity, pipeline, service history, marketing status, finance-related data, and reporting where those domains exist.

Define a stable identifier for every object. Preserve the legacy identifier in the destination or a controlled crosswalk so a failed row, relationship, or later support question can be traced back. Never use a display name as an implicit unique key unless the business can prove it is unique and stable.

HubSpot's current import documentation explains why this matters: imports use unique identifiers to update records, avoid duplicates, and associate objects. Microsoft's Dataverse migration guidance likewise notes that dependent relationships may require parent records and alternate keys before child lookups can be populated. The exact mechanics vary by platform, but identity and load order must be designed before production.

Mapping rule

For each source value, record the target object and field, type, transform, default, validation rule, relationship key, exclusion reason, and approving owner.

Clean deliberately in a versioned staging step. Keep raw extracts unchanged, then apply reviewed rules for duplicates, invalid dates, empty required fields, obsolete stages, unused fields, and inconsistent categories. If personal data is in scope, have the appropriate owner or adviser confirm purpose, minimization, retention, access, and deletion obligations rather than treating “move everything” as the default.

Rehearse the hard records, not only a neat sample

CRM migration loop from source snapshot through transform, pilot load, reconciliation, approval, freeze, delta load, cutover, and stabilization
The production run should reuse a rehearsed process, controlled mappings, acceptance tests, and named rollback conditions.

Build a pilot set with ordinary and difficult records: duplicate candidates, missing identifiers, several contacts per company, multiple deals, long activity histories, attachments, inactive owners, unusual characters, old stages, and records touched by integrations. Test in a safe destination environment whenever the platform supports it. Salesforce's Bulk API guidance, for example, explicitly recommends testing data loads in a sandbox because production behavior can differ.

Reconciliation needs layers. Compare counts and approved exclusions by object; compare critical fields and transformation results; verify associations and detect orphans; inspect complete customer timelines; test permissions, automations, reports, and integrations; then ask users to find the latest conversation, current opportunity, next action, and correct owner.

Keep a discrepancy log with source ID, destination ID, affected rule, severity, owner, decision, and rerun result. A repeatable pipeline should be safe to rerun without silently creating duplicates or applying transformations twice.

Useful platform references include HubSpot's import model, Microsoft's Dataverse migration approaches, and Salesforce data-load planning.

Make cutover a gated, reversible operating change

  1. Approve the rehearsal. Resolve critical discrepancies and record accepted lower-risk differences.
  2. Prepare the people. Train users on changed tasks and publish the freeze, support, and communication plan.
  3. Freeze and snapshot. Control writes, take final exports, and preserve access to the source.
  4. Run the delta. Move records changed since the rehearsal using the same tested mappings and sequence.
  5. Validate the business. Run the approved data checks, role tests, reports, automations, integrations, and user tasks.
  6. Decide go or rollback. Use written severity thresholds, owners, and time limits—not optimism at the end of a long day.

Keep the legacy CRM read-only for the approved retention window when feasible, restrict access, and document how audit or support questions will be answered. Monitor migration errors, sync failures, duplicate creation, report drift, and user issues during stabilization. Close the migration only when open issues have owners and the destination is the trusted operating system.

If the old and new systems must exchange changes during a staged move, treat that as an integration product with authority, retry, conflict, monitoring, and decommission rules. Use the API integration requirements checklist to define that boundary.

Complete this CRM migration acceptance brief

CRM migration acceptance brief for source systems, objects, identifiers, transformations, exclusions, rehearsal, cutover, validation, rollback, and owners
Keep the migration boundary and sign-off evidence in one reviewable brief so operations, sales, support, marketing, and engineering approve the same move.

Record the business outcome, source and target, in-scope objects, required history, identifiers, relationship order, transformations, exclusions, integrations, users and roles, pilot cases, reconciliation thresholds, freeze and delta plan, rollback triggers, stabilization window, and every sign-off owner. Link the mapping workbook and test evidence rather than hiding them in chat threads.

If the destination product is not settled, first compare a configured, extended, or owned system with the custom CRM versus off-the-shelf CRM guide. Migration cost and feasibility belong inside that choice, not after the contract is signed.

CRM data migration FAQ

What should a CRM data migration checklist include?

It should include source and target systems, objects and fields, stable identifiers, relationships, activity history and files, data quality rules, transformations, exclusions and retention, user and ownership mapping, automations and integrations, pilot loads, reconciliation tests, freeze and delta strategy, rollback conditions, cutover communication, stabilization, and named sign-off owners.

Should CRM data be cleaned before or after migration?

Define and test cleaning rules before the production migration. Correct obvious duplicates, invalid values, unused fields, and inconsistent categories in a controlled source export or staging layer while preserving the original snapshot. Some destination-specific cleanup may follow, but undocumented changes during cutover make reconciliation and rollback harder.

How do you validate a CRM migration?

Reconcile record counts and exclusions by object, compare critical fields, verify stable identifiers and relationships, inspect representative customer histories, test permissions, reports, automations and integrations, and ask real users to complete important tasks. Record discrepancies, severity, owner, resolution, and the evidence required for approval.

How should CRM relationships be migrated?

Preserve source identifiers, define target unique keys, load parent or independent records before dependent records where the platform requires it, and build an explicit relationship crosswalk. Test one-to-many, many-to-many, parent-child, ownership, and activity associations with representative records before the full load.

When is a custom CRM migration integration needed?

A custom migration or integration may be needed when data spans several systems, relationships and history exceed import-tool capabilities, transformation rules are complex, volume or downtime constraints require an API pipeline, or the old and new CRMs must coexist temporarily. The custom path still needs checkpoints, idempotent reruns, logs, reconciliation, and an exit plan.

Turn the CRM move into a reversible cutover plan.

Bring the source systems, target CRM, critical customer workflow, required history, integrations, constraints, and migration deadline. Leeonex can help define the data boundary, pilot, reconciliation evidence, and reliable integration work.

Useful for platform changes, spreadsheet-to-CRM moves, consolidations, and custom CRM transitions where customer context must remain trustworthy.