On this page
What usually gets lost in a CRM migration?
It is rarely the contact names. Those come across fine. What goes missing is the context around them, and you only notice weeks later when someone asks why a customer was called twice or why a quote has no history behind it.
Here is what we check for on every migration, and why each one bites.
| What gets lost | Why it happens | How we stop it |
|---|---|---|
| Notes and timeline history | Many exports give you contacts and deals but not the activity log underneath them | Export notes as a separate file keyed to the contact ID, then reattach after the contacts land |
| Custom fields | Field names do not match, so values silently drop into nothing | A written field map, old field to new field, signed off before anything is loaded |
| Marketing consent and unsubscribes | Consent flags live in a different place to the contact record and get left behind | Migrate consent first and treat an unsubscribe as unmissable. UK PECR guidance from the ICO says automated marketing calls need the person's specific prior consent, and general marketing consent is not enough |
| File attachments | Contracts and ID documents sit in storage, not in the CRM database | Pull files to a folder structure named by record ID, then relink |
| Owner and pipeline stage | Stages do not line up one for one between systems | Agree a stage mapping table with the sales lead, including what happens to stages that no longer exist |
| Duplicates created during the switch | New enquiries land in the old system while the import is running | Freeze new entry for a defined window, or log the gap manually and import it last |
| Automations and integrations | Webhooks and zaps still point at the old system | List every integration before you start and re-point them in a planned order |
On that last one, watch your automation limits during the cutover week. Zapier's help centre explains that each successful action step counts as a task, and at the plan limit new runs are held until extra tasks are paid for. A bulk import that fires workflows can chew through a month's allowance in an afternoon, and then held runs look exactly like lost data.
How do you migrate CRM data without losing anything? The steps we follow
- Take a full export and lock it away. Every object: contacts, companies, deals, notes, tasks, files, tags, consent. Store it untouched as your reference copy. If everything else goes wrong, this is the thing that saves you.
- Count what you have. Record counts per object, written down. You cannot prove nothing was lost if you never knew the starting number.
- Decide what should not come across. Most CRMs are carrying years of dead data. Our rule of thumb is to migrate everything with activity in the last 24 months into the live system, and archive the rest as files you can search but do not pay to store in the CRM.
- Write the field map. Old field, new field, format, what to do with blanks, what to do with values that do not fit. This document is the migration. Everything else is typing.
- Clean before you load, not after. Deduplicate, fix phone number formats, standardise country codes. Dirty data in a new system is harder to untangle than dirty data in a system people already know.
- Dry run into a test environment. Our rule of thumb is a first pass of 100 records covering your awkward cases, then a full dry run once that is clean.
- Reconcile and spot-check. Counts must match object by object. Then pick a sample by hand, say twenty records across different stages and ages, and compare them side by side with the old system.
- Freeze, final delta load, go live. Pause data entry for a short defined window, import anything created since the dry run, re-point integrations, switch the team over.
- Keep the old system read-only for 30 days. Do not cancel it the day you launch. People will find the one thing nobody mapped, and you want somewhere to look it up.
- Agree what must never be reimported. This matters more than people expect. We migrated our own CRM out of GoHighLevel into a system we built, and that migration is finished. The old records were deliberately reset beforehand, so the import counts describe what the migration carried across and not what is in the system now. Those records are not going back in, and that decision is written down so nobody helpfully restores them later.
You can read more about how we scope and run this work on our approach page, and the service itself on our CRM migration service page.
How much does a safe CRM migration cost?
Migration is almost never bought on its own. It comes attached to a new CRM setup, a portal or an internal system, because the reason you are moving is usually that the current setup does not fit how you work.
| What you are buying | Typical situation | Price |
|---|---|---|
| Scoped build including CRM setup and migration | One pipeline, a clear field map, standard objects and files | £5,000 to £20,000 (US $10,000 to $30,000) |
| Client portal, one client type | Login, onboarding, files, messages, progress | £4,500 to £10,000 |
| Client portal, several roles | Approvals, payments or integrations | £10,000 to £20,000 |
| Multi-role or white-label platform | Complex workflows, AI and data migration together | £20,000 to £30,000+ |
| Run & Improve retainer (optional) | Care, Improve or Scale after launch | £1,000 / £2,000 / £4,000 a month (US $2,000 / $3,500 / $6,000) |
Payment defaults to 50% upfront and 50% on launch, and the signed scope controls. Retainers run on a three-month minimum, then monthly with 30 days notice. Portals take three weeks to three months from a signed scope, and we will not put a date on your migration before the scope is signed, because the honest answer depends on how messy the export turns out to be. Running costs for hosting, software and AI usage are paid straight to the providers from your own accounts. More detail sits on the CRM migration pricing page.
What pushes the price up
- Several source systems rather than one, so the same customer exists in three places.
- Attachments and documents that need to stay linked to the right record.
- Historic email and call activity you want preserved rather than archived.
- Live integrations that cannot go down, so the cutover has to be staged.
- Bespoke objects, for example property deals or course enrolments, that do not exist in the new system out of the box.
When a full CRM migration is not the right choice
Plenty of times, the best advice is to leave it alone. We would tell you to stay put when:
- Your current tool fits without workarounds. If people are not keeping a shadow spreadsheet, the problem is probably process, not software.
- Your process is still changing week to week. Migrating in the middle of that means rebuilding the field map twice. Let it settle first.
- You need it next week. A rushed migration is how data gets lost. If there is a hard deadline, do a partial move: take active deals and open opportunities only, and leave history where it is.
- Only one team is unhappy. Give them a connected view or a report instead of moving everyone.
The cheaper alternative, and often the better first step, is a clean-up in place. Deduplicate, delete dead records, fix the field names, archive old contacts and tighten the handful of automations people actually use. If you are weighing a move away from an all-in-one platform, our write-up on alternatives to GoHighLevel and the comparison of custom software versus SaaS both cover the trade-offs. Where automation rather than data is the real issue, Zapier versus a custom automation is the more useful read.
Our general view: start with the one customer journey that causes the most chasing, connect only what that journey needs, and add the rest once people are using it. And keep a person on anything involving money, legal commitments, complaints or messages sent in your name.
What this looks like in real builds
With TMMB Academy, a TikTok Shop academy, the starting point was a fragmented funnel, rising software subscriptions and no single system. We built one portal with role-specific workspaces for admins, coaches, creators, sales, assistants and brands, covering onboarding, creator performance, subscriptions and payments, course modules, calls, messages, community resources, brand deals, deliverables and operational alerts. The implementation ran for more than 60 days. TMMB was able to take on greater capacity, improve scalability and retention, and reports generating six figures within roughly two to three months. That figure is client-reported and shared with permission.
For MRM Group, a UK property development and investment company, we connected a public funnel to GoHighLevel and built an authenticated internal command centre for clients, deals and tasks, with client and deal workspaces, agreement-before-payment flows, document handling, task workflows, reminders and audit history, plus human approval at sensitive financial-promotion and AI decision points.
Our own product, the Agentryx platform, handles branded client onboarding from a single link, shared delivery boards, ad reporting across Meta, Google Ads and GoHighLevel, and a white-labelled client portal on each agency's brand.
Everything is built inside your own accounts. You own the code and the data, which also means you own the export if you ever want to move again. If data is landing in a CRM nobody follows up from, the fix is usually lead follow-up automation rather than another migration, and speed matters: Harvard Business Review's "The Short Life of Online Sales Leads" found firms contacting a web lead within an hour were nearly seven times as likely to qualify it as those waiting even an hour longer, and more than 60 times as likely as those waiting 24 hours or more. That was 2,241 US companies audited in 2011, of which 37% responded within an hour and 23% never responded.
Frequently asked questions
Can a CRM migration really be done without losing any data?
Yes, if you count before and after. Take a full export and keep it untouched, record how many of each object you had, run a dry run into a test environment, reconcile the counts and spot-check real records by hand. Then keep the old system read-only for 30 days after go-live so anything missed can still be looked up.
How long does a CRM migration take?
It depends on the state of the export and what else is being built around it, so we never promise a delivery date before a scope is signed. For context, client portals take three weeks to three months from a signed scope, and the TMMB Academy implementation ran for more than 60 days.
How much does it cost?
Scoped builds that include CRM setup and migration run £5,000 to £20,000 (US $10,000 to $30,000). Larger multi-role or white-label platforms that combine complex workflows, AI and data migration sit in the £20,000 to £30,000+ band. Payment defaults to 50% upfront and 50% on launch, and the signed scope controls.
What happens to marketing consent and unsubscribes?
They migrate first and get checked twice. ICO guidance on PECR says automated marketing calls need the person's specific prior consent and general marketing consent is not enough, so consent flags and unsubscribes are not something to tidy up after launch.
Should we migrate all our history or just active records?
Our rule of thumb is to move anything with activity in the last 24 months into the live CRM and archive the rest as searchable files. You keep the record without paying to store and maintain years of dead contacts in your working system.
Who owns the data and the system afterwards?
You do. Everything is built inside your own accounts, and you own the code and the data. Hosting, software and AI usage are paid directly to the providers from your accounts, so there is nothing locked behind us.
What does the process look like before any data moves?
A free 30-minute discovery call to map how your business runs and where work gets stuck, then a working demo built from that call and shown on a second call of about an hour, then the written scope and price. There is no paid audit.
Do you support the system after launch?
Optionally. Run & Improve retainers are Care, Improve or Scale at £1,000, £2,000 or £4,000 a month (US $2,000, $3,500 or $6,000), on a three-month minimum and then monthly with 30 days notice. Launch itself is staged, with team training and handover documentation either way.