Switch from Salesforce to HubSpot CRM: Migration Steps and Gotchas

HubSpot Smart Transfer moves most standard Salesforce data for free, but not custom objects or automations. Here are the steps, the object map and the gotchas.

By Galactic News Editorial · Published 2026-11-10T19:35:18+00:00 · Updated 2026-11-10T19:35:18+00:00

Switch from Salesforce to HubSpot CRM: migration steps, object mapping and gotchas

Switch from Salesforce to HubSpot CRM: Migration Steps and Gotchas

Moving from Salesforce to HubSpot CRM is a data project before it is a software change. The new platform offers a free built-in tool for the move. It is called Smart Transfer. It moves most standard data out of the old system for free. It does not move custom objects, call records, or your automations. This guide walks through the documented steps, maps what moves and what does not, and flags the gotchas that cause duplicates and lost history.

Pick the right tool: Smart Transfer or the integration

HubSpot offers two native paths. Smart Transfer is for a one-time migration. It is built for teams leaving Salesforce. The integration is for ongoing, two-way syncing between both systems. Use Smart Transfer if you are leaving for good. Use the integration if you will keep running Salesforce alongside HubSpot. Never run both at once. Smart Transfer and the integration use different unique identifiers to match records. Using both at the same time will create duplicate records in each system. If you already used Smart Transfer, turn off all Smart Transfer sync connections before turning on the integration. Smart Transfer is available on every plan. Custom field mappings need a Data Hub subscription.

What Smart Transfer moves from Salesforce to HubSpot

Source objectBecomes in HubSpotNotes
Leads and contactsContactsLeads and contacts stay separate in the old system; the new one merges them into a single contact object
AccountsCompaniesPerson accounts become contacts
OpportunitiesDealsDirect mapping
CasesTicketsDirect mapping
Tasks, notes, eventsTasks, notes, meetingsEmail messages become email activities
Users and email templatesUsers and email templatesTransferred as part of the move
Attachments and campaign listsAttachments and listsOne-time post-sync transfer only, not ongoing sync

Smart Transfer does not move custom objects. It does not move call records. It does not move calculated and reference fields. Flows, Apex triggers, and other automation from the old system do not transfer. Reports and dashboards do not migrate. They must be rebuilt in the new system. Custom objects need a partner-led migration and the Enterprise tier, or a separate import or API step.

The migration steps

  1. Audit your data in the old system. List every object, field, and workflow you use. Note which ones are custom. Check record counts and spot duplicates. The new platform's own guidance says the data you end up with will only be as good as the data you migrate.
  2. Clean the data before you move it. Merge duplicate contacts and accounts. Fix inconsistent picklist values. Fill in missing owners and required fields. Records are matched by email address. Duplicates and bad picklists do not get fixed by the migration. They cause failures in the new system.
  3. Back up everything. Export a full copy of your old-system data before the transfer. Keep it somewhere safe. A backup is your only recovery path if the mapping goes wrong. Data Loader, the free bulk export tool from the vendor, can pull each object into a CSV file. Note that it does not export attachments, so use the weekly export in the app for those.
  4. Build a data dictionary. Map each object and field in the old system against its equivalent in the new one. Fields become properties. Accounts become companies. Opportunities become deals. Leads and contacts both become contacts. Write the mapping in a spreadsheet so the team can check it.
  5. Check the integration requirements. The integration needs a Salesforce edition with API access, or the Professional edition. It does not support Group Edition. You must be a system administrator with API Enabled, View Setup and Configuration, and Modify All on the objects you sync. If your account uses login IP restrictions, HubSpot may not connect until you relax them for the HubSpot app.
  6. Run Smart Transfer and audit the result. Smart Transfer audits your existing data before transferring it. Select the objects and data types you want to transfer. Run the transfer. Then check the counts. Compare record totals in both systems. Open a sample of contacts, companies, and deals. Check that associations survived: contacts linked with the right companies, deals linked with the right companies.
  7. Rebuild what did not move. Recreate custom objects in the new system. Rebuild your Flows and Apex logic as workflows there. Rebuild reports and dashboards by hand. Reconnect your other integrations one at a time. Test each workflow on a small set of records before you turn it on for everyone.
  8. Train the team and cut over. Show sales and marketing the new object names and the new deal stages. Pick a cutover date. Freeze edits in the old system on that date. Run a final sync or import. Then turn off old-system access so no one edits it by habit.

Gotchas that catch teams out

The lead and contact collapse catches teams first. Salesforce stores leads and contacts as separate objects. HubSpot has one contact object for every person. Decide how to handle lead status and lead source before the move, or the history gets messy. The API limit is the second gotcha. The integration runs on a daily API call allowance. A single contact sync can take up to four API calls per record. Large imports may take several hours. When the limit is reached, the sync pauses until the next 24-hour window. The Sync Health tab shows API calls used in the last 24 hours. The third gotcha is the initial import. When you import leads or contacts through the integration, only the email address syncs at first. The rest follows. Do not judge the import by the first pass. The fourth gotcha is the duplicate trap. Never run Smart Transfer and the Salesforce integration together. They match records with different IDs. Running both creates duplicates in each system. The fifth gotcha is scope. Smart Transfer moves records. It does not redesign your pipeline. The rebuild of automations, reports, and integrations is most of the project. Simple migrations take a few weeks. Complex ones with custom objects usually need a partner.

Bottom line

The move is straightforward for standard data. Smart Transfer moves contacts, companies, deals, tickets, tasks, and notes for free. Clean your data in the old system first. Map every field in a data dictionary. Back everything up. Never run Smart Transfer and the integration at the same time. Plan the rebuild of custom objects, automations, and reports as a separate job. It is the part that takes the most time. Do that, and the move lands clean.