On this page
What usually goes missing
Contacts are the easy part. These are what people discover missing a month after the switch:
- Conversation history. Emails, texts and call notes that give context to every relationship.
- Consent and do-not-contact records. Lose these and you risk messaging people who opted out, which is a legal problem as well as an embarrassing one.
- Deal values and stage dates. Without them, reporting on the new system starts from zero.
- Custom fields. Anything your team added over the years, often with inconsistent formats.
- Who owns what. Contact and deal owners, so the right person follows up.
- Links between records. Which contact belongs to which company, deal and appointment.
- Automations. Workflows rarely export in a usable form and usually have to be rebuilt by hand.
The migration checklist
- Inventory the old system. Count contacts, companies, deals, pipelines, custom fields, conversations, appointments, forms and workflows. These counts become the test at the end.
- Decide what not to move. Dead leads from years ago, test records and duplicates. Moving rubbish makes the new system worse on day one.
- Map every field. Old field to new field, with a rule for each mismatch in format.
- Clean and deduplicate. Match on email and phone, merge duplicates, and keep a record of what was merged.
- Carry consent across first. Opt-outs and do-not-contact settings move with the contact, before any automation in the new system can run.
- Import in a repeatable way. Each record keeps its original ID, so the import can run again without creating duplicates. This matters more than people expect, because you will run it more than once.
- Rebuild forms and automations. Test each one with real submissions.
- Run both systems side by side. Compare counts and spot-check records. Freeze changes in the old system, run a final import, and switch links and webhooks over.
- Switch off the old system last. Do it only once every check has passed.
Our own migration
We are moving our own CRM out of GoHighLevel into a system we built, so this checklist comes from doing it, not from a template. So far the import has carried across more than 1,600 contacts, 100 deals with their values, and the history behind them: over 11,000 emails, over 1,000 text messages, nearly 200 calls and several thousand other activity records.
Three things made the difference:
- The import can be re-run safely. Every record keeps its original ID, so running the import again updates rather than duplicates.
- Do-not-contact settings came across with each contact, and every broadcast in the new system checks them.
- The import only accepts data from the right account. An agency login can see several client accounts, and a migration pulling from the wrong one is a surprisingly easy mistake.
We are running both systems side by side and will only switch the old one off after live tests of every form, booking, message type and payment. That is the same standard we hold client migrations to.
Common migrations
| From | Watch out for |
|---|---|
| Spreadsheets | Inconsistent formats, duplicates, no history, owners stored as initials |
| GoHighLevel | Several sub-accounts under one agency login, workflows that cannot be exported whole |
| HubSpot, Pipedrive or Salesforce | Custom objects and associations, and how much activity history the export includes |
| An old in-house system | Undocumented fields and rules that only one person understands |
What it costs and how long it takes
Projects start at £4,500. The price depends on the number of records, how much history comes across, how messy the data is and how many forms and automations need rebuilding. Setting up the new CRM itself is often part of the same project, covered on our CRM setup and migration page.
Allow for the side-by-side period in your plan. It is the cheapest insurance you will buy.
Frequently asked questions
Can we keep our email and text history?
Usually, yes, where the old system lets it be exported. We check what your current system can export before quoting.
Will our automations move across?
Rarely in a usable form. Most platforms do not export workflows completely, so we rebuild each one and test it with real data.
How do you avoid duplicates?
Each record keeps its original ID from the old system, and contacts are matched on email and phone. Re-running the import updates existing records rather than creating new ones.
What happens to people who opted out?
Their opt-out and do-not-contact settings are carried across with the contact before anything in the new system can message them.
Can we run both systems at the same time?
Yes, and we recommend it. The old system stays live until counts match and every form, booking and automation has been tested in the new one.