What Actually Breaks When You Migrate a CRM
By Mikhail Oskola, Founder & AI Automation Architect · · Updated · 6 min read
The problems that show up in a migration — duplicate records, custom fields with no destination equivalent, activity history that doesn't move by default — are the same shape whichever CRM is the source and whichever is the destination. That's why we treat data migration as its own step in every CRM project, not an afterthought of setup.
Where duplicates come from, and why exporting them doesn't fix anything
A contact gets created from a web form, then again from a CSV import six months later, then a third time when a rep adds them manually because search didn't turn up the first two. Same person, one email address, three records — different notes on each, and none of them owns the full call history. Migrate that straight across and the new system inherits the mess, and usually gets blamed for it. Deduping has to happen before the move, because once independent activity history is attached to each duplicate in the new system, merging means picking whose notes survive.
Fields that don't have anywhere to go
Every CRM accumulates custom properties nobody quite remembers creating — an old lifecycle stage, a lead-score field from a scoring model that got retired, a free-text box someone used for three months and then abandoned. The destination system rarely has a matching field waiting for it. Each one needs a decision — keep it, map it to the closest equivalent, or archive it — made before the migration runs, not discovered during it.
The part everyone forgets: history
A contact record's value usually isn't the name and email — it's the years of notes, emails, and call logs attached to it. Most migration tools move the object cleanly and leave the timeline behind unless someone builds that step in on purpose. Losing that is invisible on migration day and expensive three weeks later, the first time a rep needs to know what was already said to someone.
Same problem, whichever direction the data moves
The same three things — duplicates, orphaned fields, and history — are exactly what we check first when the destination is HubSpot, in a HubSpot implementation. The destination changes which schema you're mapping into; it doesn't change what has to survive the trip.
The same checks apply when the move is from HubSpot to GoHighLevel. HighLevel's own HubSpot importer brings contacts, deals and notes across, but workflows have to be rebuilt by hand; the limits are in our notes on moving from HubSpot to GoHighLevel. Coming to GoHighLevel from ActiveCampaign, contacts and deals go across as CSV files and pages, forms and automations are rebuilt by hand; see GoHighLevel vs ActiveCampaign.
Pipedrive works the same way. HubSpot's Smart Transfer names Pipedrive as a source, while Pipedrive's own guide for the reverse trip is CSV export and import, one object type at a time. Either way, the checks above still apply; the details are in our notes on moving from Pipedrive to HubSpot.
Salesforce is the same story. HubSpot's Smart Transfer names Salesforce as a source, while Salesforce's own import wizard takes CSV files and doesn't list deals. The checks above still apply; the details are in our notes on moving from Salesforce to HubSpot. Moving between Salesforce and Zoho CRM instead? See Zoho CRM vs Salesforce, which covers the move in either direction.
Project tools follow the same rule. monday.com has no importer for Jira Cloud, so issues come across through its Jira integration, and workflows and automations are rebuilt by hand; the details are in our notes on moving from Jira to Monday.com.
Not sure which CRM to move to? Take the 6-question CRM picker.
Want this built for your team? Retailbox HubSpot Implementation & Automation — in business since 2019, 470+ jobs on Upwork.
Related services
CRM consulting & training
Not sure which CRM should survive the migration? We help you decide before anything moves.
Monday.com implementation
Same migration discipline applies moving data onto Monday.com instead of HubSpot.
business process automation
Once the CRM data is clean, the workflows built on top of it are the next thing worth automating.
Pipedrive to HubSpot migration
Coming from Pipedrive? A step-by-step guide to the same checks, object by object.
Zoho CRM to HubSpot migration
Coming from Zoho CRM? What Zoho exports, how its modules map to HubSpot, and the steps in order.
HubSpot migration cost
What a move to HubSpot costs, and which of these failure points add the most to the price.
Frequently asked questions
Does migrating into HubSpot lose activity history?+
Not if the migration plan accounts for it upfront. Contact and deal records move cleanly with most tools; notes, emails, and call logs are the part that needs a deliberate export/import step rather than the default one-click transfer.
How do you handle duplicate contacts during a CRM migration?+
Dedupe on the source side before the move. Once duplicates exist as separate records in the new system with their own activity history, merging them means choosing which version's notes and call logs survive.
Does it matter which CRM you're migrating from?+
Less than people expect. What counts as a duplicate, which fields need a mapping decision, and which data needs a manual step for history — that shape is the same whether the source is Salesforce, HubSpot, or a spreadsheet. What changes is which fields exist to check.