Migrating to a New CRM: Data Migration Plan

Replacing a CRM sounds straightforward until you see the mess that accumulates around it. A new system is supposed to fix visibility, automate workflows, and reduce manual effort, but the migration is where projects go sideways: duplicates explode, fields land in the wrong places, and teams lose trust because the “new” data doesn’t match what they remember using every day.

A good migration plan treats data like a product. It sets clear quality targets, maps ownership, and includes time for cleanup and validation. It also recognizes that migrations are not purely technical. They are operational and behavioral. People have habits built around how data was entered previously, and those habits influence what happens when you cut over.

Below is a migration approach that works in real organizations, with the right balance of structure and judgment.

Start with outcomes, not tools

Before anyone touches the export button, align on what success means after cutover. “We’ll move the records” is not a measurable outcome, and it won’t help when you discover that two teams have been entering the same company under slightly different names for years.

Translate goals into data outcomes. For example:

    Sales needs accurate account ownership and a reliable history of opportunities. Support needs customer identifiers that match what the help desk uses. Marketing needs campaign attribution that doesn’t break reporting. Leadership needs dashboards that match the old numbers closely enough to trust the transition.

If you can’t name the downstream reports and business processes that depend on the migrated fields, you will spend the migration discovering surprises, not preventing them.

The practical move is to write a short set of “must work on day one” requirements and “nice to have later” requirements. That decision affects scope and timeline more than any technical consideration. It also clarifies what to do with fields that exist in the old CRM but aren’t used or validated in practice.

Inventory data sources and find the truth

Most CRM migrations are really “CRM plus everything around it.” That includes spreadsheets, data warehouse extracts, marketing tools, billing systems, support portals, and sometimes custom scripts that people forgot existed.

Run an inventory of data sources early. For each source, capture:

    What it contains (accounts, contacts, leads, opportunities, cases, activities, custom objects). How fresh it is (daily sync, weekly export, manual uploads). The system of record for each domain (who owns the truth for company names, customer IDs, ownership). Data quality signals, if available (duplicate rates, missing fields, inconsistent formats).

A key lesson from past migrations: the “CRM data” is often not the authoritative version of record. Teams may use the CRM as a workflow tool, while another system is where IDs are correct. If you ignore that and treat the CRM as the truth source, you will faithfully migrate errors and lock them into the new platform.

Also, identify what needs to be migrated as historical data versus what should be rebuilt going forward. Activities are a good example. Some organizations want a complete activity history; others only need the last touch per customer. Both are valid, but they change workload dramatically.

Define your migration scope and rules

Scope decisions are where projects either stay on track or inflate into an open-ended cleanup effort. You cannot migrate “everything” without consequences. You can, however, migrate what is useful with rules that preserve intent.

Common scope boundaries include:

    Which object types to migrate (for example, accounts and contacts always, leads depending on sales process changes). Whether to include deleted records, archived records, and duplicates. Whether to migrate attachments, emails, call recordings, or only references. Whether to migrate custom fields as-is or redesign the data model.

Your rules should address edge cases. A few examples that regularly surface:

    What happens when the old CRM has multiple owners or team-based ownership but the new CRM uses a single owner model? How do you handle records with missing required fields in the old system? Should you overwrite existing values in the target if there is already seed data from configuration steps or integrations? Do you preserve the old record IDs for auditability, or do you map them into a new surrogate key?

Even if you keep IDs, you need an explicit mapping strategy. Without it, support and operations teams will struggle to answer “where did this history go?” when users notice discrepancies.

Build a data model mapping that is actually usable

A mapping document is necessary, but it should not be a wall of text that nobody reads. The mapping has to be operational: it should tell you which source field goes to which target field, with transformation notes and assumptions.

A useful mapping approach is to structure it around business meaning rather than field names. For example, “Company name” might come from AccountName in one place, but from a combination of legal name and trading name in another. That choice must be documented because it will affect deduplication and reporting.

For each target field, record:

    Source field(s) Transformation logic (trim spaces, normalize phone numbers, parse dates, map picklist values) Defaulting rules (what to do when source data is empty) Validation rules (required, max length, acceptable formats) Whether the field is migrated historically or only for open records

This is also where you reconcile differences in how the systems interpret data. Picklists are a classic trap. Old CRMs often have values that evolved over time. If the new CRM has a different picklist set, you need a mapping and a strategy for unknown values. You can’t just drop them silently.

Decide your approach to deduplication

Deduplication is often underestimated because it feels like a “clean it later” task. It rarely stays later. The cost shows up in user frustration and rework during validation.

Your deduplication approach should be consistent with the business rules for identity. Typically, identity is anchored on something like:

    A tax ID or government registration number A CRM-generated external ID A billing account number A normalized company name plus domain match

If none of those exist reliably, you need a fallback. For instance, a deterministic rule (exact match on a normalized field) plus a probabilistic rule (similar names or fuzzy matching) with human review for ambiguous cases.

Here’s the trade-off: aggressive deduplication reduces clutter but risks merging two distinct customers. Conservative deduplication preserves safety but keeps duplicates in place, which can hurt reporting and downstream workflows.

The best way to choose is to run a deduplication pilot on a representative slice. Pick a time window and a region or segment where issues are common. Validate the merges with the people who know the customers. That small pilot usually reveals which fields should be used for identity and which are too unreliable to trust.

Plan for transformations, normalization, and data types

Migrations fail when systems disagree about formatting.

The most common problem areas are dates, phone numbers, and emails.

    Dates: Some systems store local dates, others store timestamps. Decide what the new CRM expects and how you represent “unknown” dates. Phone numbers: Normalize to a consistent format, but be careful with extensions and missing country codes. Emails: Use consistent case handling and decide how to treat multiple emails per account or contact.

Also watch out for fields that look numeric but are stored as strings. Old CRMs sometimes store IDs in text fields, which can strip leading zeros during transformation. If your organization uses codes with leading zeros (common in internal customer numbers), you need a clear rule: keep as text, and validate length.

Normalization is not just formatting. It affects matching, deduplication, and validation. A normalized phone number can increase match rates; an unnormalized one can cause duplicates that are invisible to your eyes but obvious to the matching logic.

Choose your migration waves

A single cutover migration is possible, but it usually creates an all-at-once risk that overwhelms testing. A more resilient approach is to migrate in waves, either by object type or by time scope.

Object type waves are typical, but they require you to think about dependencies. Opportunities depend on accounts; contacts depend on accounts and sometimes on lead conversions. Activities depend on both, plus the users and teams.

Time-scoped waves can also work well: migrate all historical records but freeze certain domains for the migration window, then do a delta sync after cutover. That reduces “changes while migrating” chaos.

Regardless of wave structure, build in time for the unglamorous tasks: re-running validation queries, reconciling record counts, and checking random samples that cover each business segment.

Assign ownership and build a testing team

A migration plan without clear ownership turns into a chain of “wait, it’s not my problem.” Testing is where those gaps show up.

One practical strategy is to create a testing pod that includes CRM admins, data analysts, representatives from sales/support/marketing, and someone who understands integrations. You don’t need everyone full-time, but you need named people responsible for approving outcomes.

If you want a simple ownership model, consider:

    CRM administrator: owns field mappings, target configuration, and cutover readiness. Data owner (analytics or data engineering): owns validation queries and data quality thresholds. Process owner (sales, support, marketing): owns business logic and approves deduplication outcomes. Integration lead: owns sync behavior, delta logic, and external dependencies. QA tester: owns regression testing against workflows and edge cases.

This structure avoids a common failure mode: technical people validate that fields landed, but business owners validate whether those fields make sense in the actual workflow.

Define acceptance criteria and quality thresholds

Acceptance criteria should be specific enough to act on. “Data should be correct” is not actionable. “At least 99% of required fields are populated” is actionable, but only if you define which fields are required for operational success.

A balanced set of criteria includes:

    Completeness: required fields populated for active records Accuracy: transformed values match expected formats (and reference data like picklists is valid) Consistency: ownership and relationships are correct (for example, contact to account links) Uniqueness: duplicates below a defined threshold after merge rules Integrity: referential links are not broken (activities, relationships, lookups)

You should also set thresholds for what triggers investigation. For example, if email fields fail validation above a certain percentage, you pause and examine transformation logic instead of pushing through and hoping for the best.

A useful technique is to define thresholds by object type. Opportunities might tolerate missing optional fields, while accounts might require stronger completeness because they drive reporting and routing.

Create a migration sandbox and rehearsal environment

Before production migration, rehearse. Not with the full dataset, but with a representative subset that includes the dirty parts: duplicates, missing fields, unusual picklist values, and records that violate assumptions.

A sandbox rehearsal should include:

    Running the full extraction, transformation, and load process Producing the same validation outputs you’ll use in production Performing workflow-level tests in the target CRM Verifying that users can access records and history with expected relationships

Rehearsals often reveal unexpected dependencies. For example, you might successfully migrate accounts and contacts, but the new CRM’s workflow automation expects an additional field that was never migrated because it was “not required.” When that field is missing, the automation silently fails, and users think the CRM is broken.

The point is not to prevent every problem. It is to catch the expensive ones before the cutover window.

Extract, transform, load, with controls at every stage

Think of the migration pipeline as a chain. If you only validate at the end, you will not know where something went wrong.

A controlled ETL approach includes checkpoints:

    Extraction: confirm row counts per object type and per time slice, compare to expected totals. Transformation: validate data types, required fields rules, mapping completeness, and normalization results. Load: verify that target records were created or updated correctly and that relationships were established. Post-load validation: run reconciliation checks and random sampling reviewed by business owners.

Even if you use a vendor migration tool, you still need these controls. Tools reduce effort, but they do not remove the need for validation. Migration tooling can also embed assumptions about data types and picklists that you must confirm against your data model.

Validate using reconciliation and sampling, not guesswork

Validation should combine quantitative reconciliation with human review.

Reconciliation focuses on measurable counts and relationships. Sampling focuses on “does this make sense to the people who use it.”

At minimum, validation should check:

    Record counts by object type in old versus new (with rules for expected differences) Relationship integrity, such as account IDs referenced by opportunities Picklist mapping coverage, including how unknown values were handled Duplicate outcomes compared to rules and thresholds A set of random samples across segments, owners, and regions

For sampling, pick records that represent the full range of history. Don’t only review “clean” accounts. You want to confirm that your rules behave correctly on the messy edge cases too.

Build the cutover plan around a delta strategy

The cutover window is where your time and patience are tested. Records change while you migrate. Even if you freeze updates, people will still submit forms, emails, and data changes through integrations.

A delta strategy typically handles this by performing:

    Bulk load of the historical dataset Delta synchronization for changes in a defined window between the bulk load and cutover A final verification pass right before users start using the CRM normally

Your delta strategy also needs a clear conflict resolution method. If a record changed in the source during the delta window, and the target has already loaded the older version, which value wins? The correct answer depends on your business process. For some fields, “last write wins” is acceptable. For others, you may need precedence rules tied to system of record.

The safest approach is to define precedence by domain. For example, if billing IDs are authoritative in a billing system, use that precedence even if CRM records change. If ownership updates are authoritative in the CRM, then let the CRM win for ownership changes during delta.

Think about historical data, reporting, and user trust

Users judge migrations by what they can see immediately, not by how correctly the backend aligns.

If your reporting changes because field names or picklist structures changed, users will assume the data is wrong. Even if the numbers are correct, trust can take time to rebuild.

A practical way to protect trust is to run parallel reporting for a short period. Compare key metrics from the new CRM against the old one for a defined range. The goal is not a perfect match when models differ, but a transparent understanding of where the differences come from.

Also, preserve historical fields that users rely on for context, especially in sales and support. If you migrate opportunities without stage history or activity timelines, you force users to reconstruct the story manually. Even if it’s only 5% of records, that small percentage can trigger widespread frustration.

Handle attachments, emails, and activity history carefully

Attachments and activity data are often the hardest part because they are heavy, and they have security and permission implications.

Decide early what “activity history” means in your migration:

    Do you migrate activity records (tasks, events, calls) with their metadata? Do you migrate email messages? Do you migrate attachments, or only links/references? How do you handle permission mapping so users can access what they should see?

A recurring failure mode is permission mismatch. The new CRM may require different roles, and if attachments land without correct access controls, users either cannot view them or see too much. Both outcomes harm operations.

If your new CRM handles activity and email with a different mechanism, you might choose to migrate only metadata and then re-sync from integrations after cutover. That’s a legitimate approach, but it needs to be communicated clearly because history will look incomplete until sync catches up.

Prepare users and admins for the new data experience

Even with perfect migration, users will need guidance. Migration changes how search works, where fields appear, and which data is trusted.

Support teams especially rely on consistent identifiers. If the new CRM uses a different field to link customer profiles, training and quick reference guides matter. Sales teams care about what shows on the account page, how ownership is represented, and whether stage and close dates align with their workflow.

Admin and ops Customer Relationship Management teams need guidance too. They often handle exceptions: records that failed validation, duplicates that were not merged, and picklist values that were mapped to “Unknown.”

A good training approach is short, targeted, and anchored on what users will notice in the first day. If users don’t know how to interpret the new “missing field” behavior, they will report issues that are actually intended outcomes from your migration rules.

Common pitfalls that derail CRM migrations

You can plan for almost anything, but not every pitfall. Still, experience shows a pattern of recurring problems. Some are technical, others are procedural.

One major pitfall is ignoring required field constraints in the target CRM. You may successfully load records, but they may bypass workflows or violate validation rules because placeholders were inserted.

Another pitfall is mapping relationships incorrectly. For example, opportunities linked to the wrong account because the mapping used the wrong key. That may not break the record visually, but it breaks forecasting and routing.

A third pitfall is “silent” mismatches in picklists and custom fields. If values map to null, the CRM might still load the record, but reporting and automation will act as if the data is missing.

Finally, teams underestimate time for data cleanup. Even with deduplication rules, you will find inconsistencies that require human judgment. The best migrations plan for a cleanup window before final load.

A practical phased migration plan

There are multiple valid ways to structure the migration timeline, but most successful projects share a phased approach that reduces risk before cutover.

Here is a pragmatic sequence that keeps teams focused and prevents “everything at once” overload:

Discovery and inventory: document source systems, required objects, business processes, identity rules, and acceptance criteria. Mapping and transformation design: produce field mappings, normalization rules, picklist translations, and deduplication strategy. Rehearsal in sandbox: run ETL on representative data, validate counts and relationships, and fix transformation issues. Bulk migration and validation: load historical data, reconcile counts, and perform sampling with business owners. Delta sync and cutover readiness: apply changes in the cutover window, run final checks, then enable user workflows.

This doesn’t guarantee zero problems. It guarantees that problems are discovered early, when fixes are cheaper and approvals are easier.

Validation artifacts you should produce before cutover

Migration projects get messy when teams cannot reproduce what they changed. Before cutover, store artifacts that let you prove what happened.

You’ll want documentation and outputs such as:

    Field mapping workbook with versioning Transformation logic summary (including normalization and picklist mapping rules) Deduplication rule documentation and review outcomes Validation query results for bulk load and delta load A reconciliation report showing record counts and relationship integrity checks A sign-off checklist used by business owners

The sign-off checklist is crucial. It prevents cutover from becoming a one-person decision. It also creates accountability if something goes wrong after launch. When users complain, you can show what was validated, against which criteria, and what exceptions were explicitly accepted.

What to do when validation fails

Not every migration will pass cleanly on the first run. The key is how you respond.

When validation fails, avoid panic and avoid blind retries. Instead, treat failures like diagnostics:

    Identify the object type and which records are failing. Determine whether the issue is transformation logic, mapping gaps, or missing reference data. Check if the failure is systemic (affects thousands) or isolated (affects a handful). Decide whether to fix transformation logic, patch records, or adjust acceptance criteria.

Sometimes the right action is to correct the pipeline. Other times the right action is to apply targeted remediation. If acceptance criteria are met for operational records, you may choose to defer remediation for low-impact historical fields. That decision should be documented.

The most dangerous response is to “fix” data by overwriting fields without understanding the business meaning. It might reduce the immediate validation failure, but it can create a worse downstream problem.

Post-migration monitoring: the part people skip

Cutover is not the end. It is the moment when errors become visible to everyone.

Set up a monitoring phase where you track:

    Integration health (sync status, error logs, retry behavior) Workflow execution (automations firing correctly and not creating duplicates) User-reported issues, categorized by severity and object type Data quality checks against the new baseline

Also monitor imports and forms. If your new CRM is receiving new data from web forms, lead sources, or integrations, you need confidence that the incoming data uses the right identifiers and field formats. A migration might load cleanly, but the first week of live intake might reintroduce bad formats if you didn’t update validation and normalization at the entry point.

Post-migration monitoring is where you earn trust. Quiet stability beats flashy promises.

Keeping the plan alive during the project

A data migration plan is not a document you create once and forget. It’s a living plan that changes when you discover differences between real data and assumptions.

Set a rhythm for updates. For example, weekly check-ins can confirm:

    whether mapping decisions still match business processes whether new edge cases are emerging from validation whether integration delta behavior is consistent whether timelines still align with cleanup capacity

If you allow scope creep without updating acceptance criteria and validation thresholds, you risk ending up with a migration that is “done” technically but not usable operationally.

The hidden success factor: communication

Most migration risks are technical, but most failures feel emotional. Users interpret missing data as a loss of control, and they interpret delays as incompetence.

Communication should be concrete:

crm tools
    What is migrated, what is not, and why When users can start testing specific objects What to do when data looks wrong (where to report, how fast you respond) How you handle exceptions and known gaps

Even a small migration can benefit from a short “known differences” document shared with business owners. That document reduces noise and helps you focus on issues that actually matter.

Final thought: treat migration as a governance exercise

A new CRM is a chance to correct identity rules, standardize fields, and tighten data governance. The migration effort, if planned well, sets the foundation for better reporting and fewer duplicates long after the implementation team moves on.

The best data migration plans balance rigor with practicality. They validate what matters, document decisions, and keep humans in the loop where judgment is required. You will still hit edge cases, but you will handle them with a system, not with firefighting.

If you want, tell me what CRM you are moving from and to, plus the main objects you care about (accounts, contacts, leads, opportunities, cases, activities). I can suggest a migration scope and validation criteria tailored to that scenario.