Key takeaways
- Most CRM migration pain comes from dirty data and unmapped relationships, not from the import tool.
- Decide what not to migrate; old, unused data slows the new system and confuses users.
- Migrate in dependency order — companies, contacts, deals, activities — with stable external IDs.
- Rebuild automation from documented requirements instead of copying every old workflow.
01
How do you migrate CRM data without losing history?
Plan it in five stages: audit and clean the existing data, map objects, fields and relationships to the new CRM, test the import on a sample, migrate in dependency order with stable IDs, then validate counts and relationships before switching users over. History survives when associations and activity records are carried across with their original dates and owners, which needs planning before the first import.
The import tool is rarely the hard part. The hard part is deciding what the data means and which of it is worth keeping.
02
What should you clean and decide before migrating?
Merge duplicates, standardise values such as countries and industries, retire fields nobody uses, and decide a cut-off for old records — for example, contacts with no activity and no deal in five years. Agree with sales and marketing which history they genuinely use: open deals and recent activity usually matter; a decade of email opens rarely does.
Document every field mapping, including picklist values that change and fields that merge. That document becomes the reference when a user asks where something went.
| Step | Output | Owner |
|---|---|---|
| Data audit | Record counts, duplicates, empty fields | CRM admin |
| Retention decision | What to migrate, archive or delete | Sales and marketing leads |
| Field mapping | Old field to new property, value by value | Admin with business owners |
| Test import | Sample of each object, validated | Admin |
| Cutover plan | Freeze window, order, rollback | Project lead |
03
In what order should data be imported?
Import parent records before children so associations can be made: users and owners, then companies, then contacts, then deals or opportunities, then activities and notes. Carry a stable external ID from the old system on every record so later imports and fixes can match reliably.
Both HubSpot and Salesforce document multi-object imports and data import tools. Test each step on a sample first and compare counts and associations with the source before running the full load.
04
How should automation and cutover be handled?
List every workflow, assignment rule, integration and report in the old system, and for each one decide: rebuild, redesign or retire. Copying automation one-for-one often reproduces problems the migration was meant to fix. Rebuild integrations against the new CRM and test them before cutover.
Freeze changes in the old system during the final load, switch integrations over, then open the new CRM to users with training and a short list of known differences. Keep the old system read-only for a defined period so nobody loses access to history they need.
- Inventory of workflows, rules and integrations
- Rebuild, redesign or retire decision for each
- Change freeze during final load
- Old CRM read-only for an agreed period
Was this useful? Send it to someone who owns this problem.
Primary sources and further reading
Use the source material to validate details against your own context and current platform configuration.
- HubSpot: Import records for multiple objects
- HubSpot: Deduplicate records
- Salesforce Trailhead: Importing and exporting data
- HubSpot developers: Associations overview
This field note follows the XenGrowth editorial policy: primary sources where available, visible limitations, material review dates, and no invented first-hand experience.
Stay with the problem
Related field notes
Revenue OperationsMarketing Audit: A 12-Point Check for Where Your Spend Leaks
GTM StrategySales Enablement for Small and Mid-Size Teams: Build What Sales Will Actually Use, and Measure It Honestly
GTM StrategyBrand Messaging Framework: A One-Page Version That Sales and Marketing Can Both Use, With a Fill-In Table