Salesforce to HubSpot
Move off Salesforce without losing your history
Accounts, contacts, opportunities, cases, and years of activity, mapped into HubSpot and validated before cutover. We also tell you up front what will not survive the move, because a few things genuinely do not.

Teams we have built CRM systems for
UAE
USA
Why teams make this move
Usually it is not about features. It is about what the thing costs to run.
You are paying for complexity you never used
The org was built for a company you are not, and you are still paying to maintain it.
Every change needs a consultant
Nobody on your team can safely change a field, so small requests sit in a queue for weeks.
Sales and marketing live in two systems
You are paying for a marketing tool and a CRM that argue with each other, and someone reconciles them by hand.
Your team does not use it
Adoption is the quiet killer. A CRM nobody updates is worse than no CRM, because you trust the numbers anyway.
What actually gets migrated
The clean parts and the messy parts. The rows marked as gaps are real, and they are the reason this direction needs planning rather than a data load.
| Feature | Becomes in HubSpot | What to watch |
|---|---|---|
| Accounts | Companies | Clean one to one. This is the easy part. |
| Contacts | Contacts | Clean one to one, once duplicates against Leads are resolved. |
| Leads | Contacts, with a lifecycle stage | HubSpot has no Lead object. Leads and Contacts collapse into one record type, which is exactly where duplicates appear. Dedupe happens before load, never after. |
| Opportunities | Deals | Record Types and Sales Processes become separate Deal pipelines, so decide which ones you actually still need. |
| Cases | Tickets | Requires Service Hub. If you are not buying it, tell us early, because it changes the plan. |
| Custom fields | Properties | Formula fields do not survive. HubSpot calculated properties cover some of them, not all. We list the gaps before you commit. |
| Flows, Process Builder, Workflow Rules | Workflows | Rebuilt by hand. Complex logic may need Operations Hub, which is a real line item, not a footnote we bury. |
| Validation rules | Required fields and property validation | An honest gap. HubSpot validation is weaker than Salesforce, so some rules end up living in process rather than in the tool. |
| Custom objects | Custom objects | Enterprise tier only. On lower tiers we remodel them as properties or associated records, and we tell you that before you buy a licence. |
| Products, Price Books, Line Items | Products, Line items, Quotes | Multiple price books flatten into one product library. You pick which prices are the true ones. |
| Tasks, Events, Emails | Tasks, Meetings, timeline activity | Timeline history is the long pole in the load. Worth deciding how many years you actually need. |
| Attachments and files | Files | Straightforward, just slow if the library is large. |
| Campaigns | Campaigns and lists | Campaign member status becomes list membership plus properties on the contact. |
| Roles, Profiles, Sharing Rules | Teams and permissions | An honest gap. HubSpot permissions are coarser than Salesforce sharing. If you depend on record-level sharing, this is the first thing to discuss, not the last. |
| Reports and dashboards | Reports and dashboards | Rebuilt. Definitions get re-agreed in the process, which most teams end up treating as a feature. |
If a row above worries you, that is the right reaction and the right conversation to have before you sign, not after the data has moved.
Our migration process
Nothing goes live until you have seen it work on your own data.
Discovery and field mapping
We inventory every object, field, automation, and integration, then write the mapping down and get your sign-off before touching data.
Test migration
A full run into a HubSpot sandbox. You open it and go looking for what is wrong while it is still cheap to fix.
Cleanup and dedupe
The Lead and Contact collapse creates duplicates by design. We resolve them before the real load, on rules you agree to.
Validation
Record counts and spot checks against Salesforce, in a document you approve. If the numbers do not match, we do not proceed.
Cutover
The real load, in an agreed window, with Salesforce still live and readable throughout.
Post-migration support
We stay on for an agreed period after go-live, because the real problems surface when real users start clicking.
How we protect your data
The whole job is not losing anything. Everything below is standard, not an upsell.
A full export first
A complete export of your Salesforce data before we touch anything, and you keep a copy of it.
Sandbox before production
Every run happens in a sandbox first. Your live HubSpot portal sees the data once, on cutover day, after it has already worked elsewhere.
You approve the counts
No cutover until you have signed off on record counts and spot checks against the source.
A rollback plan on paper
Written before we start. Salesforce stays live and readable until you tell us to turn it off, and not a day before.
Timeline, and who does what
Most migrations run four to eight weeks. What moves that number is how much activity history you keep, how many custom objects and formula fields need remodelling, and how many integrations are wired into Salesforce today. Slow decisions move it more than any of those, which is why this list exists.
What we do
- Inventory your objects, fields, automations, and integrations
- Write the field mapping, including what cannot carry over
- Run the test migration into a sandbox
- Resolve the Lead and Contact duplicates before load
- Validate record counts against Salesforce
- Run the cutover and stay on afterwards
What we need from you
- Admin access to both systems, when each step needs it
- One person who can decide how fields map, and make that decision stick
- A call on how many years of activity history you actually need
- Sign-off on record counts before cutover
- A freeze window where nobody edits records during the load
Related work
Frequently asked questions
How much downtime will we have?
For most teams, none they notice. The load runs in an agreed window, usually over a weekend, and Salesforce stays live and readable throughout. We do need a freeze window where nobody edits records mid-load, because those are the edits that go missing.
What drives the cost?
How much activity history you keep, how many formula fields and custom objects need remodelling, and how many integrations point at Salesforce today. Raw record count matters much less than people assume. We quote a fixed price after discovery.
Do we keep our historical activity?
Yes, if you want it. Tasks, events, and emails land on the HubSpot timeline. Ask yourself how far back you actually need, though, because history is the slowest part of the load and most teams are fine with two or three years.
What happens to our custom objects?
This is the honest one. HubSpot custom objects require the Enterprise tier. If you are not on it, we remodel them as properties or associated records, and we show you exactly what that looks like before you decide. We would rather lose the deal than surprise you here.
Which integrations will break?
Anything wired to the Salesforce API needs repointing. Some tools have a HubSpot connector and it is a config change. Others need rebuilding, and a few have no HubSpot equivalent at all. We list all three categories in discovery, before you commit.
Will our team need retraining?
Less than you would expect, and that is usually the reason people move. HubSpot is the easier system to learn. We still include a walkthrough and documentation, because adoption is what you are buying.
Can we run both systems in parallel?
During the migration, yes, and Salesforce stays readable until you sign off. Running both as your CRM long term is a slow way to end up with two sets of bad data, so we would talk you out of it.
Get a migration plan
Tell us roughly what is in your org and we will come back with a mapping outline, a timeline, what it would cost, and an honest list of what will not carry over.
No sales sequence, no drip campaign. One human, one reply.