Migration guide · HubSpot to Salesforce

HubSpot to Salesforce Migration: the build-and-load guide

Updated October 2026By Joe LaGrutta, Founder, JayOhHubSpot Platinum Partner

The short answerA HubSpot to Salesforce migration takes 10 to 16 weeks for most mid-sized teams and costs roughly $30K–$55K in services. It runs longer than the reverse because the Salesforce org must be designed first: permissions, Lead vs Contact rules, sales processes, then a strictly ordered data load. Decide early whether HubSpot stays for marketing.
First decision: marketing Toggle
MarketingHubSpot Marketing Hub
CRMSalesforce Sales Cloud
MovesCRM records, pipelines, sales automation
AddsConnector design: field map, inclusion list, Lead vs Contact creation
TimelineBaseline
Most commonFastest path when marketing already works.
01 · Architecture

Should HubSpot stay for marketing when you move the CRM to Salesforce?

Decide this before anything else. It changes the scope, the timeline and who owns forms, scoring and attribution.

QuestionKeep HubSpot for marketingAll-in on Salesforce + Account Engagement
What movesCRM objects, pipelines, sales automation, reportsAll of that, plus every email, form, landing page, list and nurture
Added timelineConnector design and testing, usually 1–2 weeksMarketing asset rebuild, often 4–8 weeks more
Marketing team impactMinimal; tools stay the sameNew tool, retraining, scoring and attribution rebuilt
Integration riskSync conflicts if field ownership is unclearOne vendor, but a second admin-heavy platform
Choose whenMarketing runs well on HubSpot and the driver is sales complexityLeadership mandates one vendor or needs Salesforce-native campaign influence
01

Territories and sharing

Regional teams, overlays and partner visibility that need role hierarchy and sharing rules.

Trigger
02

Quoting, approvals and billing

CPQ, multi-step approvals, ERP and billing integrations that expect a Salesforce data model.

Most common
03

An acquirer or board standard

PE platforms and acquirers that standardize portfolio reporting on Salesforce. See post-acquisition CRM consolidation.

Trigger
02 · Timeline and cost

How long does a HubSpot to Salesforce migration take, and what does it cost?

Here the Salesforce build, not the data load, is the long pole. User count and quoting matter more than record count.

BandUsersRecordsSalesforce build scopeTimelineServices cost
SmallUnder 15Under 50KStandard objects, one sales process, HubSpot stays for marketing5–8 weeks$12K–$20K
Mid15–7550K–500KProducts and price books, 2–3 sales processes, 3–6 integrations, roles and sharing10–16 weeks$30K–$55K
Complex75+500K+Custom objects, CPQ, territories, marketing also moves, ERP integration16–26 weeks$55K–$150K+

JayOh guidance from 75+ CRM and marketing automation migrations. Services only; Salesforce licenses and HubSpot overlap are separate. Ranges use the same hourly economics as JayOh’s published pricing. Compare every migration path in the CRM migration cost and timeline guide.

03 · Mapping and load order

How do HubSpot objects map to Salesforce, and in what order do they load?

Salesforce enforces relationships HubSpot never did. Load out of order and records fail, or worse, load orphaned.

HubSpotSalesforceWhenDesign note
HubSpot record IDsExternal ID field on every objectAllStore the HubSpot ID as an External ID so every load is an upsert. Re-runs and delta loads then update instead of duplicating.
Users and ownersUsers, roles, profiles and permission setsLoad 1Owners must exist as Salesforce users before records load. Records owned by departed reps need a holding user or the org permission for inactive owners.
CompaniesAccountsLoad 2Load parent companies before children. Salesforce does not dedupe on domain, so add matching and duplicate rules after the load, not during it.
Contacts associated with a companyContactsLoad 3Every Salesforce Contact needs an Account. For contacts tied to several companies, pick the primary and log the rest as relationships.
Contacts with no company, early lifecycleLeadsLoad 3Write the rule in advance, for example: no company and lifecycle before SQL becomes a Lead. Everything else becomes a Contact.
Lifecycle stage and lead statusLead Status + a lifecycle field on Lead and ContactLoad 3Salesforce has no native lifecycle across Lead and Contact. Keep a custom lifecycle field so funnel reporting survives conversion.
Deal pipelinesSales processes + Opportunity record typesConfigOne pipeline usually becomes one sales process and record type. Build these before any Opportunity loads.
Deal stagesOpportunity stages with probability and forecast categoryConfigForecast category is a decision HubSpot never asked you to make. Agree it with finance before the build.
DealsOpportunitiesLoad 4Every Opportunity needs an Account. Deals with no company, or several, need a primary-account rule.
Deal–contact associations and labelsOpportunity Contact RolesLoad 5Labels such as Champion or Decision Maker become role values. Pick one primary contact role per Opportunity.
ProductsProduct2 + PricebookEntryLoad 5Products need an entry in the standard price book before any custom price book, and one entry per currency.
Line itemsOpportunityLineItemLoad 6A line item fails if its product has no PricebookEntry in the Opportunity’s price book and currency.
TicketsCasesLoad 6Ticket pipelines become case record types and support processes. Help desk channels become email-to-case or a service tool.
Custom objectsCustom objects (lookup or master-detail)Load 6Master-detail cascades deletes and sharing and enables roll-up summaries. Choose per relationship, deliberately.
Engagements: emails, calls, meetings, notes, tasksTasks, Events, EmailMessage, NotesLoad 7The heaviest load by volume, and it counts against Salesforce data storage. Decide years of history and check storage before loading.
Dropdown propertiesPicklists / global value setsConfigRestricted picklists reject unknown values. Load internal values as API names and map retired values first.
Calculated propertiesFormula fieldsConfigMost translate directly. Cross-object math may need Flow.
Rollup propertiesRoll-up summary fields (master-detail) or FlowConfigNative roll-ups only work on master-detail. Lookup roll-ups need Flow or a tool.
WorkflowsRecord-triggered and scheduled FlowsAfter loadRebuild by outcome. Keep every Flow inactive, or bypassed, during the data load.
SequencesSalesforce cadences, or keep HubSpot sequencesDecisionIf HubSpot stays for marketing, reps can keep sequences through the connector. Decide before training.
ListsList views, reports and campaignsAfter loadOperational lists become list views; marketing lists stay in the marketing tool.
FormsHubSpot forms via the connector, or MCAE forms / Web-to-LeadDecisionFollows the architecture choice above. Do not run two form systems creating Leads.
QuotesSalesforce Quotes or a CPQ / Revenue Cloud buildDecisionSimple quotes are native. Bundles, approvals and discount schedules are a CPQ project of their own.
TeamsRole hierarchy, public groups, sharing rulesConfigSet org-wide defaults first, then open access with roles and sharing. Test as three real users.
Reports and dashboardsReports, custom report types, dashboardsAfter loadRebuild the reports leadership uses and match them to HubSpot numbers for the same period.

“Load 1–7” is the dependency order for data loads. “Config” is built in a sandbox before any load. “Decision” follows the architecture choice. Picklist values need matching in both systems; the picklist alignment tool helps.

04 · Checklist

The HubSpot to Salesforce migration checklist: 27 stepsBuild first, load second. The order matters more here than on any other migration path.

Phase 1

Org foundations

  1. 01
    Pick the architectureHubSpot stays for marketing, or everything moves to Salesforce with Account Engagement.
  2. 02
    Choose Salesforce editions and license countsEdition limits drive storage, sandboxes, API calls and automation options.
  3. 03
    Set up a sandbox and a deployment pathBuild in sandbox, deploy with change sets or a pipeline. Never build in production.
  4. 04
    Set org-wide defaults, roles and permission setsLeast access by default, opened deliberately.
  5. 05
    Create users, including a holding user for departed ownersOwners must exist before records load.
Phase 2

Data model

  1. 06
    Write the HubSpot-to-Salesforce field mapProperty, field, type, API name, picklist mapping, transform.
  2. 07
    Write the Lead vs Contact ruleWhich HubSpot contacts become Leads, which become Contacts.
  3. 08
    Design sales processes, stages and forecast categoriesSigned off by sales leadership and finance.
  4. 09
    Add an External ID for every HubSpot objectSo every load is an upsert.
  5. 10
    Build validation rules, with a bypass for data loadsA custom permission lets the migration user skip them.
Phase 3

Prepare the data

  1. 11
    Export everything from HubSpot, including associationsRecords, association tables, engagements, files.
  2. 12
    Pick a primary company for multi-associated recordsContacts and deals each need one Account.
  3. 13
    Clean domains, picklists and ownersMap retired picklist values; map departed owners.
  4. 14
    Decide engagement history depth and check storageActivity history counts against data storage.
Phase 4

Load and reconcile

  1. 15
    Enable audit-field setting to preserve created datesOtherwise every record looks created on cutover day.
  2. 16
    Bypass automation, validation and duplicate rules for the loadThen switch them back on.
  3. 17
    Load in orderUsers, Accounts, Contacts and Leads, Opportunities, Contact Roles, products and price books, line items, Cases, custom objects, activities.
  4. 18
    Reconcile counts, pipeline and closed-wonBy object, by owner, by quarter, to the dollar.
  5. 19
    Run a delta load plan rehearsalProve you can re-run with upserts in the cutover window.
Phase 5

Automation and integrations

  1. 20
    Rebuild workflows as FlowsBy outcome, tested against loaded data.
  2. 21
    Configure the HubSpot connector, if HubSpot staysField mappings, sync direction, inclusion list, Lead vs Contact creation.
  3. 22
    Repoint billing, support and product integrationsSwap HubSpot IDs for Salesforce IDs via the External ID crosswalk.
  4. 23
    Rebuild leadership reports and dashboardsParity check against HubSpot for the same period.
Phase 6

Cutover and adoption

  1. 24
    Freeze HubSpot CRM edits and run the delta loadOnly records changed since the rehearsal.
  2. 25
    Train by role in the reps’ own viewsSalesforce is less forgiving than HubSpot. Training is not optional.
  3. 26
    Track adoption weekly for 30 daysLogins, activities logged, opportunities updated, stage hygiene.
  4. 27
    Retire HubSpot CRM objects or downgrade seatsOnly after parity sign-off, and only what the architecture no longer needs.
05 · What breaks

What breaks when you move from HubSpot to Salesforce?HubSpot is permissive about data. Salesforce is not. These are the eight collisions.

Contacts with no companyHubSpot is full of contacts without a company. Salesforce Contacts need an Account, so the load fails or someone invents placeholder accounts.Fix: a written Lead vs Contact rule; no-company records become Leads.
Many-to-many associationsA HubSpot deal can sit on three companies. A Salesforce Opportunity has one Account.Fix: primary-account rule per record; secondary relationships as contact roles or a related object.
Validation and duplicate rules reject the loadRules built for reps block historical records that were never complete.Fix: a bypass custom permission for the migration user; switch rules on after reconciliation.
Every record looks created on cutover dayWithout the audit-field setting, created dates reset and every age, cohort and velocity report breaks.Fix: enable setting audit fields on insert before the first load.
Departed reps own half the historyRecords owned by people who left cannot be assigned to users who do not exist.Fix: a holding user, or the org permission for inactive owners, decided in design.
Activity history blows through storageYears of emails, calls and notes consume Salesforce data storage fast.Fix: choose history depth, archive the rest, and check storage before loading.
Restricted picklists and API namesHubSpot internal values do not match Salesforce API names, so rows fail or land in the wrong value.Fix: map every value, including retired ones, before export.
Two systems create LeadsIf HubSpot stays, its connector and Salesforce web-to-lead or assignment rules both create and route Leads.Fix: one system creates, one routes. Set the connector’s Lead vs Contact creation rules on purpose.
06 · Interactive

Estimate your HubSpot to Salesforce migration scope

Seven inputs. You get a band, a timeline, a services range and where the hours go, by workstream.

Records in HubSpotContacts + companies + deals
Salesforce users at go-live
HubSpot custom objects
Workflows and sequences to rebuild
Integrations to repointBilling, support, product data, enrichment, ERP
Marketing after the move
Quoting
Estimated scope
–services, JayOh guidance
–band
–timeline
–hours
Where the hours go
How this would run

–

Illustrative estimate from JayOh scoping weights, not a quote. Excludes Salesforce and HubSpot licenses. Your fixed scope comes from a read-only audit.

07 · FAQ

HubSpot to Salesforce migration FAQ

How long does a HubSpot to Salesforce migration take?
Most take 10 to 16 weeks. Small teams on standard objects can go live in 5 to 8 weeks. Large user counts, custom objects, CPQ or a move off HubSpot marketing push it to 16 to 26 weeks. HubSpot to Salesforce takes longer than the reverse because the Salesforce org has to be designed and built, not just loaded.
How much does a HubSpot to Salesforce migration cost?
JayOh guidance for services: about $12K–$20K for a small org, $30K–$55K for a mid-sized org, and $55K–$150K+ for complex builds. Salesforce licenses are separate. Use the estimator on this page or the CRM migration cost guide.
Should we keep HubSpot for marketing after moving to Salesforce?
Often, yes. If marketing runs well on HubSpot, keeping it and syncing to Salesforce through the native connector is faster and cheaper than rebuilding every asset in Account Engagement. Move marketing too only if you need one vendor, Salesforce-native campaign influence or tighter Salesforce governance.
What happens to HubSpot contacts without a company?
Salesforce Contacts need an Account, so contacts with no company usually load as Leads. Write the Lead vs Contact rule before you export, based on company association and lifecycle stage.
Can we keep original created dates and activity history?
Yes. Salesforce can set audit fields such as Created Date on insert once the org setting is enabled, and engagements load as Tasks, Events and email records with their original timestamps. Check data storage first; activity history is usually the largest load.
Why move from HubSpot to Salesforce at all?
The common triggers are complex territories and sharing, CPQ and approvals, multi-entity or multi-currency operations, deep ERP integration, or an acquirer or board that standardizes on Salesforce. If none of those apply, re-check the decision on our HubSpot vs. Salesforce page.
Do we need a Salesforce admin after the migration?
Yes, in some form. Salesforce needs ongoing administration for users, permissions, Flows and releases. Teams without a full-time admin typically use a fractional or retained partner for that work.

Going the other direction? Read the Salesforce to HubSpot migration guide. Keeping both platforms? See HubSpot–Salesforce integration.

Next step

Design the Salesforce org before you load a single record.We scope the org build, the Lead vs Contact rules, the load order and the connector, and return a fixed plan with a timeline.

Book a migration scoping callSalesforce and HubSpot builders on one pod.
75+CRM and marketing automation migrations delivered
10+HubSpot and Pardot migrations
100+RevOps engagements since 2016
PlatinumHubSpot Solutions Partner