What does a Salesforce to HubSpot migration involve?
A Salesforce to HubSpot migration moves your records, relationships, and the history that matters into a HubSpot structure designed for how you sell. Done well, it has seven steps: audit the source org, build a field mapping sheet, deduplicate before import, test in a sandbox, rebuild automation and reporting, cut over in a short freeze window, and train the team.
Signing the HubSpot contract is the easy part. This checklist is for the RevOps or sales ops lead who now has a Salesforce org to retire and a team that needs to keep selling while it happens. It follows the same order we use on our HubSpot migration projects.
- 01 AuditWhat exists in Salesforce, and what to retire
- 02 MapObjects and fields to HubSpot
- 03 DedupeBefore import, not after
- 04 TestSample import in a sandbox or test portal
- 05 RebuildAutomation as HubSpot workflows
- 06 Cut overFreeze, final import, verify
- 07 TrainKeep the team in HubSpot
Who can migrate Salesforce to HubSpot for a small B2B team?
A HubSpot Solutions Partner that runs the migration in-house on a fixed scope. At PipelineSync, our team runs it in three to six weeks: a $495 CRM Audit, then a Method build from $2,950 plus data migration from $750 for up to 10,000 records, with two weeks of support after go-live.
Small teams rarely need everything Salesforce held. The audit decides what comes across and what is archived, so a typical small-team scope looks like this:
- Moves: contacts, companies and deals with their associations, the activity history your team still uses, and the fields people actually fill in.
- Rebuilt, not copied: the flows, assignment rules and reports you rely on, as HubSpot workflows and dashboards.
- Retired: unused fields, abandoned objects and old automation, documented so nothing is lost by accident.
- Priced by volume: each extra 10,000 records adds $350. Full prices are on our pricing page.
If your Salesforce org is simple (standard objects, light history, no custom automation), HubSpot's own Smart Transfer may be enough; our Smart Transfer guide covers when it fits. A partner-led migration earns its cost when you have custom objects, years of messy data, or automation the team depends on. See our HubSpot migration service for how we run it.
Why do CRM migrations fail?
Most migrations fail for two reasons. The data arrives without structure, so HubSpot inherits years of Salesforce clutter. Then the team quietly goes back to the old system because the new one does not answer their questions. Both are planning problems, and both are decided before the first import.
A technically successful import can still be a failed migration. Records load, counts match, and yet reps cannot find the deal history they rely on, the dashboard leadership used every Monday no longer exists, and nobody knows which of three "Status" fields is the real one. The steps below are designed to prevent exactly that.
Step 1: What should you audit before exporting from Salesforce?
Audit four things: objects, fields, automation, and reports. List every standard and custom object in use, the fields on each that people actually fill in, the flows and validation rules that enforce your process, and the reports leadership relies on. That inventory decides scope.
Objects, fields, automation, reports
- Objects: leads, contacts, accounts, opportunities, cases, activities, products, and any custom objects. Note record types, because they often become separate HubSpot pipelines.
- Fields: for each object, which fields are populated, which are formulas, and which nobody has touched in years.
- Automation: flows, validation rules, assignment rules, and approval processes. Each one encodes a business rule you will need to rebuild or retire.
- Reports and dashboards: the handful that drive real decisions. These become your acceptance tests later.
Decide what to migrate, archive, calculate, or exclude
Every object and field gets one of four labels. Migrate means it comes across as data. Archive means it is exported and stored outside HubSpot for reference. Calculate means HubSpot will derive it (a rollup or calculated property) rather than import a stale value. Exclude means it is deliberately left behind. Writing this down is what stops a migration turning into a copy of every mistake in the old org.
Step 2: How do you map Salesforce fields to HubSpot?
Map each field by business meaning, not by label. For every field you migrate, record the source object and field, the HubSpot object and property, the data type, allowed values, and any transformation. Agree the matching key for each object and plan associations, owners, and activity history explicitly.
Business meaning, data type, allowed values
A Salesforce picklist called "Status" may mean something different from a HubSpot property with the same name. Capture what the field means to the business, then define how values translate. Dropdown values, dates, currencies, and multi-select fields need explicit rules. Our free data migration mapping sheet lists the columns we use.
| Salesforce | Usual HubSpot destination | Decision to make |
|---|---|---|
| Leads and contacts | Contacts | How lead vs contact maps to lifecycle stage and lead status |
| Accounts | Companies | Parent and child account structure; domain as a matching key |
| Opportunities | Deals | Stage mapping per pipeline; record types to separate pipelines |
| Cases | Tickets | Ticket pipeline and status mapping |
| Tasks and events | Activities (tasks, calls, meetings, notes) | How much history to bring, and what it associates to |
| Custom objects | Custom objects or properties | Whether the object is still needed, and whether your HubSpot tier supports custom objects |
HubSpot's Smart Transfer tool supports Salesforce, but not custom objects or every field type. Our HubSpot Smart Transfer guide covers what it moves and when it is enough.
Matching keys per object
Decide how each record will be matched on import and on every later sync. Email address for contacts and company domain name for companies are the usual starting points. Store the Salesforce record ID in a dedicated HubSpot property on every object so you can reconcile, re-run imports, and trace any record back to its source.
Associations, owners, activity history
Contacts, companies, deals, tickets, and activities are connected. Import order matters: owners and companies first, then contacts, then deals and tickets, then activities, with associations set using the stored Salesforce IDs. Map Salesforce users to HubSpot users before anything loads, including people who have left, so ownership history is not lost.
Step 3: Should you deduplicate before or after importing into HubSpot?
Before. Deduplicating in Salesforce or in the export files is cheaper and safer than merging in HubSpot afterwards, because every duplicate you import also brings its own activities, associations, and owner. Clean the source, agree a primary-record rule, and import one version of each person and company.
Agree what counts as a duplicate (same email, same domain, same external ID, or a normalized name match), and which record wins when two conflict. Protect consent, lifecycle, and ownership values during merges. We explain the knock-on costs in what duplicate data in HubSpot actually costs you.
Step 4: How do you test a migration before going live?
Run a sample import into a HubSpot sandbox or test environment, then reconcile it against Salesforce. Compare record counts per object, check associations and owners on sample records, and rebuild the critical reports to see whether they return the same numbers. Fix the mapping, then repeat.
- Counts per object and per pipeline match the source, minus the records you chose to exclude.
- Twenty or so sample records per object are checked field by field against Salesforce.
- Associations are correct: contacts to companies, deals to contacts and companies, activities to the right records.
- The reports leadership relies on return the same totals in both systems.
Planning a Salesforce migration? Bring your object list to a free 30-minute consultation and we will walk through scope with you.
Step 5: How do you rebuild Salesforce automation in HubSpot?
Rebuild from the business rule, not from the old configuration. For each flow, validation rule, or assignment rule in your audit, write down what it is meant to achieve, decide whether it is still needed, then build the HubSpot equivalent with workflows, required properties, and pipeline rules. Test each one on sandbox data.
Salesforce orgs often carry automation nobody remembers adding. Copying it across one-for-one recreates the complexity you are trying to leave. Rebuild reporting the same way: start from the decisions leadership makes, then build the dashboards that answer them.
Step 6: What goes into a migration cutover plan?
A cutover plan sets a freeze window when nobody edits Salesforce, a final delta import of records changed since the last test, a reconciliation against the source, a rollback decision point, and a list of post-cutover checks. It names who does each step and when the team switches.
- Freeze window agreed with sales leadership and announced in advance.
- Final delta import and reconciliation using the same checks as the sandbox run.
- Rollback criteria written down before cutover, not decided on the day.
- Integrations and forms repointed to HubSpot; Salesforce set to read-only for reference.
- Post-cutover checks on day one and day five: routing, workflows, reports, and sync errors.
Step 7: How do you make sure the team stays in HubSpot?
Train by role, on your own portal, with your own data, before cutover day. Show each team how to do the jobs they did in Salesforce, then hand over written SOPs. Adoption holds when HubSpot answers people's daily questions faster than the old system did.
Short, role-based sessions work better than one long demo. Record them, document the data model and automation logic, and keep a named owner for questions in the first weeks. More on this in why teams do not adopt HubSpot.
The Salesforce to HubSpot migration checklist
Use this as the sign-off list for each phase.
Key takeaway: Most of a migration's success is decided before the first import. Audit, map, and deduplicate first, and the import itself becomes the least risky step.
Frequently asked questions
Who can migrate Salesforce to HubSpot for a small B2B team?
A HubSpot Solutions Partner that runs migrations in-house on a fixed scope. At PipelineSync, our team runs it in three to six weeks: a $495 CRM Audit, then a Method build from $2,950 plus data migration from $750 for up to 10,000 records, with two weeks of support after go-live.
How long does a Salesforce to HubSpot migration take?
Our migrations typically take three to six weeks. The range depends on data volume, how many objects and custom objects are in scope, the number of integrations, and how much Salesforce automation has to be rebuilt as HubSpot workflows.
Can we keep our activity history from Salesforce?
Yes, where it matters. The source audit decides which tasks, events, emails, and notes come across and which are archived outside HubSpot. The mapping sheet records how each activity type is imported and which records it is associated with.
Should we run Salesforce and HubSpot in parallel?
Keep the overlap as short as possible. A long parallel run means two sources of truth and data entered twice. We prefer a short freeze window: stop edits in Salesforce, run the final delta import, reconcile, then switch the team over with Salesforce kept read-only for reference.
Can HubSpot and Salesforce stay in sync instead of migrating?
Yes. If Salesforce stays for part of the business, a bi-directional sync with clear field ownership and deduplication may fit better than a full migration. See our HubSpot integration services for how we design that.
Sources
HubSpot documentation behind the feature and tier notes above, checked October 2026. HubSpot changes features and tiers often, so check your own portal too.

