The CRM migration runbook
Five phases and forty-one steps, all on this page, written for the person who runs the move. Print it and cross off as you go.
Want to see it first? Book a demo
- 41 steps in full
- No email required
- Includes the rollback

The short answer
- A CRM migration checklist runs in five phases: decide and freeze, export, map, load and verify, cut over. Don't start a phase until the one before it has passed its check.
- The decision that saves the most pain is what not to bring. Migrating a decade of dead records reproduces the mess that made you want to move.
- Plan the rollback before the cut-over, and keep the old CRM readable for at least one full sales cycle after you switch.
- Moving into SalesCrew, contacts go through a CSV import into the Data Bank, companies, deals, notes and tasks follow through MCP tools, and a connected mailbox backfills the last 90 days of email threads.
Why this exists
A CRM migration fails in one of three ways: the data arrives wrong, the team keeps using the old system, or something nobody documented turns out to have been load-bearing. All three are avoidable and none of them are avoided by enthusiasm.
This runbook is written as steps rather than principles because that is what you need at the time. Print it, work down it, and cross off what does not apply to you.
The runbook, in full
Phase 1: decide and freeze (8 steps)
- Write down the specific reason you are moving. If it is a feature, name it. If it is a price, name the number.
- List every system that reads from or writes to the current CRM. Forms, calendars, billing, reporting, that spreadsheet somebody maintains.
- Find the undocumented dependency. There is always one. Ask the person who has been there longest.
- Decide the cut-over date and make it a date when nothing else important is happening.
- Announce a freeze on configuration changes in the old system from two weeks before.
- Decide what you are not bringing: records older than a threshold, closed-lost deals past a date, contacts with no activity ever.
- Get one person named as the owner. A migration with a committee has no owner.
- Confirm you can actually export everything you need before you sign anything.
Phase 2: export (7 steps)
- Export contacts, companies, deals, activities, notes and files, each as its own file.
- Export custom fields and their values, including the ones you think nobody uses.
- Export the picklist values behind every dropdown, because those become mapping decisions later.
- Export users and their permissions as they stand, which is your reference for setting up access on the other side.
- Export attachments separately, and check the total size before you assume it will be easy.
- Take a second export a day later and compare row counts, so you know the export is complete rather than truncated.
- Store the exports somewhere you will still have access to in six months, not on the laptop of whoever ran them.
Phase 3: map (9 steps)
- Map objects first: what the old system calls an account, an organisation or a company.
- Map the fields, one row per field, in a document that survives the migration.
- Decide the unique key for each object. Email for contacts, domain for companies, something stable for deals.
- Map pipeline stages, and take the opportunity to reduce them if you have more than seven.
- Assign a probability to each new stage, because the weighted forecast depends on it.
- Map owners to the new user list, including the people who have left.
- Decide what happens to records owned by departed staff before you load them, not after.
- Normalise the messy fields: phone formats, country names, industry values.
- Write down every field you decided not to migrate and why, so nobody has to reconstruct the reasoning later.
Phase 4: load and verify (10 steps)
- Load a sample of a hundred records first and stop.
- Check the sample by hand against the old system. Every field, ten records, properly.
- Load companies before contacts and contacts before deals, so relationships have something to attach to.
- Load the suppression list before anything else touches an outbound tool.
- Load the full set and record the row counts in and out.
- Reconcile the counts. A gap of a few percent is a problem, not rounding.
- Spot-check the relationships: deals that should have a company, contacts that should have a deal.
- Check the weighted forecast against the old system's number. If they differ, find out why before anyone sees both.
- Verify a sample of attachments actually opens.
- Set up users, roles and access scopes, then have two people log in and confirm they see what they should.
Phase 5: cut over (7 steps)
- Repoint the integrations: forms, calendar bookings, webhooks. Test each with a real submission, not a sample payload.
- Move mailbox connections and confirm threads attach to the right records.
- Set the old system to read-only rather than cancelling it.
- Keep it readable for at least one full sales cycle. This is the rollback nobody plans and everybody wants.
- Train in the new system on real records, not a demo dataset.
- Watch the first week for the thing nobody thought of, and fix it in the new system rather than reverting.
- After a cycle, export the old system one final time and archive it before you cancel.
Export guides for HubSpot, Pipedrive and Salesforce
Phase two looks different in every CRM, so each source system has its own page. Each one names the export screen, the files you get and how they map into SalesCrew.
- Switch from HubSpot: contacts, companies, deals, notes and tasks, then your pipeline stages.
- Switch from Pipedrive: people, organizations and deals, plus how your email history comes across.
- Switch from Salesforce: the data export, leads and contacts, and opportunity stages.
Leaving a different tool? The full list of switching guides covers Zoho CRM, Close, Attio, monday CRM and GoHighLevel too.
How a migration into SalesCrew works
SalesCrew brings contacts, companies, deals, notes and tasks across from a CSV export of any CRM. Migration help is included on every tier, and a standard import completes within 7 business days.
Contacts load through a CSV import into the Data Bank. You pick the file, map its columns against a preview, and tag the batch. Existing contacts are matched on email, then filled in and never overwritten, and every import leaves an audit row you can trace.
Companies, deals, notes and tasks follow through the MCP tools contact_create, company_create and deal_create, so an agent in Claude or ChatGPT can work through your export file row by row. Custom fields carry the columns your old CRM added, and duplicate detection with merge cleans up anything that arrived twice. That makes step eighteen, choosing a stable key per object, the step that decides how clean the result is.
What comes across, and how
Each object from your old CRM export, and where it lands in SalesCrew.
| Object | How it arrives in SalesCrew | Matched on |
|---|---|---|
| Contacts | CSV import into the Data Bank: map columns, tag the batch, one audit row per import | Email; existing records are filled in, never overwritten |
| Companies | MCP tool company_create, run from your export file | Domain, the key you chose in step 18 |
| Deals | MCP tool deal_create, placed on the stages you mapped in step 19 | The deal key you chose in step 18 |
| Notes and tasks | Created on the matching contact, company or deal | The parent record |
| Custom fields | Created as custom fields, then filled from the mapped columns | Field name from your mapping document |
| Email history | Connect each mailbox over IMAP; the first sync backfills the last 90 days of threads | Thread participants |
Mechanism as SalesCrew runs it, September 2026. The 90-day window is set per mailbox and can be changed.
Email history comes from the mailbox, not the export
Leaving is as easy as arriving
Exporting out of SalesCrew is a full Postgres dump plus CSV everywhere, because your instance is your own database rather than a partition of ours. Whatever you migrate in, you can migrate out, which is what happens to your data if you leave in plain terms. See pricing for what each tier includes.
Related
- All templates
- The CRM implementation plan template
- AI prompts for cleaning a messy CRM
- Switch from HubSpot to SalesCrew
- Switch from Pipedrive to SalesCrew
- Switch from Salesforce to SalesCrew
- The CRM migration checklist
- How long does a CRM migration take
- How to import contacts without making a mess
- The Data Bank
- Pricing
Stage the import before it touches anything live
Load your CSV into the data bank, check it there, and publish only what survives. A standard import completes within 7 business days.
Want to see it first? Book a demo