RevOps

Short answer: A Salesforce to HubSpot migration has six phases: audit and back up Salesforce, choose the migration method (HubSpot Smart Transfer, the Salesforce integration import, or CSV and API), map objects and fields, clean data and prepare HubSpot, import in dependency order, then rebuild automation and reports before cutover. This checklist covers each step.

Salesforce to HubSpot migration checklist: methods, mapping and cutover, cover

I have already published a checklist for moving from Zoho CRM to HubSpot. Moving from Salesforce shares the same principles, but it has its own complications: a more customised data model, Apex and Flow automation that has no direct equivalent, and two official HubSpot routes that should not be mixed. This checklist focuses on what is specific to Salesforce. Where a step is the same as in a Zoho migration, such as general data cleaning, I keep it short and point you to the other article. Check HubSpot's current knowledge base before you start, because tool capabilities and plan requirements change.

Phase 1: Audit and back up Salesforce

Before anything moves, document what exists. Checklist: export a full backup using Salesforce's Data Export service or Data Loader and store it outside both systems. List every standard and custom object in use, with record counts. For each object, list fields actually populated; Salesforce orgs often carry hundreds of unused custom fields, and migration is the moment to drop them. Document record types, page layouts and picklist values, because they encode business rules. Inventory automation: Flows, Process Builder processes, workflow rules, Apex triggers, approval processes, validation rules and assignment rules. Note which ones still run and what they do in plain language. List integrations connected to Salesforce, such as marketing tools, billing, product data and support, and decide for each whether it reconnects to HubSpot or is retired. Export reports and dashboards that leadership uses, with screenshots, so you can rebuild them. Finally, identify Salesforce Files and attachments you need to keep; HubSpot community threads flag Files as a known gap without a simple native import, so plan for them separately.

Phase 2: Choose the migration method

HubSpot documents two official routes, and choosing between them is the first real decision. HubSpot Smart Transfer is built for one-time migrations. HubSpot's knowledge base lists Salesforce among supported apps and describes audit, transfer, clean-up and revert steps; the transfer is one-way into HubSpot, it is restricted to Super Admins, and transferring custom field mappings requires a Data Hub subscription. The HubSpot-Salesforce integration is built for ongoing two-way sync. Once connected, you can import Salesforce leads, contacts, accounts, opportunities, tasks, campaigns, cases, events and custom objects. HubSpot states the integration needs a Professional or Enterprise subscription of Marketing, Sales, Service, Data, Content Hub or Smart CRM, and a Salesforce edition with API access or Salesforce Professional; Group Edition is not supported. HubSpot's integration documentation says to use Smart Transfer, not the integration, for a one-time move, and warns that running both creates duplicates because they use different unique identifiers. So decide: a clean cutover uses Smart Transfer; a phased transition where both systems run for a period uses the integration. Very large or highly custom orgs may also need CSV imports or the API.

Phase 3: Map Salesforce objects to HubSpot

Write the mapping down as a table before any import. The standard mapping: Salesforce Leads and Contacts become HubSpot contacts. Decide how to mark former leads, for example with a lifecycle stage and lead status, since HubSpot has no separate unconverted lead record of the same kind. Accounts become companies. Opportunities become deals, with each Salesforce sales process mapped to a HubSpot deal pipeline and every opportunity stage mapped to a deal stage, including closed stages. Cases become tickets. Tasks, events, calls and emails become activities on the timeline. Campaigns need thought, because HubSpot campaigns work differently; often the useful history is the campaign membership, which can be preserved as a contact property or list. Custom objects map to HubSpot custom objects, which require an Enterprise subscription, or to properties if the object is simple. For every field, record the HubSpot property name, type and picklist values. Add a property such as Salesforce ID on every object so you can trace records and rebuild associations. Users must exist in HubSpot before import so owners map correctly.

Phase 4: Clean the data and prepare HubSpot

Clean in Salesforce before moving, not after. Merge duplicate accounts and contacts, standardise picklist values, fix email formats, close or delete stale open opportunities and archive records nobody will use. My Zoho to HubSpot checklist covers the general cleaning steps in more detail, and they apply equally here. Salesforce-specific items: resolve contacts without accounts and accounts without owners, because associations and ownership are the parts most likely to break. Check currency settings if you sell in more than one currency, and set up the same currencies in HubSpot first. Then prepare HubSpot. Create custom properties from the mapping table, with matching field types. Build deal pipelines and stages. Add users and teams with the right permissions. Create custom objects if needed. Set up the CRM data dictionary so every property has a definition and an owner. Run a test migration with a sample of a few hundred records across all objects, then check associations, owners, dates and picklists record by record. Fix the mapping and repeat until the sample is clean.

Phase 5: Import in dependency order

Order matters because associations can only be created to records that already exist. The order I use: users and owners first, then companies, then contacts associated to companies, then deals associated to companies and contacts, then tickets, then activities such as notes, tasks, calls and meetings associated to all of the above, then custom objects and their associations, then files and attachments using whatever method you planned in Phase 1. With Smart Transfer, HubSpot handles much of this sequencing; still validate the audit counts against your Phase 1 inventory. With the integration import, HubSpot notes that large imports may take several hours because it manages Salesforce API usage, and that for leads and contacts only the email address syncs at import, with remaining fields arriving through sync. Plan the timeline accordingly. After each object, reconcile counts between Salesforce and HubSpot and spot-check 20 to 30 records end to end, including associations and owner. Log every error and its fix. Do not move to the next object until the current one reconciles.

Phase 6: Rebuild automation and reports, then cut over

Salesforce automation does not migrate. Smart Transfer can carry some workflow data depending on the app, but treat Flows, Apex triggers and approval processes as things to redesign, not copy. Rebuild from the plain-language inventory in Phase 1, keeping only automation that still serves a purpose. Common equivalents: assignment rules become HubSpot lead routing or workflows with the rotate action; validation rules become required properties and conditional stage properties; approval processes need HubSpot's approval features where your plan includes them, or a workflow plus task pattern. Rebuild leadership reports and dashboards first, and compare the numbers with the Salesforce versions for the same period; differences usually reveal mapping errors. Reconnect integrations one at a time. For cutover, pick a date, freeze Salesforce to read-only for most users, run a final delta migration, switch integrations and forms, and train each team on their own daily workflow. Keep Salesforce available read-only for an agreed period. For the first 30 days, run a weekly data quality check and a short feedback session with sales.

Sources

HubSpot Knowledge Base, Transfer data from other apps using HubSpot Smart Transfer: https://knowledge.hubspot.com/integrations/transfer-data-from-other-apps-using-hubspot-smart-transfer HubSpot Knowledge Base, Supported apps for HubSpot Smart Transfer: https://knowledge.hubspot.com/integrations/supported-apps-for-hubspot-smart-transfer HubSpot Knowledge Base, Connect HubSpot and Salesforce: https://knowledge.hubspot.com/salesforce/install-the-hubspot-salesforce-integration HubSpot Knowledge Base, Import and sync Salesforce records: https://knowledge.hubspot.com/salesforce/import-salesforce-records HubSpot, Switching from Salesforce to HubSpot: https://www.hubspot.com/switch-from-salesforce HubSpot Community, Migrate Salesforce Files to HubSpot Attachments: https://community.hubspot.com/t5/Tips-Tricks-Best-Practices/Migrate-Salesforce-Files-to-HubSpot-Attachments/m-p/1024813

FAQ

Use Smart Transfer for a one-time migration with a clean cutover. Use the HubSpot-Salesforce integration if both systems need to run side by side and stay in sync for a period. HubSpot warns against running both, because they match records differently and create duplicates.

No. Treat automation as a rebuild. Document what each Flow, trigger, assignment rule and approval process does in plain language, keep only what still matters, and rebuild it with HubSpot workflows, routing, required properties and approvals where your plan supports them.

Users and owners, companies, contacts, deals, tickets, then activities, custom objects and files. Associations can only be created to records that already exist, so importing out of order is the most common cause of orphaned records.

The phases are similar, but Salesforce orgs are usually more customised, with record types, Apex and Flows, and HubSpot offers a native Salesforce integration as a second route alongside Smart Transfer. My Zoho CRM to HubSpot checklist covers the shared steps in more detail.

Read this article on your favourite platform

Ready to build the system?

If this describes your funnel, a 30-minute call will find where the constraint sits in your own numbers and what it would take to fix it.

It starts with a 30-minute call. Pick a time below.

Choose a time

Prefer email?