Back to Blog
SalesforceHubSpotRevOps

Salesforce to HubSpot Migration: What Moves and What Breaks

Abhishek Singla Nov 12, 2026 16 min read
The short answer

Pick one route

Use Smart Transfer when Salesforce will be switched off. Use the Salesforce integration when both systems keep running. HubSpot states that the two use different unique identifiers to match records, so running both creates duplicates in HubSpot and Salesforce. Core objects have a published map. Automation, reports, products, and several field types have to be rebuilt or checked one by one.

If Salesforce is the system you are leaving, the route is the decision, and the field map comes after it. HubSpot migration is where we run that project. The wider sequence, including the audit before any import, is the CRM migration playbook. The facts below were checked on 12 Nov 2026 against HubSpot's own pages.

Cover for the Salesforce to HubSpot migration guide. The choice is one route, Smart Transfer or the integration, before any object is mapped.

Smart Transfer or the Salesforce integration: pick one

HubSpot documents two native paths, and they are built for different end states.

Smart Transfer is the one-way move from Salesforce into HubSpot. HubSpot describes it as the tool for a one-time migration, and says to use the integration instead if Salesforce will stay in use afterwards. The same article says the background sync keeps running after the first pass so transferred records stay current, while one-time extras such as attachments do not. Super Admins are the only people who can open Smart Transfer. Custom field mappings require a Data Hub subscription. Salesforce is on the supported-app list, alongside the audit, the configure step, the record sync, and a revert (Smart Transfer guide, supported apps).

The integration is the ongoing sync. It is available on Professional or Enterprise for Marketing Hub, Sales Hub, Service Hub, Data Hub, Content Hub, or Smart CRM. After you install it, records stay put until you import them or a sync trigger fires. HubSpot also checks both systems about every 15 minutes. You can connect one Salesforce instance to a HubSpot account. The connected Salesforce user has to be a system administrator on an edition with API access, or on Salesforce Professional. Group Edition is not supported (install guide, import and sync).

Smart Transfer
Salesforce is being switched off
One-way transfer into HubSpot
Audit, then configure, then sync records
Turn off its syncs before any integration
Salesforce integration
Both systems stay on for a while
Ongoing sync, plus an import of existing records
Source of truth chosen per field
Test on a sandbox before production

The warning HubSpot repeats on the Smart Transfer page and on the install page is the one we put at the top of the plan. The two features use different unique identifiers. Using both at the same time creates duplicate records in HubSpot and Salesforce. If Smart Transfer has already run, turn off all of its sync connections before you connect the integration (install guide).

Side by side is a real project, and it has its own operating rules. Field ownership, the inclusion segment, and the sync health report are covered in the HubSpot Salesforce integration guide. Whether HubSpot should replace Salesforce at all is a different question, covered in HubSpot vs Salesforce.

How Salesforce objects map to HubSpot

Smart Transfer publishes the object map. Read the label as Salesforce, then HubSpot, then the decision that map does not make for you (supported apps).

Accounts
Companies
Decide which accounts become companies. Parent accounts are not a separate row on the map.
Person accounts
Contacts
Person accounts land on contacts. They do not use the company row.
Contacts
Contacts
The same person may already exist as a lead. Agree the match rule before either record moves.
Leads
Contacts
Leads land on contacts. The HubSpot Leads object is a later decision, covered below.
Opportunities
Deals
Record type becomes a pipeline choice. Settle the pipeline list before the records move.
Cases
Tickets
Account and contact links have their own association rows. Check both after the transfer.
Events
Meetings
Events are in the data sync, so they move with the record sync rather than as a one-time extra.
Email messages
Email activities
Email messages are in the Salesforce object table. That table has no calls row.
Tasks
Tasks
Tasks map across. Queue ownership is not on the map, so check who owns each task afterwards.
Notes
Notes
Notes are in the data sync. Attachments are not. They are a separate one-time transfer.
Users
Users
Users map to users. On the integration, Owner ID is also a default contact mapping.
Email templates
Email templates
A template can move while the automation that sends it still has to be rebuilt.
Custom objects
Custom objects
The row exists. Creating the object in HubSpot requires Enterprise. Custom field mappings require Data Hub.
Flows, workflow rules
Workflows
Flows and classic workflow rules are on the map. Read each result against the source before you trust it.

Smart Transfer also publishes five associations, which is a shorter list than a Salesforce org usually has. Contact Account Name becomes contact to company. Opportunity Account Name becomes deal to company. Opportunity contact roles become contact to deal. Case Account Name becomes ticket to company. Case Contact Name becomes ticket to contact (supported apps).

On the integration, the planning guide uses the same core pairs: leads and contacts both sync to HubSpot contacts, accounts to companies, opportunities to deals, cases to tickets. It also says Salesforce campaigns have no direct equivalent in HubSpot, even though HubSpot has a campaigns tool (planning guide).

Before you create a property for a Salesforce field, HubSpot's planning guide asks you to pick the closest existing structure. Standard properties for ordinary contact, company, deal, and ticket data. Custom properties for business-specific fields. Custom objects for complex relational data. Activities for calls, emails, meetings, notes, and other interactions. For each mapped field, write the sync rule: use Salesforce unless blank, always use Salesforce, two-way, always use HubSpot, or use HubSpot unless blank (planning guide).

The import path on the integration can bring in leads, contacts, accounts, opportunities, tasks, a campaign, cases, events, and custom objects. A campaign has to be Active in Salesforce. For leads and contacts, only the email address syncs at the moment of import. If the account has no inclusion segment, or the contact is in the inclusion segment, a follow-up sync fills in the other fields. Contacts outside the inclusion segment keep every other property blank (import and sync).

What doesn't move on its own

Field types Smart Transfer skips. HubSpot lists five Salesforce field types the transfer will not move: encrypted string, junction ID list, master record, reference, and calculated. Those are HubSpot's labels: encryptedstring, JunctionIdList, masterrecord, reference, calculated. The audit step is where you see which fields are supported and which HubSpot property type each one expects (supported apps, Smart Transfer guide).

Reference fields are the one that surprises people, and HubSpot already documents the case. On the lead and contact sync, Account Name is a reference field and Company name is a single-line text property, so the two cannot share one mapping. If the HubSpot contact is syncing to a Salesforce contact, Company name will not sync. With account sync on, the related Salesforce account still syncs to the related HubSpot company (leads and contacts).

On the integration, an update to a Salesforce formula field does not trigger a sync. Updating a mapped field that a formula uses can trigger a sync. Fields on other records that feed the formula do not (import and sync).

Flows, Process Builder, and Apex. Smart Transfer maps Flows and classic workflow rules to workflows, and the configure step includes workflows and automations for Salesforce. HubSpot will create workflows to handle data-model differences, and for Salesforce the documented one is a deal create-date backfill. HubSpot's own switch guide still tells you to document the automation and rebuild it in the workflow tool. We open every transferred workflow next to the source Flow before anyone relies on it. Process Builder and Apex are not named on the Smart Transfer map or the switch guide, so treat that logic as a rewrite you check in the org (supported apps, Smart Transfer guide, switch guide).

Reports and dashboards. They are not on the Smart Transfer object map. The switch guide's reports phase is an inventory of active reports, a shorter future-state list, then out-of-the-box reports or custom reports for the gaps. Budget the rebuild. The shape of a useful HubSpot dashboard is in the dashboard and reporting guide.

Products, price books, and opportunity line items. The Salesforce Smart Transfer map does not include them. The one-time list for Salesforce is attachments and campaign lists only. The opportunity sync documents owner, close date, name, type, description, amount, and stage. It does not document opportunity products. In HubSpot, line items sit on the deal and can be pulled from the product library. HubSpot also states that importing line items, or updating them through the API, does not update the associated deal amount, and that the line item card shows up to 200 associated line items even when more exist. Check a sample of product-heavy opportunities and decide whether the deal amount is enough (supported apps, opportunity sync, line items).

Attachments and campaigns. Attachments, and campaign lists based on campaign membership, are one-time post-sync transfers. HubSpot states they sit outside the ongoing sync and will not stay up to date on their own. On the integration, campaigns associated with a lead or contact sync to the HubSpot contact property Salesforce Campaigns (supported apps, leads and contacts).

Create dates. The only Salesforce backfill workflow HubSpot documents sets the deal Create Date from the Salesforce Created Date field. There is no matching backfill in that table for contacts, companies, or tickets. After the transfer, compare create dates on those objects with the source (supported apps).

Owners and queues. Users map to users. The integration's default contact mappings include Owner ID, and you cannot delete a default mapping. Queues do not appear on the Smart Transfer object map, the association list, or that default contact list. Check queue-owned leads, cases, and tasks in the audit and on a sample after the transfer (supported apps, leads and contacts).

Currency. Salesforce opportunities in a multi-currency org can sync, and the integration will not convert currencies. Only the number moves. No exchange rate is applied. Smart Transfer's audit includes currency configuration and date formats. Check the currency on a sample of deals either way (opportunity sync, Smart Transfer guide).

Leads, record types and pipelines: the three decisions that shape reporting

These three choices decide what every later report can say. Get them wrong and the records can still be present while the funnel is unreadable.

Where Salesforce leads land. Smart Transfer maps leads to contacts. The integration article is about syncing Salesforce leads and contacts to HubSpot as contacts, matched on email. A HubSpot lead is a different record. HubSpot states a lead cannot exist on its own. It needs a primary association to a contact or a company. You create leads from contacts, or with a workflow that uses the create-record action. Managing lead pipelines requires Professional or Enterprise. The default lead pipeline has five stages: New, Attempting, Connected, Qualified, and Disqualified. Leads in a custom pipeline are not eligible for the default lead-stage automation (supported apps, leads and contacts, create leads, pipelines).

Set lifecycle stage and lead status on the contact before you decide whether a HubSpot lead record should exist at all. That pair is the lifecycle stage and lead status guide.

Record types and pipelines. On the standard opportunity sync, each Salesforce opportunity lands on a pipeline named Salesforce plus the record type ID. A single Salesforce pipeline is named Salesforce - Default Pipeline. Only deals in those synced pipelines are eligible to sync back. You have to turn deal sync on before you import opportunities, or HubSpot will not create the deals. Company sync has to be on, and a Salesforce account import finished, before opportunity sync, or the company will not associate to the deal. Turning company sync on later removes the account association from the opportunity (opportunity sync).

The updated deal sync is the version where you map each Salesforce opportunity record type to a HubSpot deal pipeline yourself. Only deals in mapped pipelines are eligible to sync. Switching to the updated sync cannot be reversed, so HubSpot recommends testing it in a developer test account or a sandbox first. Existing pipeline mappings carry over (updated deal sync).

Smart Transfer's configure step includes deal pipelines and stages, and the audit lists pipelines, stages, and fields. It does not publish a record-type table the way the updated deal sync does. Read the audit's pipeline list before you accept the pipelines it creates. How to design the stages once you know the list is the deal stages guide.

How many pipelines you can have. Custom pipelines are shared across objects, and the count excludes the default pipeline on each object. On seat-based pricing, HubSpot's limits are 0 on free tools, 15 on Starter, 100 on Professional, and 350 on Enterprise. On Flexible Seats and Credits pricing, Professional is 350 and Enterprise is 350, with the same 0 and 15 below that. Creating a custom pipeline requires Starter, Professional, or Enterprise. Restricting a pipeline to a team requires Professional or Enterprise. Custom-object pipelines require Enterprise. The opportunity sync page adds a separate limit: how many pipelines that sync can use depends on the Sales Hub subscription, and HubSpot points to the product catalog for the figure. Confirm that cap on the subscription before you promise one pipeline per record type (pipelines, opportunity sync).

Custom objects. Smart Transfer can map them. Creating them requires an Enterprise subscription. HubSpot lists that requirement on Marketing Hub, Sales Hub, Service Hub, Data Hub, Content Hub, Smart CRM, and Revenue Hub Enterprise. Custom field mappings on Smart Transfer separately require Data Hub. Whether the Salesforce object should be a custom object, a property, or an association is the decision in the custom objects guide (create custom objects, Smart Transfer guide).

A cutover plan that doesn't lose a quarter's pipeline

HubSpot's switch guide says a focused migration typically finishes within three months, and that the time depends on how involved the team is. We plan from the checks below, and the source stays readable until the counts match (switch guide).

Step 01
Audit
Objects, record counts, pipelines, fields, users, currencies, date formats.
Step 02
Data model
Standard property, custom property, or custom object. One owner per field.
Step 03
Test portal
Salesforce sandbox, plus a HubSpot sandbox or developer test account.
Step 04
Freeze
Stop new Salesforce edits. Pause workflows that enroll on creation.
Step 05
Transfer
Final sync or import. Keep the error log.
Step 06
Counts
Compare record counts per object. Explain every gap.
Step 07
Switch off
Only after the counts. Only if Salesforce is actually leaving.

Audit. Smart Transfer's audit maps each source object to a HubSpot object and shows property counts and record counts. Open an object and you get pipelines, stages, fields, whether a field is supported, the expected HubSpot property type, and the dropdown options. The audit also covers users, currencies, and date formats. You can export it and run it again to see what changed (Smart Transfer guide).

Data model. Use the planning guide's order: standard property, then custom property, then custom object. If both systems will stay on, write the source of truth per field before you set a sync rule. HubSpot's example is Salesforce for sales stages and revenue, HubSpot for marketing engagement (planning guide).

Test portal. Before a production connection, HubSpot says to test sync settings on a Salesforce sandbox, a HubSpot developer test account, or a HubSpot sandbox. The install screen has a checkbox for a Salesforce sandbox. A HubSpot standard sandbox requires an Enterprise subscription on one of the hubs HubSpot lists, and a Super Admin. Integrations on the production account are not connected to the sandbox automatically. HubSpot recommends connecting the sandbox version of an integration so production data is left alone. On creation you can copy the 5,000 most recently updated contacts, and up to 100 associated deals, companies, and tickets per contact. Sandbox workflows drop enrollments past 100,000 records a day across the whole sandbox. For Smart Transfer, the documented holds are the audit, the switch that turns off automatic sync so you can confirm mappings first, pause and resume, and revert (planning guide, install guide, sandbox, Smart Transfer guide).

Freeze. We stop new edits in Salesforce for the final pass, and we pause HubSpot workflows that enroll when a record is created. Turn them back on one at a time after the counts match. HubSpot says a Smart Transfer sync can take several hours depending on volume, and that a large Salesforce import may take several hours so it uses API calls more carefully (Smart Transfer guide, import and sync).

Final transfer. On Smart Transfer, configure the objects first. Leave automatic sync off if you need to filter or confirm mappings. Then sync records. One-time items, attachments and campaign lists, come after that first sync. On the integration, turn deal sync on before importing opportunities, and finish the account import before opportunity sync. Download the error log. Sync errors also show on the integration's sync health tab (Smart Transfer guide, opportunity sync, import and sync).

Validation counts. The audit already has a record count per object. After the transfer, count the same objects in HubSpot: companies, contacts, deals, tickets, and each custom object you meant to move. A gap needs a failed-row explanation. Salesforce stays on until every gap has an explanation. Also sample associations: deal to company, contact to deal, ticket to contact. And sample the fields that were never on the map: products, queue owners, create dates outside deals, and currency.

Switch off. Switch Salesforce off only on the Smart Transfer route, and only after those counts. If both systems are staying, you are on the integration, and switch-off is the wrong ending. The portal build that follows the data move is the HubSpot implementation guide.

Rebuilding automation and reports

HubSpot's switch guide splits the work that does not copy into four phases: records, integrations, automation, and reports. Automation is document, rethink, then rebuild in the workflow tool. Reports are an inventory, a shorter list, then out-of-the-box or custom. The records phase is the object map above. The integrations phase is a fresh architecture: keep the tools you still need, drop the ones Salesforce was holding together (switch guide).

The workflow rebuild itself, enrollment, branches, and the order we turn them on, is the HubSpot workflows playbook. Anything the workflow tool cannot reach, a system outside HubSpot or a transform the native actions do not cover, is the work we put in n8n. The system around both, once the CRM is no longer the whole design, sits with GTM engineering. The data model underneath is the CRM practice.

What it costs to land on HubSpot

Licence and onboarding are a separate page, and the figures move often enough that they should be read there rather than copied here. The HubSpot pricing guide is the current breakdown. What this migration adds on top of the licence is the subscription gate for the route you picked. Smart Transfer is listed for all products and plans, with Data Hub required for custom field mappings and Enterprise required before a custom object can exist. The integration, including the Salesforce import, requires Professional or Enterprise on one of the hubs named above. HubSpot's switch guide also states that onboarding is required for packages and is charged as a one-time fee. The fee itself belongs on the pricing guide (Smart Transfer guide, create custom objects, import and sync, switch guide).

FAQ

Can I migrate Salesforce to HubSpot for free?

Smart Transfer is listed for all products and plans. Custom field mappings need a Data Hub subscription, and custom objects need Enterprise. The Salesforce integration, which is how you import existing records while both systems run, requires Professional or Enterprise on Marketing Hub, Sales Hub, Service Hub, Data Hub, Content Hub, or Smart CRM. HubSpot also requires onboarding for packages and charges it as a one-time fee. The current licence and onboarding amounts are in the HubSpot pricing guide (Smart Transfer guide, import and sync, switch guide).

Does Smart Transfer move activity history?

Email messages, events, tasks, and notes are on the Salesforce object map and move with the data sync. Attachments are a one-time transfer and do not stay up to date. Calls are not on the Salesforce map. Campaign lists, based on campaign membership, are also one-time. So the history that moves is the set HubSpot names, not every row on the Salesforce activity timeline (supported apps).

Can I keep Salesforce and HubSpot running together during migration?

Yes, on the integration, which HubSpot built for ongoing sync between the two. Smart Transfer is the route when Salesforce will be switched off. Run one of them. HubSpot states that they use different unique identifiers and that using both creates duplicates in HubSpot and Salesforce. If Smart Transfer has already moved data, turn off all of its sync connections before you connect the integration (install guide).

What happens to Salesforce leads in HubSpot?

They become contacts. That is the Smart Transfer mapping, and it is also how the integration describes the sync: Salesforce leads and contacts become HubSpot contacts, matched on email. At import, only the email arrives until a follow-up sync fills the other fields, and contacts outside the inclusion segment stay blank apart from that email. The HubSpot Leads object is a separate record you create afterwards, and it has to be associated with a contact or a company. Lifecycle stage and lead status on the contact come first. See the lifecycle stage and lead status guide (supported apps, leads and contacts, import and sync, create leads).

Do Salesforce Flows migrate to HubSpot workflows?

Smart Transfer maps Flows and classic workflow rules to workflows, and you can include workflows and automations for Salesforce in the configure step. HubSpot's switch guide still says to document the automation and rebuild it in the workflow tool. Compare every transferred workflow with the Flow it came from. Process Builder and Apex are not on the map, so plan that logic as a rewrite. The rebuild order is the workflows playbook (supported apps, Smart Transfer guide, switch guide).

How do I move opportunity products?

Smart Transfer's Salesforce map and its one-time list do not include products, price books, or opportunity line items. The opportunity sync documents the deal fields, including amount and stage, and does not document line items. In HubSpot you add line items to the deal from the product library. Importing line items, or updating them through the API, does not update the deal amount, and the line item card shows up to 200 associated line items. Treat products as their own load, and check the amount on a sample of deals after it (supported apps, opportunity sync, line items).

If you want the route, the object map, and the count checks settled before Salesforce is switched off, we do that as a HubSpot migration.

Talk to us