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:
- accounts, contacts, leads, opportunities, cases, campaigns, products, and custom objects;
- record owners, teams, roles, queues, and permissions;
- custom fields, picklist values, required fields, formulas, and validation rules;
- notes, tasks, calls, meetings, emails, files, and attachments;
- workflows, automations, lead routing, scoring, reports, dashboards, forms, and integrations;
- duplicate rules, retention requirements, consent fields, and any records that should not move.
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.
- Keep untouched source exports separate from cleaned import files.
- Retain Salesforce record IDs even if they will not be visible to end users.
- Export users and ownership references before records that depend on them.
- Record row counts per object and save export success or error logs.
- Export files and attachments separately if the selected migration method does not carry them.
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:
- users, owners, custom properties, pipelines, stages, and association labels;
- companies and contacts with stable identifiers;
- deals, tickets, products, and supported custom objects;
- record associations;
- notes, tasks, calls, meetings, emails, and other supported activities;
- 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.
- Open companies, contacts, deals, and tickets and verify their associations.
- Confirm owners, pipeline stages, currency, dates, consent values, and custom properties.
- Check activity timestamps and whether historical notes remain attached to the right record.
- Run reports that expose missing owners, blank identifiers, orphaned deals, and unexpected duplicates.
- Test routing, permissions, integrations, forms, and notifications with controlled records.
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.