To move into HubSpot from another CRM, work in 5 steps: plan, clean, map, move and check. Clean out duplicates and dead contacts first. Then pick one cutover day and freeze the old system for a short window. This guide is about moving in from another CRM or spreadsheets. It doesn't cover portal to portal or data centre moves.
HubSpot facts checked on 5 November 2026, at the time of writing.
Want a second opinion on your HubSpot portal? Speak to the team.
How do you migrate to HubSpot from another CRM?
Work in 5 steps: plan, clean, map, move, check. Plan the owner and cutover day. Clean the old data. Map each field to a HubSpot property. Move records in a set order, then check them the same day. Portal and data centre moves need a different plan.
Picture a 12-person Sydney services firm. The old CRM is full of live quotes, and sales can't stop for a week.
- 1Plan.Pick an owner for the move, a cutover day and a read-only window.
- 2Clean.Remove duplicates, dead contacts, old deals and unused fields.
- 3Map.Match each old field, stage and owner to its place in HubSpot.
- 4Move.Import companies, then contacts, then deals, then activity.
- 5Check.Compare counts, spot check records and send a test enquiry.
HubSpot gives you two ways in. The import tool takes spreadsheet files on all plans. Smart Transfer copies data straight from another app, and HubSpot lists it for all products and plans at the time of writing. Only Super Admins can use it, meaning users with full access to every setting.
Smart Transfer works with a set list of apps, including Pipedrive, Zoho CRM, Salesforce, Dynamics 365, Copper and Keap. Custom field mappings need a Data Hub subscription. If your old system isn't on the list, export to spreadsheet files and import them. For help with the build around the data, read what we do.
What to do: check if your old CRM is on HubSpot's Smart Transfer list before you plan anything else.
What should you clean before you migrate?
Clean duplicates first, then dead contacts, old deals and unused fields. Do it in the old system, before you export anything. Every bad record you move becomes a bad record in HubSpot, and your team stops trusting it on day one.
Say two staff logged the same customer, one with a work email and one with a Gmail address. HubSpot sees two people.
HubSpot's import help page says to use a unique identifier to avoid duplicates. For contacts, that's the email. For companies, it's the company domain name. Without one, the import creates new records instead of matching existing ones. Our post on how HubSpot's match logic works explains what it merges and what it misses.
A move won't clean your data. Do that in the old CRM first.
- Duplicates. Merge people and companies logged twice.
- Dead contacts. Bounced emails, people who left, and leads with no contact in years.
- Old deals. Close out dead deals so they don't clog the new pipeline.
- Unused fields. If nobody fills it in, leave it behind.
What to do: export a list of possible duplicates from the old CRM this week and sort them before you map.
What should you map before you move a single record?
Map fields, owners, pipelines and stages, and associations. Associations are the links between records, like a contact to its company or a deal to its contact. Do it on paper first. If the map doesn't make sense in a spreadsheet, it won't in HubSpot.
Picture an old CRM with a "Rep" field and a stage called "Quoted". HubSpot needs to know which user that rep is, and which deal stage "Quoted" becomes.
| Old field | HubSpot property | Type | Owner |
|---|---|---|---|
| Single-line text | Office manager | ||
| Company | Company name | Single-line text | Office manager |
| Rep | Contact owner and Deal owner | HubSpot user | Sales lead |
| Stage | Deal stage | Set by the pipeline | Sales lead |
| Lead source | Lead source (custom) | Dropdown select | Marketing lead |
| Follow-up date | Follow-up date (custom) | Date picker | Sales lead |
A few HubSpot rules shape the map, according to its import help page at the time of writing.
- Each deal needs a Deal name, a Pipeline and a Deal stage. The pipeline and stages must exist in HubSpot before you import.
- Owners can be matched by name or email. Add your team as HubSpot users first.
- Custom association labels need a Professional or Enterprise subscription. A label describes the link, such as "billing contact".
What to do: build the mapping table in a shared sheet and get each owner to sign off their rows.
How do you plan the cutover day?
Pick a quiet day and freeze the old CRM in the morning. Take the final export, then import in order: companies, contacts, deals, then activity. Check owners as each file lands. In that order, links between records form as they land.
Say your firm picks a Friday. That morning the old CRM goes read only.
- Freeze old CRM
- Final export
- Import companies
- Import contacts
- Import deals
- Import activity
- Check
The order matters. A record can only link to one that's already in HubSpot. Our post on what proper onboarding involves uses the same order.
HubSpot's import limits rarely slow a small team, at the time of writing. On free tools, files can be up to 20 MB, with 500,000 rows a day. On a paid plan, files can be up to 512 MB, with 10 million rows a day. Files must be .csv, .xlsx or .xls, with one sheet and a header row.
Get activity right the first time:
- Notes, emails and calls without an activity date get the import date.
- Existing emails, meetings, notes and tasks can't be updated by a later import.
What to do: book the cutover day in everyone's calendar now, with the freeze time in the invite.
How do you check the data after the move?
Check the same day. Compare record counts, spot check a sample of records, run reports that should match the old system, and send a test enquiry. A test enquiry is a fake lead you send through your own website form. It shows whether the record lands with the right owner.
Picture the sales lead opening HubSpot on Friday afternoon. The number of open deals in "Quoted" should match the old CRM.
- Old CRM set to read only, with the time noted
- Final export saved somewhere safe
- Companies, contacts, deals and activity imported in that order
- Record counts match for each object
- 10 records spot checked against the old CRM
- Open deals by stage match the old pipeline report
- Owners correct on a sample of records
- Test enquiry sent, landed with the right owner and the right stage
Pick messy records on purpose, like a deal with notes.
What to do: write the expected counts down before the freeze.
What does a safe rollback look like?
A safe rollback means the old CRM stays read only and untouched for a set window after cutover. If counts don't match, stop. Don't patch records by hand. Find the gap, fix the file, and import again. The old CRM is your safety net until HubSpot checks out.
Say a few hundred contacts are missing, and someone starts typing them in. By Monday, nobody knows where each record came from.
- Set a window before cutover day, and don't cancel the old CRM until it ends.
- Read only means the team can look up records, but nobody edits.
- If counts don't match, find the cause first. Common ones are a missing unique identifier or a stage that wasn't in the map.
- On Smart Transfer, HubSpot's help centre has steps to pause, cancel or revert a transfer.
What to do: name one person who can call a stop on cutover day.
What usually goes wrong on migration day?
Three things go wrong most: broken associations, wrong owners and workflows firing on imported records. Each one is quiet. You find out later, when a customer gets the wrong email.
Picture Monday. A welcome email has gone to every old customer.
Broken associations. If the import has no unique identifier, HubSpot creates duplicates instead of linking records. The deal ends up attached to a copy of the contact.
Wrong owners. Owners match by name or email, so a rep who isn't a HubSpot user yet can't be assigned. HubSpot also doesn't notify owners about records assigned through an import. Nobody notices until a lead goes cold.
Workflows firing. HubSpot enrols any record that meets a workflow's trigger, and imported records count. Smart Transfer also creates its own workflows to handle data differences, and turns them on when setup is complete. Its clean-up step removes them later. Read HubSpot workflows for how triggers work.
What to do: list every active workflow in HubSpot the day before cutover, and switch off any that send email.
How long does a HubSpot migration take?
It depends on how much data you have and how clean it is. For a small team with one CRM, the move itself often fits in one planned cutover day. The planning and cleaning take longest, and messy data adds time before that day.
Say your firm has a few thousand contacts. The import won't take long. Agreeing the map and cleaning duplicates is where the time goes.
What HubSpot says, at the time of writing:
- Smart Transfer's first sync can take several hours, depending on the volume of data. After that, it keeps syncing in the background.
- On free tools, imports cap at 500,000 rows a day, so bigger files take more than one day.
What to do: book the cleaning time before you book the cutover day. That's the part that runs over.
Questions owners ask about moving to HubSpot
How do I migrate from Salesforce to HubSpot?
HubSpot's Smart Transfer supports a one-way move in from Salesforce, according to HubSpot's help centre, checked 5 November 2026, at the time of writing. Keeping Salesforce after the move? HubSpot says to use its Salesforce integration instead, as running both creates duplicates in both systems.
What data should I clean before migrating to HubSpot?
Start with duplicates, because HubSpot matches contacts on email and companies on domain, according to its help centre, checked 5 November 2026, at the time of writing. Then remove dead contacts, close out old deals and drop fields nobody fills in. Do it in the old CRM before you export.
Which HubSpot plans include Smart Transfer?
HubSpot lists Smart Transfer for all products and plans, checked 5 November 2026, at the time of writing. Only Super Admins can use it. Custom field mappings need a Data Hub subscription. It moves data one way into HubSpot and is built for a one-time move.
What are HubSpot's import limits?
On free tools, files up to 20 MB, 50 imports a day and 500,000 rows a day. On a paid plan, files up to 512 MB, 500 imports a day and 10 million rows a day. These come from HubSpot's help centre, checked 5 November 2026, at the time of writing.
Can I bring across notes, calls and emails?
Yes, as activity imports. HubSpot gives an activity without an activity date the import date. Existing emails, meetings, notes and tasks can't be updated by a later import, according to HubSpot's help centre, checked 5 November 2026, at the time of writing. Get the activity file right the first time.
Do I need a partner for a HubSpot migration?
Not always. A small team with clean data and a supported app can do it with Smart Transfer or the import tool. A partner helps when the data is messy or many tools connect in. BranchLead is a Sydney HubSpot Solutions Partner with 24 tools wired together.
Sources
- Set up your import file, knowledge.hubspot.com/import-and-export/set-up-your-import-file updated 11 September 2026, checked 5 November 2026.
- Import records and activities for multiple objects, knowledge.hubspot.com/import-and-export/import-objects updated 7 October 2026, checked 5 November 2026.
- Transfer data from other apps using HubSpot Smart Transfer, knowledge.hubspot.com/integrations/transfer-data-from-other-apps-using-hubspot-smart-transfer updated 4 November 2026, checked 5 November 2026.
- Supported apps for HubSpot Smart Transfer, knowledge.hubspot.com/integrations/supported-apps-for-hubspot-smart-transfer checked 5 November 2026.
- Set filter enrollment triggers, knowledge.hubspot.com/workflows/set-filter-enrollment-triggers updated 23 September 2026, checked 5 November 2026.