HubSpot Migration

Most Salesforce to HubSpot migrations fail for the same reason: the team focuses on moving data and forgets to preserve meaning. Contacts and deals show up in HubSpot. The attribution history that proves marketing's contribution to revenue does not.

This guide covers what a clean migration actually requires. Not the surface-level checklist you find everywhere. The decisions that determine whether your CMO can reconcile HubSpot reports against Salesforce baselines on day one.


Why Most Salesforce to HubSpot Migrations Fail

In 19 years of running B2B CRM migrations, TPG has inherited broken migrations from in-house teams, boutique consultants, and one major systems integrator. The failures cluster around the same 4 decision points.

1. Attribution data gets orphaned, not migrated

Salesforce campaign member records track marketing's contribution to every contact. Those records do not map automatically to HubSpot contact timelines. Without a deliberate pre-migration strategy, 12 to 36 months of attribution history becomes inaccessible the day you go live.

2. Custom objects get mapped to the wrong HubSpot equivalent

Enterprise Salesforce instances carry custom objects built to work around Salesforce's data model. HubSpot has custom objects too, but the structure is different. A lazy field mapping produces a HubSpot instance that looks complete and reports nothing useful.

3. Integration dependencies are discovered at go-live

Salesforce sits at the center of most enterprise revenue stacks. Marketing automation, billing, ERP, support, and sometimes custom internal tools connect to it. The integration audit that should happen in week 1 instead happens on cutover day.

4. Sales adoption collapses post-launch

The technical migration ships clean. 90 days later, 40% of the sales team is back in spreadsheets because HubSpot does not work the way Salesforce did and nobody redesigned the process before forcing the change.

"A migration is not a data project. It is a change management project that happens to involve data. Every team that treats it as a data project ends up doing it twice."


Before You Start: The Audit Phase

No migration should begin without a full Salesforce audit. The audit answers one question: what are we actually moving? The answer is almost always more complicated than the original project scope assumed.

Audit Item 1 — Custom Object Inventory

Export a full list of every custom object, custom field, and validation rule in your Salesforce instance. For each one, determine: (a) is it actively used in the last 6 months, (b) does HubSpot have a native equivalent, or (c) does it need a custom object rebuild. Objects that are not actively used should not migrate. Migrating dead weight costs time and creates HubSpot clutter that slows adoption.

Audit Item 2 — Attribution History Mapping

Pull a report of every Salesforce campaign and campaign member record for the past 36 months. Identify which campaigns contributed to closed revenue. Design the HubSpot property structure that will hold equivalent information before any data moves. This is the most important hour you will spend in the pre-migration phase.

Audit Item 3 — Integration Dependency Map

Document every system that sends data to or pulls data from Salesforce. Include marketing automation, ERP, billing, customer support, and any custom-built connectors. For each integration, determine the cutover plan: migrate simultaneously, run in parallel, or sequence after go-live.

Audit Item 4 — Data Quality Scoring

Run a data quality report on your contact and account records. Duplicate contacts, invalid email addresses, and incomplete company records compound in HubSpot if not cleaned before migration. The migration is the best data cleaning opportunity you will have for years. Use it.


HubSpot Property Architecture: Design Before You Migrate

The most common migration mistake is mapping Salesforce fields to HubSpot properties on a 1:1 basis. The data structures are different. A Salesforce field that stores a value as a text string may need to be a HubSpot dropdown or a calculated property to work correctly in reports.

Design the HubSpot property architecture before any data migration begins. The questions to answer:

  • Which Salesforce fields map cleanly to standard HubSpot contact, company, or deal properties?
  • Which fields require custom HubSpot properties, and what property type (text, dropdown, date, number)?
  • Which fields are calculated values that should be rebuilt as HubSpot calculated properties?
  • Which fields are attribution-related and need special handling?
  • Which fields are used only in Salesforce workflows and have no downstream reporting purpose?

The last category is where teams create unnecessary complexity. If a field exists only to trigger a Salesforce workflow and the workflow is being replaced by HubSpot automation, the field does not need to migrate. Every unmigrated field simplifies your HubSpot instance.


Preserving Attribution History: The Critical Step Most Teams Skip

Attribution history is not a field. It is a relationship between contacts, campaigns, and revenue outcomes that exists across multiple Salesforce objects. Preserving it requires understanding what you have and making deliberate choices about how to reconstruct it in HubSpot's data model.

Option 1: Replicate the Salesforce campaign structure in HubSpot

For teams using HubSpot Marketing Hub, this means recreating past campaigns as HubSpot campaigns and associating historical contacts with them. Time-consuming but produces the most accurate historical record for reporting.

Option 2: Store attribution data as contact properties

For teams that need to preserve the attribution data but do not need to recreate full campaign histories, the answer is custom contact properties that capture original source, first campaign, last campaign before close, and campaign count. This approach is faster and produces usable reporting in most board-facing dashboard contexts.

Option 3: Maintain Salesforce as an attribution data archive

Some teams leave Salesforce in a read-only state for 12 to 18 months after migration, accessible to the finance and revenue operations teams for historical attribution lookups. This buys time without sacrificing accuracy.

The Attribution Decision Should Not Wait Until Migration Day

Whatever approach you choose, the decision must happen before data migration begins. Retroactively rebuilding attribution history in HubSpot after contacts and deals have migrated is 3 to 5 times more labor-intensive than building it correctly during the migration.


Migration Execution: Sequence Matters

The sequence of data migration determines whether the relationships between objects survive the move. Get it wrong and you have orphaned deals, contacts without company associations, and campaigns with no members.

The correct migration sequence:

  1. Companies first. Every contact and deal in Salesforce is associated with an account. If companies do not exist in HubSpot when contacts migrate, the associations break.
  2. Contacts second. With companies in place, contacts can associate correctly on import.
  3. Deals third. Deals associate to both contacts and companies. Both must exist before deals migrate.
  4. Activities last. Notes, calls, emails, and meeting records associate to contacts and deals. Import after the primary objects are in place.
  5. Attribution data after activities. Campaign associations and source data link to contacts. Run this import after the contact base is clean and validated.

Go-Live and the Parallel Operation Period

Do not cut over from Salesforce to HubSpot in a single day. Run both systems in parallel for a minimum of 2 weeks. Use that period to validate that HubSpot data matches Salesforce data, integrations are functioning correctly, and reports in HubSpot produce numbers that reconcile with the Salesforce equivalents.

Discrepancies during parallel operation are expected and manageable. Discrepancies discovered 60 days after cutover, when Salesforce has been decommissioned, are expensive and sometimes irrecoverable.


Sales Adoption: The Part of Migration Nobody Plans For

Sales reps who were productive in Salesforce did not become productive in Salesforce because of Salesforce. They became productive because their workflows, views, and processes were configured around Salesforce's specific behavior. HubSpot does not automatically replicate any of that.

The adoption plan must include:

  • Role-specific HubSpot configuration for each sales team segment (SDRs, AEs, CSMs, management)
  • Live training, not recorded-only. Questions asked in live training reveal gaps that written documentation misses.
  • A 30-day hypercare period where someone from the migration team is available same-day for questions
  • Usage monitoring in HubSpot to identify reps who are logging in but not updating records

Post-Migration Reporting Validation

The final test of a successful migration is whether your CMO can walk into a board meeting and defend HubSpot pipeline numbers the same way they defended Salesforce numbers. That requires two things: the right data in HubSpot, and the right reports built on top of it.

The reporting configuration phase should happen in parallel with the adoption phase, not after it. Build the CMO and CRO dashboards before go-live so the first week of live operation validates the reports, not discovers gaps in them.


Running a Salesforce to HubSpot Migration?

TPG has done this 100+ times. We can audit your Salesforce instance, map the attribution risks, and give you a project plan that does not surprise you. Start with a 30-minute call.

Talk to a Migration Specialist


The Bottom Line

A Salesforce to HubSpot migration done right takes 8 to 12 weeks for a mid-market B2B company with moderate Salesforce complexity. Done wrong, it takes 4 months and still does not preserve attribution history.

The decisions that determine which outcome you get happen in weeks 1 through 3, before any data moves. The audit, the attribution strategy, and the property architecture design are where the migration is won or lost.

Every hour you invest in the pre-migration planning phase saves 5 hours of post-migration remediation.


Frequently Asked Questions

What is the correct sequence for migrating data from Salesforce to HubSpot?

Migrate in this order: companies first, contacts second, deals third, activities fourth, attribution data last. Each step depends on the previous one. If contacts migrate before companies exist, associations break. Run a validation check after each step before proceeding.

How long does a Salesforce to HubSpot migration take for a mid-market B2B company?

Plan for 8 to 12 weeks from kickoff to go-live for a mid-market company with moderate Salesforce complexity. Enterprise organizations with complex custom objects and multiple integrations typically need 16 to 24 weeks. Migrations completed in under 4 weeks almost always require a remediation project within 18 months.

Will migrating to HubSpot break our attribution reporting?

Only if the migration does not include a deliberate attribution preservation strategy. Salesforce campaign member records do not map automatically to HubSpot's data model. Without pre-migration planning, 12 to 36 months of attribution history can become inaccessible on go-live day. The attribution strategy must be designed before any data moves.

Should we run Salesforce and HubSpot in parallel during migration?

Yes. Run both systems in parallel for a minimum of two weeks after go-live. Use that window to validate that HubSpot data matches Salesforce, integrations are functioning, and reports produce numbers that reconcile with the Salesforce equivalents. Discrepancies found during parallel operation are manageable. Discrepancies found after Salesforce is decommissioned are expensive.

What happens to Salesforce custom fields that have no HubSpot equivalent?

Each field needs a decision: map to a HubSpot custom property, replace with a native HubSpot property that covers the same use case, or retire it. Fields that are not used in active reports or automation do not need to migrate. In practice, eliminating inactive fields reduces custom property clutter by 40 to 60 percent on most Salesforce instances.

How do we handle sales adoption after going live on HubSpot?

Build a 30-day hypercare plan before go-live that includes role-specific training (SDRs, AEs, and CSMs trained separately), usage monitoring with per-rep adoption dashboards, a designated same-day support contact, and a firm Salesforce decommission date. Without a decommission date, dual-system inertia prevents HubSpot from ever becoming the true system of record.


The Pedowitz Group | pedowitzgroup.com | Revenue Marketing Experts Since 2007