How to switch CRM without losing data: the step-by-step migration checklist.
If you're researching how to switch CRM without losing data, you've already found the better platform — you're just afraid of the move. That fear is rational: a botched migration means orphaned notes, duplicate contacts texting twice, and deals that vanish mid-pipeline. It's also completely avoidable. Here is the exact six-step process — export, dedupe, map, test, parallel-run, cut over — that gets a business from old CRM to new CRM in about two weeks with zero records lost.
Why CRM migrations go wrong (it's almost never the software)
The import tool is rarely the thing that breaks. Migrations fail in the preparation — or the lack of it. Three failure modes account for nearly every horror story:
- Partial exports. The operator exports contacts but forgets notes, call logs, pipeline history, and attachments. The names arrive; the relationships don't. Six months of context evaporates.
- Dirty data goes in dirty. Industry audits consistently find that 15–30% of CRM records are duplicates. Import them as-is and your shiny new system starts life with the same rot — except now your automations text the same person twice.
- Big-bang cutover. The team switches everything on a Friday, discovers Monday that custom fields didn't map, and has no clean system to fall back to.
Every step below exists to kill one of those three failure modes. Follow the order; the order is the method.
Step 1: Export everything — not just contacts
Your contact list is maybe 40% of your CRM's value. The other 60% is the history wrapped around it. Before you touch the new platform, pull a complete export from the old one:
- Contacts and companies — every field, including the custom ones you forgot you created
- Deals / opportunities — with their pipeline stage, value, and owner
- Notes and activity history — calls, texts, emails, meetings
- Tasks and reminders — open and completed
- Tags, lists, and segments — these encode years of qualification work
- Attachments and files — contracts, quotes, signed agreements
- Automation logic — screenshot every workflow; you'll rebuild these, not import them
Export to CSV where possible, request a full native backup where it isn't, and store the raw files somewhere you'll never edit them. That untouched snapshot is your insurance policy — if anything goes sideways in week two, you can always rebuild from it.
What Ironscale's onboarding does for you: we pull the full export with you on a screen-share — contacts, deals, notes, tags, and history — and verify record counts against your old system before anything moves. You keep the raw backup; we work from a copy.
Step 2: Dedupe before you import — never after
This is the step almost everyone skips, and it's why so many "successful" migrations feel broken three weeks later. Remember the number: 15–30% of your records are duplicates. Clean them in the spreadsheet, where merging is free, instead of in the new CRM, where every duplicate is already wired into automations.
The 30-minute dedupe pass
- Normalize phone numbers first. Convert everything to one format (digits only, or full +1XXXXXXXXXX). "Mike Cell" and "Michael R." with the same number are the same person — phone match is your strongest duplicate signal.
- Sort by email, then by phone. Two passes catch what one misses. Most spreadsheet tools highlight duplicates in a couple of clicks.
- Set one merge rule and apply it everywhere: the record with the most recent activity wins; older records donate any fields the winner is missing.
- Flag the dead weight. Records with no activity in 24+ months and no open deal go to a separate "archive" file. Import them later if you ever need them — don't let them pollute day one.
A 5,000-contact database typically shrinks to 3,800–4,200 clean records. That's not data loss. That's the first honest look at your pipeline in years.
What Ironscale's onboarding does for you: our import runs phone- and email-match dedupe automatically, and anything ambiguous gets flagged for a human decision instead of a silent merge. You approve the merge rules; the system does the grunt work.
Step 3: Map custom fields before touching the import button
Every CRM names things differently. "Lead Source" in one platform is "Channel" in another; your custom "Quote Amount" field has no automatic twin anywhere. Unmapped fields don't error out during import — they silently land in a generic notes blob or get dropped entirely. That's where data "loss" actually happens.
Build a two-column mapping sheet: old field name on the left, new field name on the right. For each row, make one of three calls:
- Map it — there's a matching field, or you create one in the new CRM before the import
- Merge it — two old fields collapse into one new field (note which one wins)
- Drop it — be honest; if nobody has used the field since 2023, let it die here
Watch field types, not just names. A date stored as text, a dropdown imported as free text, a currency field that loses its formatting — these are the small mismatches that break reporting and automations weeks later. And map your pipeline stages the same way: every old stage needs an explicit destination stage, or deals land in limbo.
Step 4: Test-import 50–100 records first
Never feed the full database into a system you haven't tested. Pick a deliberately ugly sample — 50 to 100 records that include your messiest cases: contacts with five custom fields populated, deals mid-pipeline, records with long note histories, names with accents and apostrophes. Import the sample and check five things:
- Names and emails landed in the right fields (not shifted one column over)
- Phone numbers survived formatting — and are dialable/textable from the new system
- Custom fields populated per your mapping sheet, with correct types
- Tags and owners carried over instead of defaulting to the admin account
- Pipeline stages match — a deal that was "Negotiation" is still "Negotiation"
Something will be wrong on the first pass. That's the point. Fix the mapping, delete the test batch, run it again. Repeat until a test import comes through 100% clean — then run the full import. Two test cycles cost you an hour; skipping them costs you a quarter.
What Ironscale's onboarding does for you: the test-import cycle is built into our 14-day trial. We run your sample batch, walk the verification checklist with you, and don't push the full database until you've signed off on a clean test. The trial window exists precisely so you can do this with zero commitment.
Step 5: Parallel-run for one week
After the full import, do not cancel the old CRM. Run both systems side by side for one week:
- All new leads and new activity go into the new CRM only. One system of record for new work — never both, or you create a split-brain you'll be reconciling for months.
- The old CRM goes read-only. It's your reference copy, not a workspace.
- Spot-check 10 random records a day. Pull up the same contact in both systems and compare. Five days of clean spot-checks is your green light.
- Fire every automation once, on purpose. Submit a test lead and watch the first touch go out before real leads depend on it.
That last check matters most: if you've rebuilt your speed-to-lead flows, this is where you confirm the 90-second follow-up still fires, and that missed call text back catches the calls you can't answer. The parallel week is what separates "we switched CRMs" from "we think we switched CRMs." It converts hope into verification for the cost of ten minutes a day.
Step 6: Cut over, archive, and cancel
After a clean parallel week: take one final export of the old CRM (anything that changed during the transition), store it with your original backup, point every form and integration at the new system, and cancel the old subscription. Keep the archive files for 12 months. You will probably never open them — that's what success looks like.
The two-week migration timeline
| When | What happens | Failure it prevents |
|---|---|---|
| Day 1–2 | Full export: contacts, deals, notes, tags, files | Orphaned history |
| Day 3 | Dedupe pass (expect 15–30% shrinkage) | Double-texting, polluted reporting |
| Day 4 | Custom field + pipeline stage mapping sheet | Silent field drops |
| Day 5–6 | Test-import 50–100 records, fix, repeat until clean | Full-database corruption |
| Day 7 | Full import + rebuild automations | — |
| Day 8–13 | Parallel run: new work in new CRM, daily spot-checks | Undetected gaps |
| Day 14 | Final export, cut over, archive, cancel old CRM | Paying for two systems forever |
Switching from a specific platform?
The checklist above is universal, but every platform has its own export quirks and pricing math. If you're weighing the move, start with the head-to-head breakdown for your current system:
Leaving HubSpot? See the Ironscale vs HubSpot breakdown — what per-seat pricing actually costs once your team grows, and what exports cleanly.
Leaving Keap? The Ironscale vs Keap (Infusionsoft) comparison covers moving years of automation logic without rebuilding from memory.
Leaving Vendasta? The Ironscale vs Vendasta comparison walks through what changes when you exit a marketplace-style platform.
Leaving ClickFunnels? The Ironscale vs ClickFunnels breakdown shows how funnels and contacts land in a system with a real CRM underneath.
Coming from GoHighLevel or somewhere else entirely? The full comparison hub · Missed Call Text Back · Calculator covers the rest.
How long does switching CRMs actually take?
For a business with under 25,000 records: about two weeks end to end, with roughly 8–12 hours of actual hands-on work spread across them. The biggest variable isn't database size — it's how many automations you're rebuilding. A contact list moves in an afternoon; a follow-up machine takes a few focused sessions to re-forge. If you'd rather see the destination before you commit to the trip, book a demo and watch a migrated account running live.
One-line summary
Export everything, dedupe the 15–30% duplicate rot, map every custom field, test-import 100 records before you import 10,000, parallel-run for a week — and you'll switch CRMs without losing a single record.
Ironscale's onboarding runs this entire checklist for you.
Export verification, automated dedupe, field mapping, test imports, and a parallel-run safety net — inside a 14-day free trial. Your old CRM stays untouched until you're sure.
Start free trial →