● BLOG · CRM MIGRATION START FREE TRIAL →
CRM MIGRATION · 8 MIN READ · 2026-06-12

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:

Every step below exists to kill one of those three failure modes. Follow the order; the order is the method.

15–30%
of the records in a typical CRM are duplicates. Deduping before import — not after — is the single highest-leverage hour of the entire migration.

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:

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

  1. 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.
  2. Sort by email, then by phone. Two passes catch what one misses. Most spreadsheet tools highlight duplicates in a couple of clicks.
  3. 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.
  4. 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:

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:

  1. Names and emails landed in the right fields (not shifted one column over)
  2. Phone numbers survived formatting — and are dialable/textable from the new system
  3. Custom fields populated per your mapping sheet, with correct types
  4. Tags and owners carried over instead of defaulting to the admin account
  5. 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:

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

WhenWhat happensFailure it prevents
Day 1–2Full export: contacts, deals, notes, tags, filesOrphaned history
Day 3Dedupe pass (expect 15–30% shrinkage)Double-texting, polluted reporting
Day 4Custom field + pipeline stage mapping sheetSilent field drops
Day 5–6Test-import 50–100 records, fix, repeat until cleanFull-database corruption
Day 7Full import + rebuild automations
Day 8–13Parallel run: new work in new CRM, daily spot-checksUndetected gaps
Day 14Final export, cut over, archive, cancel old CRMPaying 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 →