A migration that lands clean, not just copied
The goal is a working CRM on day one, not a pile of imported rows nobody trusts.
Field mapping
Match every source column to a standard or custom HubSpot property before anything imports.
Deduplication
Merge duplicate contacts and companies so one person is one record, not three.
Association mapping
Keep contacts tied to their companies and deals tied to both, using a unique ID column.
Validation
Check formats, required fields, and value spelling before the records hit your live CRM.
Staged imports
Bring objects in the right order so associations resolve cleanly across files.
Leave the junk behind
Decide what stale, dead, or unusable data does not earn a place in the new system.
A migration sequence that holds together
-
Export and audit your source dataPull contacts, companies, deals, and activities from your old CRM or spreadsheets. Open each file and note which fields are clean, which are messy, and which are empty. This audit is where you decide the scope of the cleanup.
-
Map fields to HubSpot propertiesMatch each column to a standard property where one exists, and create custom properties for the rest. Set the right field type early. A date stored as free text will not behave like a date once it is inside HubSpot.
-
Clean and deduplicate before importStandardise values like country and lifecycle stage, fix obvious format errors, and remove duplicates. Add a unique ID column to each file so contacts, companies, and deals can be associated to each other during import.
-
Import in order, objects firstBring companies in, then contacts, then deals, using the import flow with the association option so records link back to the right parent. Importing out of order is the most common reason associations break.
-
Validate the result in HubSpotSpot-check a sample of records, confirm associations resolved, and review property values on a saved list view. Fix anything off before your team starts working the data. A short validation pass now saves weeks of confusion later.
Where migration fits in your setup
Data migration is one step inside a wider implementation, and the records you move power everything built on top.
