The no-drama CRM migration checklist
A practical sequence for moving customer data without importing years of ambiguity into the new system.
Before anyone exports a CSV
- Name one migration owner and one decision-maker for disputed fields.
- List the objects you actually use: companies, people, opportunities, cases, tasks, notes, and files.
- Separate required history from data that is merely old.
- Write down the unique key for each object before matching anything.
- Freeze new custom fields until the target model is agreed.
Clean the meaning, not just the formatting
- Define every lifecycle stage in one sentence.
- Decide which system wins when company names, owners, or statuses conflict.
- Normalize dates, currencies, countries, phone numbers, and empty values.
- Quarantine duplicates instead of guessing which record should survive.
- Map each source field to a destination field or explicitly discard it.
Rehearse with a small slice
Import 25โ50 representative records first. Include a messy company, a person with multiple email addresses, an open opportunity, a closed case, and a record with attachments. Ask the people who do the work to verify the result.
Cut over deliberately
- Announce a clear write freeze in the old system.
- Take a final export and retain it unchanged.
- Run the documented transformation and keep an error file.
- Reconcile record counts by object and status.
- Spot-check relationships, ownership, dates, amounts, notes, and permissions.
- Keep the old system read-only until the acceptance window closes.
The acceptance question
Do not ask only whether every row arrived. Ask whether a salesperson, support lead, and delivery or customer-success owner can each complete their next representative task without reopening the old CRM.