Salesforce to HubSpot Migration
This is the hardest of the common CRM migrations, because Salesforce's data model has structures HubSpot has no direct equivalent for. The records move reasonably easily. It is the configuration around them that needs decisions.
Discuss your projectWhat does not transfer, and what to do about it
Leads are the first and biggest difference. Salesforce treats a Lead as a separate object that is converted into a Contact, Account and Opportunity. HubSpot has no Lead object in that sense — everything is a Contact with a lifecycle stage. So a migration has to decide what happens to unconverted leads: become contacts at an early lifecycle stage, which is usually right, or be left behind. That decision affects your contact count, which affects your HubSpot bill, so it is commercial as well as technical.
Record types are the second. One Salesforce object can have several record types with different page layouts, picklist values and processes. HubSpot has no equivalent, so the usual translation is a custom property identifying the former record type plus separate pipelines where the processes genuinely differ. Done carelessly, this is where the migrated data becomes unusable.
Formula and roll-up summary fields do not transfer as formulas. They are calculated by Salesforce and HubSpot's calculation capabilities are different and more limited. Each one needs a decision: migrate the current value as a static field, recreate it where HubSpot can, or drop it. Migrating a calculated value as static and then letting people believe it still updates is the worst of the three options and the one that happens by default.
Automation does not migrate at all. Workflow rules, Process Builder flows, validation rules, approval processes and Apex triggers are rebuilt as HubSpot workflows, and that rebuild is usually the largest single piece of work in the project. It belongs in the plan from the start rather than being discovered in week four.
What we migrate
Standard objects
Accounts to companies, contacts to contacts, opportunities to deals, with associations preserved so the relationships survive.
Unconverted leads
To contacts at an agreed lifecycle stage, with the former lead status recorded as a property.
Custom objects
To HubSpot custom objects, which require a higher subscription tier. We confirm your plan supports it before designing around it — this is a common and expensive surprise.
Activity history
Tasks, events, calls and logged emails onto the timeline. Frequently the most valuable thing in Salesforce and frequently omitted from migration scope by accident.
Notes and attachments
Including Files and the older Attachments, which are stored differently and need handling separately.
Closed and historical records
Won and lost opportunities, which are your reporting baseline. Migrating only open records makes every year-on-year comparison impossible.
Owners and teams
Mapped to HubSpot users. If ownership is wrong on day one your sales team stops trusting the system immediately.
How we run it
- An audit first, with record counts per object, field population in practice, and duplicate analysis. Those counts are what the final reconciliation is measured against.
- A field mapping document naming every transformation and every field with nowhere to go, so nothing is silently lost.
- Cleaning rules agreed in writing before anything moves — duplicate resolution, records with no contact detail, opportunities in stages with no equivalent.
- A dry run into a HubSpot sandbox or trial portal with real data, producing a report of what was created, merged, flagged and unmapped. Two or three rounds is normal.
- Deduplication that accounts for HubSpot matching contacts on email address, with your Salesforce ID stored as a property so records can always be traced back.
- Cutover over a weekend, with Salesforce kept readable rather than decommissioned.
- A reconciliation report comparing counts per object and total open pipeline value both ways, with any difference explained rather than left to trust.
Common questions
Tell us what you need
Describe the problem and we will come back with scope, timeline, and a rate. No obligation to proceed.
Get in touch