Salesforce to HubSpot migration: what maps, what breaks, what stays behind

Which HubSpot route fits, how opportunities, custom objects, files and owners come across, and what you rebuild instead.

Updated · 16 minutesBy Matthew Labrooy, Managing Director

Free download: the CRM move checklist, 53 checks (PDF)

A mapping sheet from Salesforce objects to HubSpot objects. Opportunity products and a custom object find no match and lead to what to do: bring products in as their own step, rebuild custom objects.
In short

HubSpot has two tools for a Salesforce to HubSpot migration. Smart Transfer moves your data once and is free on every plan. The Salesforce app keeps both systems in sync, so teams can switch one at a time, and needs a Professional subscription. Never run the two tools at once: they match records on different IDs and create duplicates in both systems.

Leads and contacts both become HubSpot contacts, accounts become companies, opportunities become deals and cases become tickets. Custom objects, products on opportunities, formula and lookup fields, Flows and reports don’t come across. Plan a new home for each of them before any data moves.

Routes
Smart Transfer, one-time and free on every plan, or the Salesforce app, a two-way sync from Professional
Maps
Leads and contacts to contacts, accounts to companies, opportunities to deals, cases to tickets, record types to pipelines
Custom objects
Not in Smart Transfer. The Salesforce app syncs them on Enterprise, once each object exists in HubSpot
Files
Smart Transfer copies attachments once, after the records. The Salesforce app moves no files
Owners
Matched by name and email. Create every HubSpot user before the first sync
Never moves
Formula and lookup fields, products on opportunities, Flows and Apex, validation rules, reports

Smart Transfer or the Salesforce app: which route fits?

Pick the route by how long Salesforce stays in use. If everyone switches on one date, use Smart Transfer. If sales keeps working in Salesforce for weeks or months while marketing or service move first, use the Salesforce app as a bridge.

PointSmart TransferSalesforce app
What it’s forA one-time move into HubSpotA two-way sync between two systems in use
HubSpot editionEvery plan. Custom field mappings need Data HubProfessional or Enterprise of any hub
DirectionSalesforce to HubSpotBoth ways, set per field
Custom objectsNoOn Enterprise
FilesAttachments once, after the recordsNone
Products on opportunitiesNoNot as line items
When it endsIt keeps syncing until you stop itWhen you uninstall it. Records and values stay in HubSpot
Smart Transfer and the Salesforce app compared. As of October 2026.

How Salesforce objects map to HubSpot

Most Salesforce objects have a HubSpot counterpart. Each row below still needs a decision from you.

SalesforceHubSpotWhat to decide
Leads and contactsContactsHubSpot keeps people in one object. Mark former leads with the lifecycle stage and lead status, or the funnel loses the difference
Person accountsContactsWhether a private customer also needs a company record
AccountsCompaniesWhether account hierarchies become parent and child companies
OpportunitiesDealsWhich record type goes to which pipeline. Smart Transfer puts them all in one
Opportunity contact rolesLinks between deal and contact, with labelsWhether to transfer the roles: they arrive as association labels
Products, price books, opportunity productsProducts and line itemsHow to bring them in: neither route moves them
CasesTicketsWhich case status lands in which ticket stage
Tasks, events, emails, notesTasks, meetings, email activities, notesHow far back history goes, and that an activity with several people keeps every link
Campaigns and campaign membersListsWhere member status, such as responded, lives if you report on it
Custom objectsCustom objects, properties or association labelsWhat each one becomes, see below
Users and queuesUsers and teamsWho owns records that sit in a queue
How Salesforce objects map to HubSpot objects. As of October 2026.

The one-time move with Smart Transfer, step by step

Smart Transfer sits under Data Management > Data Integration > Transfer data, and only a Super Admin sees it. Work through it in this order.

  1. Step 01

    Create users and currencies first

    Every Salesforce user who owns records needs a HubSpot user with the same email. Smart Transfer also offers Salesforce’s own system users, such as Integration User or Chatter Expert: untick them. If you sell in several currencies, turn on multi-currency in HubSpot before you configure the transfer, or the configuration fails.
    Smart Transfer, Configure user transfer: Salesforce system users such as Platform Integration User, Chatter Expert and Integration User unticked, Erika Mustermann ticked
    Smart Transfer lists every Salesforce user, Salesforce’s own system users included. Transfer only the people.
  2. Step 02

    Run the audit

    The audit lists each Salesforce object with its HubSpot counterpart and record count, plus pipelines, stages and fields, and marks the fields that can’t transfer. Custom objects and opportunity products don’t appear in it at all. Export it: it’s the start of your mapping document.
    Smart Transfer, Audit Results: Accounts to Companies, Cases to Tickets, Contacts to Contacts, Leads to Contacts, Opportunities to Deals, Opportunity Stages to one deal pipeline, Users to Users, with field and record counts
    The audit of a small org. The custom object Machine and the opportunity products are missing: Smart Transfer doesn’t move them.
  3. Step 03

    Configure with automatic sync off

    Pick the objects and the fields to bring across. “Automatically start sync” is set per object, so turn it off on each object’s page for the first run. Then you can check the properties and pipelines Smart Transfer creates before any record arrives. Properties marked “Needs review” afterwards are usually duplicate labels that Smart Transfer renamed, such as “Forecast Category salesforce”.
    Smart Transfer, Set up transfer: Company property, Contact property, Deal pipelines and stages, Deal property and Email configuration ticked
    First you choose which kinds of data come across.
    Smart Transfer, Configure company property transfer: Automatically start sync switched off, Salesforce account fields ticked
    The switch for the automatic sync sits on each object’s own page.
  4. Step 04

    Check each sync, then start it

    Each object gets its own sync, with its own record matching, conflict rule and field mapping. Companies match on name or domain by default, and Salesforce wins a conflict. Start the syncs, and check a sample: companies with many contacts, open opportunities, records whose owner has left.
    Smart Transfer, Company sync: sync direction Salesforce Accounts to HubSpot Companies, record matching on company name or domain name, Salesforce data wins a conflict
    Each sync has its own record matching and conflict rule.
    Smart Transfer, Company sync, Mapped fields: Account Name to Company name, Number of Employees, Phone, Website to Website URL, Billing Street to Street Address
    The field mapping for accounts. Each mapping can be switched off or changed before the sync starts.
  5. Step 05

    Transfer attachments, contact roles and lists

    Attachments, contact roles and campaign lists come in a one-time transfer after the sync, and only for records that already exist in HubSpot. Tick association labels too: opportunity contact roles arrive as labels such as Decision Maker. Nothing in this step updates afterwards.
    Smart Transfer, Transfer additional data: Association label, Attachment, Deal contact association, Segment (Static) and Note ticked
    The one-time transfer after the sync: attachments, contact roles as labels, campaign members as static segments.
  6. Step 06

    Revert if the mapping was wrong

    A revert removes what the transfer created, stage by stage, records included. You confirm it by typing “revert”. Records that came in any other way stay as they are.
    Smart Transfer, Revert transfer: stages Company property, Contact property, Deal pipelines and stages, Deal property, each with a note that records may be removed
    Revert by stage. Reverting properties also removes the records that use them.
  7. Step 07

    Stop the sync on the day you switch

    Smart Transfer keeps syncing in the background after the first run. On cut-over day, turn off each sync from its More menu, then clean up the empty properties and the helper workflows it created.
    Smart Transfer, Sync records: company, contact, note, meeting, task, email, ticket and deal syncs, the company sync's More menu open with Turn off sync and Delete sync
    Every object has its own sync. Turn each one off on cut-over day.

For the test round, the freeze and the cut-over itself, follow our CRM migration guide. Its steps hold for Salesforce too.

Run both systems, then switch: the sync-first route

With the Salesforce app, HubSpot and Salesforce run side by side until the last team moves. The order of the steps decides whether your links between records survive.

  1. Step 01

    Check the Salesforce side

    You need a Salesforce edition with API access or Professional, not Group Edition, and a system administrator with API Enabled and Modify All on the objects you sync. If Salesforce enforces login IP restrictions on every request, the connection fails.
    Salesforce, Company Information: API Requests, Last 24 Hours 2,343 (15,000 max), Organization Edition Developer Edition
    Salesforce Setup, Company Information: your edition and how much of the daily API limit is already in use.
  2. Step 02

    Install the app and sign in to Salesforce

    Install the Salesforce app from the HubSpot Marketplace and sign in with the Salesforce user the sync should run as. HubSpot shares that user’s rights in Salesforce, so use an integration user rather than a person who might leave.
    HubSpot, Install Salesforce: what to expect, two-way sync of leads and contacts, companies, deals, tickets and custom objects, a checkbox for a Salesforce sandbox
    The install dialog. Tick the sandbox box only when you connect a Salesforce sandbox.
  3. Step 03

    Decide what new records do

    By default, a new HubSpot contact creates a Salesforce lead, but a new Salesforce lead or contact does nothing in HubSpot. Only records with a valid email address sync to HubSpot. If HubSpot contacts become leads, turn off automatic company creation in HubSpot, or converted leads create duplicate companies.
    HubSpot, Salesforce Contact Sync Rules: Salesforce contact or lead created or updated, Do nothing in HubSpot; HubSpot contact created or updated, Create or update the lead in Salesforce
    The default rules for contacts. Change them before the first import.
  4. Step 04

    Check what deletions do

    A contact deleted in either system stays in the other by default. A Salesforce opportunity that is deleted deletes its HubSpot deal, and that rule can’t be changed.
    HubSpot, Salesforce Contact Sync Rules, Deleting contacts: a Salesforce contact or lead deleted does nothing in HubSpot; a HubSpot contact deleted does nothing in Salesforce
    Contact deletions stay on their own side by default.
    HubSpot, Salesforce Deal Sync Rules: opportunity created or updated creates or updates the deal; opportunity deleted deletes the deal; deal deleted does nothing in Salesforce
    Deal rules: a deleted opportunity takes its deal with it.
  5. Step 05

    Give every field a rule

    For each mapped field, decide which system wins: Salesforce unless blank, always Salesforce, two-way, or don’t sync. During the move, Salesforce usually wins for sales fields and HubSpot for marketing fields. A new mapping doesn’t change existing values until the records sync again.
    HubSpot, Salesforce Contact Field Mappings: Annual revenue, City, Company name with Prefer Salesforce, Contact owner to Owner ID with Two-way
    Each mapping has a sync rule. The owner always syncs two-way.
    HubSpot, Edit field mapping for Job Title and Title: Prefer Salesforce unless blank, Always use Salesforce, Two-way, Don't sync
    The four sync rules for one field.
  6. Step 06

    Import companies first, then deals

    Nothing syncs right after installing. Import the accounts first, then the leads and contacts, then the opportunities, under Import, Objects from an app. In the other order, deals arrive without their company. Watch the API calls: the app shares your Salesforce daily limit with every other connected tool, and a contact can take up to four calls.
    HubSpot import from Salesforce: Leads, Contacts, Leads & Contacts, Accounts, Opportunities, Tasks, A campaign, Cases
    The Salesforce import. Tasks and cases need their sync turned on first.
    HubSpot, Salesforce Sync Health: API call use in the past 24 hours, 335 of 15,000
    Sync Health shows the Salesforce API calls the app used in the last 24 hours.
  7. Step 07

    Move team by team

    Marketing usually moves first, sales last. An inclusion list limits which HubSpot contacts sync to Salesforce, so only what a team still needs there goes back.
    HubSpot, Salesforce Contact Sync Rules, Limiting what syncs: only records with a valid email sync to HubSpot; a HubSpot contact must be on the inclusion list to sync to Salesforce
    Without an inclusion list, every HubSpot contact syncs to Salesforce.
  8. Step 08

    Uninstall on the last day

    When sales works in HubSpot, uninstall the app under Actions. HubSpot keeps every record, the Salesforce properties and their values. Then remove the HubSpot package in Salesforce.
    HubSpot, Uninstall Salesforce: settings and field mappings are removed; contacts, companies, deals, tasks, Salesforce properties and their values stay
    What uninstalling removes and what stays.

Opportunities to deals: record types, stages and products

Opportunities hold most of what sales needs: stages, amounts, close dates, contact roles and products. Settle each of the points below before the first sync.

  • Record types don’t survive Smart Transfer. It puts every opportunity into one pipeline, “Salesforce pipeline”, with every stage value Salesforce knows, used or not. The record type itself is an unsupported field. If you sell in several processes, copy the record type name into a plain text field in Salesforce before the transfer, then split the deals into pipelines in HubSpot.
  • The Salesforce app keeps record types apart. It creates one pipeline per record type, named “Salesforce -” plus the record type, such as “Salesforce - Renewal”. If two record types share the same stages, merge their deals into one pipeline after the move and keep the record type in a dropdown property. HubSpot allows 15 custom pipelines on Starter, 100 on Professional and 350 on Enterprise, shared by all objects.
  • Stages are mapped by meaning. List every Salesforce stage and decide where it lands. Stages nobody used last year go. Set each HubSpot stage’s win probability from your own Salesforce numbers, as our forecast guide shows.
  • Contact roles become links, labelled or not. Smart Transfer’s one-time step turns each opportunity contact role into a link with the role as its label, such as Decision Maker. The Salesforce app links the contacts to the deal without the role.
  • Products don’t come along. Neither route turns opportunity products into line items. A deal arrives with its amount and a “has line item” flag, but no products. Import the product library, then the line items per deal from an export, or use a migration app.
  • Currencies don’t convert. The Salesforce app syncs the number, not the exchange rate. Turn on multi-currency in HubSpot and keep each deal in its own currency.
  • Create dates start again, except on deals. Smart Transfer adds a workflow that sets each deal’s create date to the Salesforce created date. Contacts and companies get the day of the transfer, so carry their old date in a property of its own.
Smart Transfer, Opportunity Stages Details: ten stages, all in one pipeline named Salesforce pipeline
Two record types with their own sales processes in Salesforce, one pipeline in HubSpot. Stages nobody uses come along too.
HubSpot deals board, pipeline Salesforce - New business: Example GmbH Pump P7 order in Proposal/Price Quote, Example AG Valve upgrade in Negotiation/Review, owner Erika Mustermann (Salesforce)
With the Salesforce app, each record type gets its own pipeline.
Smart Transfer, Opportunities Object Properties: Owner ID, Price Book ID and Record Type ID marked Unsupported; Margin, Region and Stage marked Sync
Record type, price book and owner ID are unsupported. A formula field such as Margin arrives as a plain number, without its formula.
HubSpot deal, associated contacts: Lena Mustermann labelled Technical Buyer, Max Mustermann labelled Decision Maker
Contact roles from the opportunity, as association labels on the deal.

Salesforce custom objects: rebuild, don’t copy

Salesforce orgs collect custom objects over the years, often for one report or one project. Before you move one, decide what it becomes in HubSpot.

  • A property when every company or deal has just one of it, such as a contract end date.
  • An association label when the object only describes a relationship, such as a partner on a deal.
  • A custom object when a customer has several, each with its own data and status, such as machines or subscriptions. It needs HubSpot Enterprise.

Smart Transfer doesn’t move custom objects. On Enterprise, the Salesforce app syncs them: create each object in HubSpot first, with at least one required property. Lookup fields can’t be mapped as fields. The app offers them as associations instead, and only to objects that already sync. When a custom object is worth it is in our custom objects guide.

HubSpot, Sync object: Salesforce object Machines synced two-way with HubSpot object Machines
A Salesforce custom object needs a HubSpot custom object to sync into.
HubSpot, Sync object, Associations: Sync Account association; only objects already syncing to HubSpot appear
The Salesforce lookup to the account becomes an association with companies.

Salesforce files and attachments: how they move

Files are what people expect to move and what most often doesn’t. Of HubSpot’s two routes, only Smart Transfer moves files, and only once.

RouteFilesWhat to know
Smart TransferAttachments and files, onceRuns after the sync, only for records already in HubSpot. Each file lands in a note on its record, with its original date. Files added later in Salesforce don’t follow
Salesforce appNoneThe app syncs field values only
Salesforce data exportAttachments and Salesforce Files, if you tick bothWeekly on Enterprise, Performance and Unlimited, every 29 days on Professional. The download links last 48 hours
A migration app or the APIAll files, linked to their recordsEach file is uploaded, then attached to a note on its record with the original date
Ways to move Salesforce files to HubSpot. As of October 2026.
Smart Transfer, Configure attachment transfer: Accounts, Cases, Contacts, Leads, Opportunities and Person Accounts ticked
Attachments by object. Custom objects aren’t on the list.
HubSpot deal timeline: a note dated 4 Oct 2026 with the attachment Offer Example GmbH as a PDF, and the entry This deal was created from Salesforce
A Salesforce file on the deal: a note with the attachment, dated when the file was added in Salesforce.

Before you move files, ask who opens them. Signed contracts and offers usually matter. Signature images and logos saved from emails usually don’t. Upload contracts as private files.

Owners and users: match them before the first sync

Every Salesforce record has an owner. HubSpot recognises that owner only when a HubSpot user has the same name and email as an active Salesforce user.

  • Create users first. Add every active owner as a HubSpot user with the same email before the first transfer or sync.
  • Owners who have left. The Salesforce app also brings owners without a HubSpot user, queues included. They show with “(Salesforce)” after their name. When you uninstall the app, every record they own has to be reassigned. Do it before, and keep the old owner’s name in a text property.
  • Queues. HubSpot has no queues. Give queue records a team or a default owner, and route new ones with a workflow.
  • User fields beyond the owner. Fields such as account manager or customer success manager hold Salesforce user IDs, and HubSpot can’t map them to a user property. Map them to a dropdown property, type each user’s name as the label of their 18-digit ID, and add new users by hand.
  • Records without an owner. Salesforce requires one. A HubSpot record without an owner that creates a Salesforce record gets the integration user as its owner.
HubSpot deal synced by the Salesforce app: pipeline Salesforce - New business, deal owner Erika Mustermann (Salesforce), contacts Max and Lena Mustermann without role labels
An owner with no HubSpot user shows as “(Salesforce)”. The app links contacts without their opportunity role.

What doesn’t move from Salesforce to HubSpot

These Salesforce features never come across to HubSpot, whichever route you use. Plan where each one goes. The list for any CRM, such as field history and create dates, is in our CRM migration guide.

WhatWhat happensWhat to do
Formula and roll-up summary fieldsThe formula doesn’t come across. At best the current value arrives as a plain number, and it no longer updatesRebuild the ones you use as calculation or rollup properties
Lookup fieldsArrive as 18-digit record IDs, not namesAn association, or a dropdown with the names as labels
Record typesUnsupported in Smart Transfer: every opportunity lands in one pipelineCopy the record type name into a text field before the transfer
Encrypted fieldsNot transferredDecide whether the data belongs in the CRM at all
Flows, Process Builder, Apex triggersNot transferredRebuild what still matters as HubSpot workflows
Validation rulesNot transferredRequired fields and property rules in HubSpot
Reports and dashboardsNot transferredRebuild only the ones leaders open, as in our sales dashboards guide
Sharing rules, roles, territoriesNot transferredTeams and permissions in HubSpot
Chatter postsNot transferredKeep them in the archive export
What doesn’t move from Salesforce to HubSpot. As of October 2026.

Data protection and timing in Germany, Austria and Switzerland

A move from Salesforce to HubSpot in Germany, Austria or Switzerland adds data protection duties for the parallel run and a contract date to plan around.

  • Two processors during the parallel run. While both systems sync, Salesforce and HubSpot process the same personal data. Both need a data processing agreement, and both belong in your record of processing activities.
  • Deletions aren’t passed on. Deleting a contact in HubSpot doesn’t delete the Salesforce lead or contact. During the parallel run, carry out every deletion request in both systems.
  • Data centres. Check where each system holds the data. HubSpot has an EU data centre, and Salesforce runs orgs in EU regions.
  • German picklist values. Many orgs in German show German labels but store English API names. Map by the API name, and give the HubSpot dropdowns the labels your team reads.
  • Start well before the end date. Salesforce contracts run for a fixed term. Start at least four months before it ends, so the final export, the cut-over and a few weeks of read access all fit.

How we run a move from Salesforce to HubSpot

A Salesforce move goes wrong in the decisions, not in the transfer. So most of the time goes in before the first record moves.

  1. Step 01

    Audit

    Objects, fields with how often they’re filled, record types, automation, reports, owners and connected tools in your Salesforce org.
  2. Step 02

    Decide

    The route, what each object becomes in HubSpot, what stays in the archive, and which system owns which field during a parallel run.
  3. Step 03

    Test

    A transfer or sync into a test account first, checked by the people who use the data, until nothing surprises anyone.
  4. Step 04

    Switch

    Team by team or on one date, with Salesforce read-only at the end and a full export kept.

Frequently asked questions

How do I migrate from Salesforce to HubSpot?

Pick the route first. For a switch on one date, use HubSpot Smart Transfer: create the users, run the audit, configure with automatic sync off, check each sync, then turn the syncs off on cut-over day. For a switch over months, connect both systems with HubSpot’s Salesforce app and uninstall it when the last team has moved.

Can I migrate from Salesforce to HubSpot for free?

Yes. HubSpot Smart Transfer is free on every plan, the free tools included. It needs Data Hub only to transfer custom field mappings. Custom objects and products on opportunities need an import, a migration app or the API.

Does HubSpot have a Salesforce migration tool?

Two. HubSpot Smart Transfer moves Salesforce data into HubSpot once and is free on every plan. HubSpot’s Salesforce app syncs both systems both ways and needs a Professional or Enterprise subscription. Never use both at the same time: they match records on different IDs and create duplicates in both systems.

Can Salesforce integrate with HubSpot during the migration?

Yes, with HubSpot’s Salesforce app, a two-way sync that needs a Professional or Enterprise subscription. Turn on companies before deals, give every mapped field a rule, and uninstall the app when the last team has moved. Records and their values stay in HubSpot.

What doesn’t migrate from Salesforce to HubSpot?

Formula and roll-up summary fields, lookup fields as names, encrypted fields, Flows, Process Builder and Apex triggers, validation rules, reports and dashboards, sharing rules and Chatter posts. Smart Transfer also drops record types and products on opportunities. Rebuild what you still use in HubSpot.

Do Salesforce custom objects migrate to HubSpot?

Not with Smart Transfer. On HubSpot Enterprise, the Salesforce app syncs them, once you’ve created each object in HubSpot. Many are better rebuilt as properties or association labels.

How do I move Salesforce attachments to HubSpot?

Smart Transfer copies attachments once, after the records are in HubSpot. The Salesforce app moves no files. For the rest, export the data from Salesforce with files included, then attach each file to its record with a migration app or the API.

What happens to Salesforce leads in HubSpot?

They become contacts, like Salesforce contacts. Mark former leads with the lifecycle stage and lead status, so your funnel reports still tell them apart.

Why do my Salesforce opportunities have no products in HubSpot?

Neither Smart Transfer nor the Salesforce app turns opportunity products into line items. Import the products, then the line items per deal, or use a migration app.

What happens to Salesforce record types in HubSpot?

Smart Transfer doesn’t support record types and puts every opportunity into one pipeline. HubSpot’s Salesforce app creates one pipeline per record type, such as “Salesforce - Renewal”. Before a Smart Transfer, copy the record type name into a plain text field, then split the deals into pipelines in HubSpot.

Do Salesforce record owners carry over to HubSpot?

Only when a HubSpot user has the same name and email as an active Salesforce user. Create every HubSpot user before the first transfer or sync. With the Salesforce app, owners without a HubSpot user show with “(Salesforce)” after their name and must be reassigned before you uninstall.

When should a Salesforce to HubSpot migration start?

At least four months before the Salesforce contract ends. Salesforce contracts run for a fixed term, and the final export, the cut-over and a few weeks of read access all have to fit before that date.

Leave Salesforce without losing what your team relies on

We look at your process and systems, what a move would involve, and tell you whether HubSpot fits.