CRM Data Migration Checklist: What to Clean Before You Move
Moving CRMs is 20% data transfer and 80% data cleanup. Most teams spend weeks configuring their new CRM, import their data, and immediately discover that 30% of their contacts are duplicates, 15% have no email address, and half the custom fields mapped to the wrong place. This checklist covers everything you should clean before you export a single record.
Pre-Migration Data Audit
Before you touch the new CRM, audit your existing data. Every hour spent cleaning data before migration saves 3 hours of cleanup after migration. The audit has four parts.
1. Duplicate Detection
CRMs accumulate duplicates over time. Different reps create contacts for the same person. Imports create new records instead of updating existing ones. Web forms create new contacts when someone uses a different email address. Before migrating, run a duplicate check.
How to find duplicates
HubSpot: Built-in duplicate management tool (Settings → Data Management → Duplicates). Free on all plans. Identifies likely duplicates by name and email. Merge with one click. Pipedrive: Merge Duplicates tool (Settings → General → Merge Duplicates). Scans contacts and organizations for exact and fuzzy matches. Salesforce: Duplicate Rules + third-party tools like Cloudingo ($10/mo) or DemandTools. Native duplicate management requires Enterprise edition. Zoho: Find and Merge Duplicates feature (Setup → Data Administration). Available on all paid plans.
Expected duplicate rate
Most CRMs have 10–30% duplicate records after 2+ years of use. A 10,000-contact CRM typically contains 1,000–3,000 duplicates. If you have never run a deduplication process, expect the higher end. Merge duplicates before exporting — importing duplicates into your new CRM doubles the cleanup work.
2. Incomplete Records
Export your contacts and check for missing critical fields. At minimum, every contact should have: a name, an email address, a company (for B2B), and a source/origin field. Contacts missing all of these are dead weight.
| Field | If missing, what to do | Typical missing rate |
|---|---|---|
| Email address | Decide if the contact is worth keeping. No email = no outreach capability | 5–15% |
| Company name | Enrich from email domain or LinkedIn. Or mark as “Unknown” | 10–25% |
| Phone number | Not critical unless your sales process is phone-heavy | 30–50% |
| Deal stage / lifecycle | Map to your new CRM's stages before import. Don't import unmapped stages | 10–20% (for unqualified leads) |
| Last activity date | Contacts with no activity in 12+ months should be archived, not migrated | N/A (check age) |
3. Dead Contacts
Contacts that should not be migrated: bounced email addresses, contacts who unsubscribed, contacts with no activity in 12+ months (unless they represent active accounts), and known competitors or spam entries. In most CRMs, 15–25% of records fall into this category.
4. Custom Field Audit
Export a list of all custom fields in your current CRM. For each field, ask: is this field used in more than 20% of records? Is anyone using this data for decisions? If the answer to both is no, don't migrate it. Most CRMs accumulate custom fields that someone created for a one-time project and never used again. A typical 3-year-old CRM has 40–80 custom fields. You probably need 10–15.
Field Mapping Between Platforms
Every CRM uses different names for the same concepts. “Contacts” in HubSpot are “People” in Pipedrive. “Companies” in HubSpot are “Organizations” in Pipedrive and “Accounts” in Salesforce. Mapping these correctly before import prevents data from landing in the wrong place.
| Concept | HubSpot | Pipedrive | Salesforce | Zoho CRM |
|---|---|---|---|---|
| Person | Contact | Person | Contact (or Lead) | Contact (or Lead) |
| Company | Company | Organization | Account | Account |
| Opportunity | Deal | Deal | Opportunity | Deal |
| Task/Action | Task | Activity | Task / Event | Task / Event |
| Note | Note (on timeline) | Note | Note (on Chatter) | Note |
| Pipeline stage | Deal Stage | Pipeline Stage | Opportunity Stage | Stage |
| Lead status | Lifecycle Stage | Lead Label | Lead Status | Lead Status |
The Salesforce Lead vs Contact distinction:Salesforce separates Leads (not yet qualified) from Contacts (qualified, associated with an Account). HubSpot, Pipedrive, and Zoho treat all people as Contacts. When migrating from Salesforce, you need to decide whether to convert all Leads to Contacts in the destination CRM or maintain a “lead” status field. When migrating to Salesforce, you need to decide which existing contacts become Leads and which become Contacts.
What Transfers Cleanly vs What Breaks
| Data type | Transfer difficulty | Notes |
|---|---|---|
| Contact records (name, email, phone) | Easy — CSV export/import | Standard fields map cleanly across all CRMs |
| Company/organization records | Easy — CSV export/import | Map to the correct object name in destination |
| Deal/opportunity data | Moderate — stage mapping required | Pipeline stages need manual mapping. Amount and close dates transfer cleanly |
| Custom fields | Moderate — create fields first, then map | Create custom fields in destination before import. Data types must match |
| Notes and activity logs | Moderate to Hard | Notes export as text but lose formatting. Activity timestamps may shift. Some platforms don't support bulk note import |
| Email history | Hard — rarely transfers | Logged emails are typically platform-specific. Export as CSV reference but don't expect thread reconstruction |
| Automations/workflows | Does not transfer — rebuild from scratch | No CRM supports automation import. Document all workflows before migration |
| Email templates | Does not transfer — rebuild from scratch | Copy template content manually. Formatting will need adjustment for the new platform's template editor |
| File attachments | Hard — often lost | Files attached to records don't export via CSV. Use API for bulk file migration or download manually |
| Reporting/dashboards | Does not transfer — rebuild from scratch | Screenshot your existing dashboards as reference. No cross-platform report migration exists |
Migration Timeline by CRM Size
These timelines include data cleanup, field mapping, test imports, and post-migration validation. They do not include the time to set up automations, templates, and dashboards in the new CRM (add 1–4 weeks for that).
| CRM size | Data cleanup | Field mapping + test import | Full migration + validation | Total time |
|---|---|---|---|---|
| 100 contacts | 1–2 hours | 1 hour | 1 hour | 3–4 hours (1 day) |
| 1,000 contacts | 4–8 hours | 2–4 hours | 2–4 hours | 1–2 days |
| 10,000 contacts | 2–3 days | 1–2 days | 1–2 days | 1–2 weeks |
| 50,000 contacts | 1–2 weeks | 3–5 days | 3–5 days | 3–4 weeks |
The 50,000+ contact migration:At this scale, CSV import often hits platform limits (Mailchimp caps imports at 500,000 rows, Pipedrive at 50,000 per file, HubSpot at 1,000,000). Use the CRM's API or a migration tool like Import2 or Trujay for large datasets. API-based migrations are more reliable for large volumes but require technical knowledge or a consultant ($1,000–$5,000 for a migration specialist).
Post-Migration Validation Steps
After importing data into your new CRM, validate before your team starts using it. A flawed migration that goes undetected for a week creates problems that take months to untangle.
Record count verification
Compare total contacts, companies, and deals in the new CRM against your pre-migration count (after cleanup). If the numbers don't match within 1–2%, investigate which records were dropped. Common causes: duplicate email addresses merged during import, contacts without email addresses skipped, or records exceeding field length limits.
Spot-check 20 records
Pick 20 contacts at random and verify: correct name, email, company association, deal stage, custom field values, and notes. This catches field mapping errors that bulk count verification misses. If 2+ of 20 records have issues, your field mapping needs review before the team starts working in the new CRM.
Association verification
Check that contacts are associated with the correct companies and deals. This is the most common migration failure — contacts import correctly but their company or deal associations break. Most CSV imports don't handle multi-object associations well. You may need to import contacts, companies, and deals separately and then link them via a matching field (usually email or company ID).
Pipeline stage validation
Verify that deals landed in the correct pipeline stages. If your old CRM had stages named “Qualified Lead → Demo Scheduled → Proposal → Negotiation → Closed Won” and your new CRM uses “New → Discovery → Proposal → Closing → Won”, confirm the stage mapping worked correctly. Mismatched stages make your pipeline report meaningless on day one.
Integration reconnection
Reconnect email sync (Gmail/Outlook), calendar sync, form integrations, and any automation tools (Zapier, Make). Test each integration with a dummy record before going live. Reconnecting integrations typically takes 1–2 hours.
The 3 Things Everyone Forgets
1. Automations Don't Transfer
Every workflow, automation, and trigger in your old CRM needs to be rebuilt from scratch in the new CRM. There is no export/import for automations on any platform. Before migrating, document every active automation: what triggers it, what it does, which records it affects. A typical CRM has 5–15 active automations. Rebuilding them takes 1–4 hours each depending on complexity. Budget 1–3 days for automation reconstruction.
2. Email Templates Need Rebuilding
Sales email templates, sequence templates, and marketing email templates don't transfer between CRMs. You can copy the text content, but the formatting, merge fields ({{first_name}}, {{company}}), and template structure need rebuilding in the new platform's template editor. If your team uses 10–20 email templates daily, budget half a day to recreate them. Missing this means your team has no templates on day one, which slows everything down.
3. Custom Properties Need Pre-Creation
CSV imports into a new CRM only map to fields that already exist. If you have 15 custom fields in your old CRM, you need to create those 15 fields in the new CRM before importing. The field types must match: a dropdown field in the old CRM should be a dropdown in the new CRM with the same options, or data won't import correctly. A text field importing into a number field will fail silently or create garbage data. Budget 30–60 minutes to set up custom fields before your first import.
Common Mistakes
- Migrating all data without cleaning first.Importing 50,000 contacts including 15,000 duplicates and 10,000 dead leads into your new CRM defeats the purpose of switching. Clean before you move. The new CRM is a fresh start — treat it like one.
- Not doing a test import.Import 50–100 records first. Verify field mapping, associations, and data integrity. Fix issues on the small batch before committing the full dataset. Every CRM handles CSV import slightly differently (date formats, phone number formatting, multi-select fields).
- Running both CRMs simultaneously for too long.A 1–2 week overlap where both CRMs are active is reasonable for validation. More than 2 weeks and your team starts entering data in both systems, which creates sync nightmares. Set a hard cutoff date and enforce it.
- Forgetting to cancel the old CRM subscription. After migration and validation, cancel the old CRM within 30 days. Many teams pay for both CRMs for months because no one remembers to cancel. Put a calendar reminder for 30 days post-migration to cancel the old subscription. Export a final backup first.
- Not training the team on the new CRM before the switch.A CRM migration is also a workflow change. Schedule 1–2 hours of team training before go-live. Focus on the differences from the old CRM, not a full product tour. Your team knows how CRMs work — they need to know where things are in the new one.
Frequently Asked Questions
How long does a CRM migration take?
For a small CRM (under 1,000 contacts), 1–2 days including cleanup. For a mid-size CRM (1,000–10,000 contacts), 1–2 weeks. For a large CRM (10,000–50,000 contacts), 3–4 weeks. Add 1–4 weeks for automation rebuilding, template recreation, and team training. The data transfer itself takes hours. Everything around it takes weeks.
Can I migrate automations between CRMs?
No. No CRM supports automation export/import. Document your automations in a spreadsheet (trigger, conditions, actions, affected records) before migrating, then rebuild them in the new platform. This is the single most underestimated part of CRM migration. Teams budget for data transfer and forget about the 20+ hours needed to reconstruct automations.
Should I use a migration tool or do it manually?
For under 5,000 contacts with standard fields, manual CSV export/import works fine. For 5,000–50,000 contacts with complex associations (deals linked to contacts linked to companies), consider a migration tool like Import2 ($50–$300) or Trujay. For 50,000+ contacts or enterprise CRMs with complex custom objects, hire a migration consultant ($2,000–$10,000).
Will I lose my email history when migrating?
Logged email conversations in your old CRM generally don't transfer to the new CRM. You can export them as CSV for reference. Once you reconnect your email (Gmail/Outlook) to the new CRM, new emails sync automatically. Old email threads stay in your email client — they're not deleted, just not visible in the new CRM's activity timeline.
What's the biggest risk in CRM migration?
Broken associations. Contacts import correctly but lose their connection to companies, deals, and activities. This makes your pipeline report inaccurate and your team can't see deal context. Validate associations for at least 20 records after import. If associations are broken, you'll need to re-link them using a shared identifier (email address or company ID) via the CRM's import tool or API.