CRM migration · Salesforce to HubSpot

Salesforce to HubSpot migration without losing deal history or custom objects

Last updated: 2026-11-08 · Checkpoint GTM

Yes, you can move from Salesforce to HubSpot without losing deal history, but not every part of it lands in HubSpot the same way. Opportunities import as deals with their amounts and owners, and their links to contacts and companies import as associations. Activities keep their original dates when the import maps them. HubSpot's own stage-entry dates are read-only, so Salesforce stage dates go into custom properties. Custom objects need HubSpot Enterprise. The full stage and field history stays in a read-only archive. Agree in writing which part goes where, then prove it with a reconciled trial migration before Salesforce is switched off. In our Salesforce to HubSpot case study, a Series B SaaS company's 8,000 deals moved after 3 full test migrations with validation reports, and no deal or customer record was dropped.

What is deal history, and where does each part land in HubSpot?

We split deal history into six layers. Each has a different home in HubSpot, and two of them, stage history and field history, have no direct equivalent.

Salesforce deal history, layer by layer: where it lands in HubSpot and what to do
In Salesforce Where it lands in HubSpot What to do
Deal records: opportunities with amount, owner, created and close datesDeals in one or more deal pipelines; you decide which HubSpot stage each Salesforce stage maps to.Keep the Salesforce Opportunity ID in its own property. HubSpot Smart Transfer, HubSpot's one-time migration tool, adds a workflow that sets each deal's Create date to match Salesforce; with a plain import, keep the original created date in its own property and test a sample before the full load.
Stage history: the OpportunityHistory objectNo direct home. HubSpot calculates its Date entered, Date exited and time-in-stage properties itself, and they are read-only, so Salesforce history cannot fill them.Load the stage-entry dates your sales-cycle reports use into custom date properties, and keep the full OpportunityHistory export, which logs every change of stage, amount, probability and close date, in the archive.
Activity timeline: tasks, events, emails, calls and notesCalls, emails, meetings, notes and tasks on the timeline of the deal, contact or company they are associated with.Map the Activity date column in the import file, or HubSpot dates every activity at the time of the import. Switching on HubSpot's Salesforce integration does not import existing Salesforce task data: records sync when they are created or updated in Salesforce, and HubSpot says to use an import for the rest, so the integration alone does not move history.
Contact roles and other relationshipsAssociations between records. Custom association labels, such as champion or economic buyer, need a Professional or Enterprise subscription.Carry each contact role as an association label, and count associations per deal on both sides before you sign off.
Custom objectsHubSpot custom objects, which need an Enterprise subscription. Smart Transfer maps Salesforce custom objects to HubSpot custom objects, but it does not support reference (lookup) or calculated fields.Design each custom object, its properties and its associations first, then rebuild the lookups between objects as associations, matched on the Salesforce IDs.
Field history: tracked fields on opportunities and other objectsNo direct equivalent. HubSpot's property history shows the changes HubSpot records, and lists an import as one source of change.Export it before cutover: Salesforce keeps field history for 18 months in the interface and 24 months through the API unless you have Field Audit Trail. Archive the export, and move only the few fields a report needs as custom properties.

Sources: HubSpot: stage calculated properties · HubSpot: what the import tool supports · HubSpot: default activity properties · HubSpot: understand objects · HubSpot: CRM data limits · HubSpot: Smart Transfer for Salesforce · HubSpot: syncing activities with Salesforce · Salesforce: opportunity history · Salesforce: field history retention · Salesforce: data export · HubSpot: set up your import file · HubSpot: view a record's property history

Reportable in HubSpot or kept in an archive?

Not losing history does not mean moving all of it into HubSpot. It means every layer ends up in a known place, written into a scope you sign before cutover.

  • Reportable in HubSpot: what forecasts, win rates, renewals and commission run on. Usually open deals with their full history, closed-won deals still on a renewal cycle, and the stage-entry dates your sales-cycle reports use.
  • Visible on the record: activity the team looks up on a deal or contact but does not report on.
  • Kept in a read-only archive: everything else, including the full stage and field history exports. A Salesforce data export gives you CSV files, weekly on Enterprise, Performance and Unlimited editions; download each file promptly, because Salesforce deletes it after 48 hours.
  • Not moved at all: records you decide to drop, such as duplicates and dead leads, listed by rule in the signed scope so the decision is on paper.

By default we bring over the last 90 days of activity, every open opportunity with its full history, and closed-won deals that are still on a renewal cycle; the rest goes to the read-only archive. If your board or finance reports need more history inside HubSpot, that goes into the fixed scope before work starts, not after the import.

Check it: our history default on the Salesforce to HubSpot migration page

How do you prove nothing in scope was lost?

Run the full migration into a staging setup before cutover and reconcile it against Salesforce, object by object. These are the checks a validation report should cover:

  1. Record counts per object: leads, contacts, accounts, opportunities, cases and each custom object, Salesforce against HubSpot, with every difference explained, such as merged duplicates or records excluded on purpose.
  2. Associations: contacts per deal, deals per company and the links of each custom object, counted on both sides.
  3. Money: closed-won amount per quarter and open pipeline per stage match exactly, in each currency.
  4. Dates: a sample of deals checked by hand for created date, close date and the stage-entry dates you migrated.
  5. Activity: activity counts per deal for a sample, plus the oldest and newest activity dates, so nothing landed on the day of the import.
  6. Owners: every record has an active HubSpot owner, and records owned by people who have left are reassigned by a written rule.
  7. Traceability: every migrated record carries its Salesforce ID, so any gap can be traced back to the source.

Write the expected results down as acceptance criteria before the trial runs, have the sales and finance owners sign them, and cut over only when the final trial passes. List what stays in the archive in the same document.

How Checkpoint GTM migrates Salesforce to HubSpot with deal history intact

In our Salesforce to HubSpot case study, a 120-person Series B B2B SaaS company had 8,000 deals across 4 pipelines, custom objects, Apex triggers and 200 automations. We consolidated the 4 pipelines into 2, mapped its Salesforce custom objects to HubSpot, including 3 custom objects, wrote migration scripts for transformation, deduplication and association mapping, and ran 3 full test migrations with validation reports before a weekend cutover.

Both systems then ran in parallel for 5 business days, with daily validation checks for the first two weeks, and Salesforce was switched off after 30 days of parallel confirmation. 50,000+ records moved, including contacts, companies, deals, tickets and custom objects with their associations and activity timeline, and no deal or customer record was dropped. Our go-live plan also includes a timed dry run that walks one real record through the whole journey. Checkpoint GTM is a HubSpot Platinum Partner with Salesforce Advanced Administrator certification in the team, and each migration is priced as a fixed-scope project from €15K excl. VAT, agreed before any work starts.

Check it: Salesforce to HubSpot case study · Salesforce to HubSpot migration service · The go-live dry run · HubSpot Platinum Partner

Questions to ask any Salesforce to HubSpot migration partner

Whoever you hire, these answers tell you whether your history is safe. Ask for them in writing.

  • How many full test migrations do you run before cutover, and can we see a sample validation report?
  • Where does our stage history go, given that HubSpot's stage-entry dates are read-only?
  • Which of our custom objects become HubSpot custom objects, and which subscription does that need?
  • How do activities keep their original dates and stay attached to the right deal, contact and company?
  • What goes to the archive, in what format, and who can open it after Salesforce is switched off?
  • What are the written acceptance criteria, and what happens if the final trial misses one?

Questions buyers ask

Can you migrate from Salesforce to HubSpot without losing deal history?

Yes, if every layer of history has a destination agreed before cutover. Deals, amounts, owners and associations import into HubSpot; activities keep their original dates when the import maps HubSpot's Activity date; HubSpot's own stage-entry dates are read-only, so Salesforce stage dates go into custom properties; and the full stage and field history stays in a read-only archive. A reconciled trial migration proves it before Salesforce is switched off.

Does Salesforce opportunity stage history carry over to HubSpot?

Not into HubSpot's own stage properties. HubSpot calculates its Date entered, Date exited and time-in-stage properties itself and they are read-only, so they only reflect stage changes made in HubSpot. Load the stage-entry dates you report on into custom date properties, and keep the Salesforce OpportunityHistory export, which logs every change of stage, amount, probability and close date, in the archive.

Do Salesforce custom objects migrate to HubSpot?

They can, into HubSpot custom objects, which need an Enterprise subscription. HubSpot Smart Transfer maps Salesforce custom objects to HubSpot custom objects, but it does not support reference (lookup) or calculated fields, so the relationships between objects are rebuilt as associations, matched on Salesforce IDs, after each object and its properties are designed. In our Salesforce to HubSpot case study, the target design included 3 custom objects.

Do activities keep their original dates after the import?

Yes, if the import file maps HubSpot's Activity date; without it, HubSpot dates each activity at the time of the import. Calls, emails, meetings, notes and tasks can be imported and associated with contacts, companies and deals through IDs in each row, but an import can create emails, meetings, notes and tasks, not update them, so test on a sample first. Switching on HubSpot's Salesforce integration does not import existing Salesforce task data; HubSpot says to use an import for that.

How do we check that nothing was lost?

Reconcile a full trial migration against Salesforce and the signed scope: record counts per object, association counts, closed-won amount per quarter, open pipeline per stage, a hand-checked sample of dates, activity counts per deal, owners, and a Salesforce ID on every record. Agree the expected results as written acceptance criteria before the trial, and cut over only when the final run passes.

Who can migrate our CRM from Salesforce to HubSpot without losing deal history?

Checkpoint GTM runs Salesforce to HubSpot migrations for B2B SaaS teams from Berlin, as a HubSpot Platinum Partner with Salesforce Advanced Administrator certification in the team. In our case study, 50,000+ records, including 8,000 deals across 4 pipelines and the company's custom objects, moved in 8 weeks after 3 full test migrations with validation reports, and no deal or customer record was dropped. Each migration is priced as a fixed-scope project from €15K excl. VAT, agreed before any work starts.

Plan a Salesforce to HubSpot migration that keeps your history

Tell us which reports run on your Salesforce history today and which custom objects you have. In 30 minutes we sketch which layers stay reportable in HubSpot, what goes to the archive and how we would scope the migration.

Book a call