How to Migrate a CRM Without Losing Customer History, Conversations or Tags
You migrate a CRM without losing data by exporting everything, not just contacts, mapping every field before import, and moving history that a CSV can’t carry through the API or as attached notes. Then you run both systems for a short overlap, reconcile record counts and spot-check real customers before you switch the old CRM off.
Most data loss in a CRM switch is not a technical failure. It happens because someone exported the contact list, imported it, and only found out weeks later that notes, email threads, deal history or opt-out records stayed behind. This guide covers how to plan the move so that doesn’t happen, whichever CRMs you are moving between.
What do you need to do before migrating a CRM?
Take an inventory, decide what moves, and freeze changes. Before anything is exported, list every type of data the old CRM holds, who uses it, and which automations depend on it. That inventory becomes the checklist you test against at the end, so nothing is forgotten because nobody remembered it existed.
- Count your records. Note the number of contacts, companies, deals, notes, tasks and files today. You will compare these counts after import.
- List every field. Export the field list, including custom fields, and mark each one keep, merge or drop.
- List every tag and list. Tags often carry meaning (customer type, source, consent) that automations rely on.
- List every automation. Workflows, sequences, round-robin rules and integrations. They never move by export; they have to be rebuilt.
- Find your consent records. Opt-outs, unsubscribes and do-not-contact flags must move with the contacts. Losing them means texting or emailing people who said no, which breaks TCPA in the US, CASL in Canada, PECR in the UK and the Spam Act in Australia.
- Take a full backup. Keep a complete, dated export of the old system even after the move, in case a question about a customer comes up later.
- Set a change freeze. Agree a date after which nobody adds new fields or automations in the old CRM.
Which data transfers cleanly and which needs rebuilding?
Records transfer; behaviour doesn’t. Contacts, companies, custom fields, tags and deals move cleanly with a mapped CSV import. Conversation history, emails, call recordings and files usually need an API-based transfer or have to be attached as notes. Automations, user permissions and integrations always have to be rebuilt in the new system.
What moves, and how
| Data | How it usually moves | What to watch |
|---|---|---|
| Contacts and companies | Mapped CSV import | Duplicates, phone number formats, company links |
| Custom fields | Create the fields first, then map in the import | Field types (date, number, dropdown) must match |
| Tags and lists | Imported as tags on each contact | Merge near-duplicate tags before import |
| Deals or opportunities | CSV import into the right pipeline and stage | Stage names, owner, value and close dates |
| Notes and tasks | API transfer, or imported linked to the contact | Keep the original date and author in the text |
| Conversation history (SMS, chat) | API transfer where both systems allow it; otherwise a transcript note or file | Threads may arrive as notes rather than live conversations |
| Email history | API transfer or archived as files linked to the contact | Large mailboxes take time; attachments add size |
| Call recordings and files | Downloaded and re-uploaded, or stored and linked | Storage limits and file naming |
| Automations and sequences | Rebuilt by hand | Document the old logic first |
| Users, roles and permissions | Set up again | Decide who sees what before go-live |
A done-for-you CRM migration covers all of these, including the history that a simple CSV import leaves behind.
How do you keep conversation history when switching CRMs?
Export it separately from the contacts, then attach it to the matching contact in the new CRM. Most CRMs don’t include messages in a standard contact export, so the history is pulled through the old system’s API or its full data export, matched to each contact by email address or phone number, and written into the new CRM.
How it arrives depends on the new system. Some CRMs, including GoHighLevel, let messages be written into a contact’s conversation through the API, so the thread looks much as it did before. Where that isn’t possible, the history goes in as a dated transcript note or a file on the contact. Either way, your team can open a customer and see what was said before the switch. Decide which approach you need before the project starts, because it changes the effort involved.
How should you map fields, tags and pipelines?
Build a mapping sheet with one row per field: the old field name, the new field name, the field type and any clean-up rule. Create every custom field, tag and pipeline stage in the new CRM first, then import against that sheet. Importing first and tidying later is how fields end up in the wrong place.
- Clean before you map. Merge duplicate contacts, standardise phone numbers to the international format (+1, +44, +61, +971 and so on), and fix obviously broken emails.
- Simplify tags. “Lead-FB”, “fb lead” and “Facebook Lead” should become one tag.
- Map pipeline stages one to one. If the new pipeline has fewer stages, decide where each old stage lands and write it down.
- Keep source data. Original lead source, created date and owner are easy to lose and hard to recover.
For a worked example of this mapping between two specific systems, see our HubSpot to GoHighLevel migration guide.
Lead Generation System
“I have found the team at Automate responsive to all requests, changes and the turn around time to provide services were quite quick. They are GHL experts and it has shown. They provided us a Lead Generation System. This started slow for the first 2 weeks, which is normal, however, now we cannot keep up with the leads coming in everyday. This is a good problem to have. I would recommend them to anyone who is looking to scale.”View original Trustpilot screenshot
What is the safest way to cut over to the new CRM?
Move in phases with a short overlap, not in one weekend. Import a test batch first, then the full historical data, then run both systems side by side for a few days while new leads go to the new CRM. Switch off the old one only after the final changes are moved across and the checks below pass.
A phased cutover plan
| Phase | What happens | Done when |
|---|---|---|
| 1. Test import | A sample of 50 to 100 real records, including messy ones, goes into the new CRM | Every field lands in the right place |
| 2. Build | Pipelines, automations, forms and integrations are rebuilt and tested with test contacts | Each automation fires correctly on a test record |
| 3. Full import | All contacts, deals, notes and history are imported | Record counts match the inventory |
| 4. Overlap | New leads go to the new CRM; the team works there while the old one stays read-only | No one needs the old system for daily work |
| 5. Delta import | Anything changed in the old CRM since the full import is moved across | Counts match again |
| 6. Switch off | Old CRM is archived, with a full backup kept | Sign-off from the people who use it |
Phone numbers and email sending domains need their own plan. Porting a business number to a new provider usually takes days to a few weeks, and the new CRM’s sending domain needs its DNS records in place before campaigns go out, so start both early.
How do you check that nothing was lost after the migration?
Compare counts, then check real customers. Record counts tell you whether everything arrived; spot checks tell you whether it arrived correctly. Do both before the old CRM is switched off, while you can still go back and fix gaps.
- Counts: contacts, companies, deals by stage, notes, tasks and files, old against new.
- Spot checks: open 20 to 30 real customers, including your oldest, your biggest and a few with long histories, and compare them field by field.
- Consent: confirm that every contact who opted out in the old CRM is marked do-not-contact in the new one.
- Automations: run each one with a test contact and check the messages, tasks and stage changes it makes.
- Reports: rebuild your key report (for example deals won last quarter) in the new CRM and check it gives the same number.
How long does a CRM migration take?
For most small and mid-sized businesses, one to four weeks. Data volume matters less than you would expect; the time goes into history transfer, rebuilding automations and integrations, and the overlap period. A clean contact list with a few pipelines moves quickly, while years of emails, calls and custom logic take longer.
Typical timelines by size and complexity
| Situation | Typical timeline | What drives it |
|---|---|---|
| Up to about 5,000 contacts, few automations | About 1 week | Clean-up and field mapping |
| 5,000 to 50,000 contacts, several pipelines | About 2 to 3 weeks | Deal history, automations and the overlap |
| Large database with years of emails, calls and files | About 3 to 6 weeks | API history transfer and file volume |
| Custom-built or homegrown CRM | Depends on the database | Extracting data and rebuilding business logic |
If you are moving off a system your team built in-house, read our separate guide to migrating from a homegrown CRM, because the export and logic steps are different. If GoHighLevel is the destination, our GoHighLevel migration service covers the move, and CRM setup covers building the new system around how your team actually sells.
Want Your CRM Moved Without Losing a Record?
We inventory your current CRM, map every field, move the history a CSV leaves behind, rebuild your automations and check the counts with you before anything is switched off.
Book a Free Migration AuditWant This Built For Your Business?
We plan, build and test it inside your CRM, then hand it over documented. You don’t need to be technical.
- Free audit and written plan first
- Built in GoHighLevel or your current CRM
- AI trained on your services and policies
- Tested before anything goes live
- Handover and training for your team
- 30 days of post-launch support
Frequently Asked Questions
Can you migrate a CRM without losing data?
Yes, if you plan for more than contacts. Inventory every data type first, move notes, messages and files through the API or as attached records, keep a full backup of the old system, and compare record counts and real customer records before switching the old CRM off.
Does conversation history transfer when you switch CRMs?
Not through a standard contact export. Message history is usually pulled through the old CRM’s API or full data export and written into the new CRM, either as conversation messages where the new system allows it or as dated transcript notes on each contact.
What data is most often lost in a CRM migration?
Notes, email and message history, files, original lead source and created dates, and opt-out records. Automations are also lost, because they never move by export and have to be rebuilt in the new system.
Should we run both CRMs at the same time during a migration?
Yes, for a short overlap of a few days. Send new leads to the new CRM, keep the old one read-only, then import anything that changed during the overlap before you switch the old system off.
Do opt-outs and unsubscribes carry over to the new CRM?
Only if you move them on purpose. Map the do-not-contact, unsubscribe and opt-out fields in the import and check them afterwards, because messaging people who opted out breaks consent rules in the US, Canada, the UK and Australia.
How long does it take to migrate a CRM?
Most small and mid-sized businesses take one to four weeks. A clean contact list moves in about a week; years of email history, call recordings, custom fields and automations take longer.