Skip to main content
CRM Guides · 7 min

CRM Data Migration: The Complete Guide

Team reviewing cloud-based data files on laptop screens

Photo by Pixabay on Pexels

CRM migration is where good software decisions go to die. The new platform is better, the team is willing, and then 40,000 records land in production with duplicated companies, deals owned by people who left in 2023, and a “stage” field containing eleven variations of “Negotiation.” This guide covers the migration sequence that avoids that outcome — what to clean, what to leave behind, the order to import in, and how to validate before anyone depends on the data.

Decide What Not to Migrate

The best migration decision is usually deletion. Before touching mapping spreadsheets, agree on exclusion rules:

  • Contacts with no activity in 24+ months and no open deal
  • Leads from campaigns that never converted, older than 18 months
  • Deals lost more than three years ago (export to archive instead)
  • Records with no email and no phone number
  • Notes attached to deleted or merged records
  • Any custom field populated on under 10% of records

For most companies this removes 30–50% of the database. Smaller, cleaner data migrates faster, imports more reliably, and produces reports people trust.

Step 1: Audit the Source System

Run a real inventory before planning anything:

What to countWhy it matters
Total records per objectSets import batch sizes and API cost
Custom fields and fill rateIdentifies what to drop
Picklist values in useReveals standardization work
Record owners, including inactive usersPrevents orphaned records
Attachments and total storageOften the slowest part of migration
Automations and integrationsEach must be rebuilt, not migrated

Export this to a spreadsheet. It becomes your migration scope document.

Step 2: Clean Before You Map

Cleanup happens in the source or in an intermediate spreadsheet — never in the destination after import.

  1. Deduplicate contacts on email first, then on name plus company
  2. Deduplicate companies on website domain, which is far more reliable than name
  3. Standardize picklists — one canonical value per stage, source, industry, and country
  4. Normalize formats — phone numbers to E.164, dates to ISO, consistent capitalization
  5. Reassign orphaned records from departed owners to a current person or a house account
  6. Fill required fields or exclude the records that can’t be fixed

Deduplication is the step teams most often defer, and it’s the one that permanently damages reporting if skipped.

Step 3: Build the Field Mapping Sheet

One row per source field. Columns: source field, source type, destination object, destination field, destination type, transformation rule, required?, sample value.

Watch for these mapping traps:

  • Free text → picklist: requires a value translation table
  • Multi-select fields: many platforms expect semicolon-delimited strings
  • Currency: confirm the destination stores currency code, not just amount
  • Dates: time zone handling silently shifts close dates by a day
  • Lookup relationships: need external IDs, not display names
  • Booleans: “Yes/No”, “TRUE/FALSE”, and 1/0 are not interchangeable

Have someone who didn’t build the sheet review it. Mapping errors are cheap to catch here and expensive to catch later.

Step 4: Import in the Right Order

Order matters because records reference each other.

BatchObjectDepends on
1Users / owners—
2Companies / accountsUsers
3ContactsCompanies, users
4Open dealsContacts, companies, users
5Closed dealsContacts, companies, users
6Activity history (calls, emails, meetings)All of the above
7Notes and attachmentsAll of the above
8Custom objectsVaries

Always carry an external ID — the source system’s record ID — into a dedicated field on every object. It’s how you re-link records, detect duplicates on re-import, and roll back cleanly.

Step 5: Run a Test Migration First

Never go straight to production. Import 200 representative records into a sandbox or a test instance and check:

  • Do relationships link correctly (contact → company → deal)?
  • Are dates showing the same day they showed in the source?
  • Did picklist values map, or did they silently create new options?
  • Are owners assigned correctly?
  • Do currency amounts match to the cent?
  • Did special characters, accents, and emoji survive encoding?

Fix, re-export, re-import. Expect two or three test rounds. That’s normal, not a sign of failure.

Step 6: Validate the Production Import

After each production batch, validate before starting the next:

  • Row counts: source rows in, destination rows created, plus a documented reason for any gap
  • Random sampling: 20 records per batch, field by field, against the source
  • Aggregate checks: total open pipeline value, deal count by stage, contacts per owner — these should match the source within rounding
  • Duplicate scan: run the platform’s duplicate detection immediately after import
  • Spot-check the extremes: the oldest record, the newest, the largest deal, the record with the most activity

Step 7: Rebuild What Doesn’t Migrate

These never transfer and must be rebuilt in the destination:

  • Workflows, automations, and sequences
  • Reports and dashboards
  • Email templates
  • Permission sets and role hierarchy
  • Integrations and webhooks
  • Scoring models and routing rules

Rebuild only what was actually used. Migration is the best opportunity you’ll ever get to delete the 40 reports nobody opened.

Step 8: Plan the Cutover

TimeAction
T-7 daysFreeze structural changes in the source system
T-2 daysFinal full export, final dedupe pass
T-1 dayImport batches 1–5, validate
Day 0 (morning)Import activity history, notes, attachments
Day 0 (midday)Full validation, duplicate scan
Day 0 (afternoon)Switch source to read-only, announce go-live
T+1 to T+7Daily data-quality checks, fast fixes
T+90Decommission source after final archive

Cut over on a Tuesday or Wednesday. Never on a Friday, never at quarter-end.

Have a Rollback Plan

Before go-live, be able to answer three questions: Where is the last full export of the source? How do we bulk-delete an incorrect import batch (using the external ID field)? Who decides to roll back, and by when? Most rollbacks are partial — one bad batch, not the whole migration — which is exactly why the external ID matters.

Common Migration Mistakes

  1. Migrating everything because deciding what to cut feels risky
  2. Skipping deduplication and permanently corrupting reporting
  3. No external ID field, making re-linking and rollback impossible
  4. Importing activity history first, which orphans records
  5. Testing with clean sample data instead of your real messy data
  6. Deleting the source system too early
  7. Announcing go-live before validation is complete

FAQ — CRM Data Migration

Q: How long does CRM migration take? A: For under 10,000 records with modest customization, 2–4 weeks including cleanup. Above 100,000 records with custom objects and attachments, 2–4 months.

Q: Should we use a migration tool or CSV import? A: Under roughly 50,000 records, CSV import plus careful mapping is fine and gives you full control. Above that, or with heavy attachments, a dedicated migration tool or partner saves real time.

Q: Can we migrate email history? A: Rarely in full. Most teams sync email going forward and migrate only emails attached to open deals. Historical email usually lives better in the mailbox than the CRM.

Q: What about attachments and documents? A: They migrate slowly and often hit API limits. Many teams leave documents in cloud storage and migrate links instead of files.

Q: How do we handle records owned by people who left? A: Reassign to a current owner or a house account before export. Importing records owned by inactive users creates records nobody can see.

Bottom Line

Migration quality is decided before a single record moves. Cut aggressively, deduplicate on email and domain, carry an external ID on everything, import in dependency order, and validate each batch against the source. Do that and your new CRM starts trustworthy — which is the only condition under which people will use it.

This article is for informational purposes only.


By CRMLYTIC Editorial · Updated August 3, 2026

  • crm migration
  • data cleanup
  • data quality