Salesforce to HubSpot Migration Checklist

Moving from Salesforce to HubSpot is not just a contact import. The risky work is deciding which records belong in the new CRM, preserving relationships between them, rebuilding the workflows that depend on those records, and proving that the new system is correct before the old one is retired.

This checklist focuses on that work. Use it to scope a migration, build a testable import plan, and identify the parts that need manual rebuilding. Product capabilities and account access can change, so confirm the current requirements in the linked Salesforce and HubSpot documentation before cutover.

First decide: staged sync or one-time import?

A CSV-based migration is appropriate when you can define a cutover window and freeze changes long enough to export, import, and validate. A staged transition may be safer when both systems must remain active while teams move. HubSpot documents a Salesforce integration with configurable sync settings; evaluate its current requirements and behavior before treating it as a bridge.

Do not turn on bidirectional sync until field ownership and conflict rules are clear. Otherwise, cleanup in one system can be overwritten by the other.

1. Inventory the Salesforce data and dependencies

List what exists before deciding what to move. Include:

For each item, mark it as migrate, rebuild, archive, or retire. That keeps a legacy field or automation from entering HubSpot simply because it exists.

2. Export a recoverable Salesforce source set

Create a dated export before transforming anything. Salesforce documents Data Export for backup exports and Data Loader for bulk CSV import and export work. Choose the supported route that covers your objects, volume, permissions, and recovery needs.

3. Build the HubSpot property and association map

Create the required HubSpot users, properties, pipeline stages, and allowed values before importing records. Map every source column to a destination property or an explicit “do not import” decision. Preserve a stable source ID in a HubSpot property so records can be reconciled later.

HubSpot’s importer uses unique identifiers to update existing records and build associations. Depending on the object, that can include an email address, company domain, HubSpot Record ID, or a custom property configured with unique values. Review HubSpot’s current import-tool requirements before choosing an identifier.

Also decide how Salesforce relationships map into HubSpot: account to company, contact to company, opportunity to deal, case to ticket, and any custom-object associations. If you need association labels, HubSpot says the labels must already exist before import.

4. Clean copies, not the original export

Work from duplicated CSV files. Standardize dates, phone numbers, country or state values, owner references, picklists, and empty values. Identify duplicate contacts and companies before import; do not assume an email or domain is unique enough for your real data.

Keep a change log for transformations such as merged records, renamed values, removed fields, and reassigned owners. That log is part of the rollback and audit trail.

5. Run a representative pilot import

Test with a small set that includes the awkward records, not just the cleanest ones: multiple contacts at one company, records with several deals, missing owners, custom values, activities, and duplicate candidates. HubSpot provides sample import files and a detailed file-format guide.

When importing activities, include the intended activity date. HubSpot notes that an imported activity without a date can receive the time of import instead. Confirm whether each activity type is create-only or can be updated before relying on repeat imports.

6. Import in dependency order

The exact sequence depends on your model, but a practical order is:

  1. users, owners, custom properties, pipelines, stages, and association labels;
  2. companies and contacts with stable identifiers;
  3. deals, tickets, products, and supported custom objects;
  4. record associations;
  5. notes, tasks, calls, meetings, emails, and other supported activities;
  6. files or attachments through the supported path for your account and migration method.

Save every import result and error file. Correct the cause of an error before reimporting; otherwise, a second pass can create duplicates or overwrite a valid value.

7. Rebuild what a CSV cannot carry

Expect to review or rebuild workflows, lead routing, scoring, reports, dashboards, forms, permissions, integrations, and notification rules. Reproduce the business outcome, not the exact shape of an old Salesforce process. A smaller replacement is often easier to validate and maintain.

Document each rebuilt item with an owner, test case, expected result, and rollback decision. Do not activate customer-facing automation until suppression rules and recipients have been checked.

8. Reconcile before cutover

Validation should be measurable. Compare source, attempted, imported, rejected, and intentionally excluded counts for each object. Then sample records across owners, stages, dates, and edge cases.

9. Cut over with a rollback point

Set a final-change deadline, run a delta export if needed, complete the last import, and repeat the reconciliation checks. Communicate which CRM is authoritative and when users must stop updating Salesforce. Keep the source export, transformation log, import logs, and validation results until the migration is accepted.

Before removing access or integrations, confirm retention obligations and verify that the team can still retrieve any records deliberately left behind.

Budget the work before committing to a date

Subscription price is only one part of a switch. Estimate data preparation, workflow rebuilding, validation, training, and overlap between systems with the SaaS migration cost calculator. Treat its result as a planning scenario, then replace the defaults with your inventory and rates.

If the destination is not decided, compare the workflow fit in HubSpot vs Pipedrive before building a HubSpot-specific migration plan. For more migration and cleanup sequences, browse the W3 Stacks guides.