All guides
HubSpotMigration

HubSpot Migration Checklist (Complete Guide)

By SearchReplace··10 min read

Migrating to HubSpot from another CRM — or migrating from one HubSpot portal to another — is one of those projects that looks straightforward on paper and turns complicated in practice. The data mapping seems obvious until you find that your source system uses different field types, different naming conventions, and different relationship models. The import seems simple until you realize the order matters, and getting it wrong creates orphaned records and broken associations.

This checklist covers the full migration lifecycle: what to do before you move anything, how to execute the migration, and the critical cleanup steps that determine whether the migration succeeds long-term.

Pre-migration: Planning and preparation

1. Audit your source data

Before exporting a single record, understand what you are working with in the source system.

Record counts by object type. How many contacts, companies, deals, and other records are you moving? This determines your import strategy (HubSpot has import size limits), your timeline, and whether you need to be selective about what to migrate.

Property inventory. List every property/field in the source system with its data type, sample values, and fill rate. Properties with less than 5% fill rate may not be worth migrating — they add complexity to the import mapping with almost no benefit.

Data quality assessment. Run the same analysis you would for a data cleanup: check for duplicates, inconsistent values, and formatting issues. It is significantly easier to clean data before migration than after. Fixing problems in a spreadsheet before import is faster than fixing them inside HubSpot.

Relationship mapping. Understand how records relate to each other in the source system. Contacts belong to companies, deals are associated with contacts and companies, activities are linked to records. These relationships need to be recreated in HubSpot, and the import order depends on them.

2. Map properties to HubSpot

Create a spreadsheet mapping each source property to its HubSpot equivalent.

Source fieldHubSpot propertyType match?Transform needed?
Account NameCompany NameYesNone
Annual RevenueAnnual RevenueNumber to NumberRemove currency symbols
Lead RatingLead ScoreText to NumberConvert "Hot/Warm/Cold" to numeric
RegionCustom: RegionNo equivalentCreate custom property

For each property:

  • Direct matches — Source field maps cleanly to a standard HubSpot property with the same data type. No transformation needed.
  • Type mismatches — Source uses a text field where HubSpot uses a dropdown, or source stores dates in a different format. These need transformation during or after import.
  • No equivalent — Source has a field that does not exist in HubSpot. Decide whether to create a custom property or drop the data.
  • Semantic differences — Both systems have a "Status" field, but the values mean different things. Map source values to their HubSpot equivalents explicitly.

3. Set up HubSpot properties before import

Create all custom properties in HubSpot before importing data. This ensures that every field in your import file has a destination. If you try to import data into a property that does not exist, HubSpot either skips it silently or prompts you to create the property during import (which adds friction and risk of errors).

For dropdown properties, define all valid values in advance. This includes values from the source data that you plan to standardize after migration.

4. Clean the source data

This is the step most teams skip, and it is the one that causes the most post-migration pain.

At minimum:

  • Deduplicate records in the source system
  • Standardize country, state, and industry values to the conventions you want in HubSpot
  • Normalize phone number, email, and URL formats
  • Remove test records, spam entries, and obviously invalid data
  • Fill in missing required fields where possible

Every data quality problem you fix before migration is one less problem to fix inside HubSpot.

5. Plan the import order

HubSpot imports need to follow a specific sequence because of how associations work:

  1. Companies first — They are the parent entity for contacts and deals
  2. Contacts second — Import with the associated company name or domain so HubSpot creates the association
  3. Deals third — Import with associated company and contact identifiers
  4. Tickets fourth — Associated with contacts and companies
  5. Custom objects — After the standard objects they associate with
  6. Activities (notes, tasks, calls, emails) — Last, associated with the relevant records

If you import contacts before companies, HubSpot cannot create the company association during import. You would need to re-associate them manually or through a second import pass.

6. Prepare import files

Export your source data into CSV files organized by object type, following HubSpot's import formatting requirements:

  • One CSV per object type (or per association type for complex imports)
  • Column headers that match HubSpot property names (or that you will map during import)
  • UTF-8 encoding (critical for international characters)
  • Date fields in a format HubSpot recognizes (YYYY-MM-DD is safest)
  • No leading/trailing whitespace in cell values
  • Record IDs from the source system included as a column (useful for troubleshooting and re-association)

During migration: Execution

7. Import in sequence

Follow the order from step 5. For each import:

  1. Upload the CSV to Contacts > Import (or the relevant object's import)
  2. Map each column to its HubSpot property
  3. Choose whether to create new records, update existing ones, or both
  4. Review the preview screen for mapping errors
  5. Start the import
  6. Wait for completion and review the results summary

HubSpot's import summary shows how many records were created, how many were updated, how many had errors, and what those errors were. Do not ignore errors. A 2% error rate on 10,000 contacts means 200 records that did not import correctly.

8. Verify associations

After all object types are imported, spot-check associations:

  • Open 10-15 contact records and verify they are associated with the correct company
  • Open 10-15 deals and verify they are associated with the correct contacts and companies
  • Check that activities (notes, calls, emails) appear on the right records

If associations are missing, you may need to run an association import — a HubSpot import that maps record IDs to create associations without creating new records.

9. Handle import errors

Every import produces an error file that you can download from the import history. Common errors:

  • Invalid property values — A dropdown property received a value that is not in its options list. Fix: add the value to the dropdown or transform the data.
  • Duplicate records — HubSpot matched the imported record to an existing one based on email or domain. Decide whether to merge or keep both.
  • Missing required properties — A record is missing a property that HubSpot requires. Fix: fill in the value in the source file and re-import that record.
  • Format errors — Dates in the wrong format, numbers with commas in a decimal field, etc.

Fix the errors and re-import just the failed records. Do not re-import the entire file — that creates duplicates for the records that imported successfully.

Post-migration: Cleanup and validation

This is where the migration succeeds or fails. The data is in HubSpot, but it needs to be verified, cleaned, and tuned before you hand the system to your team.

10. Run a data quality audit

With all data imported, run a comprehensive quality check:

  • Property fill rates — Are critical properties populated on the expected percentage of records?
  • Value consistency — Did any import step introduce new value variants? (Imports often turn "null" or "N/A" from spreadsheets into literal strings in HubSpot.)
  • Duplicate check — The import may have created new duplicates if matching was imperfect. Run HubSpot's duplicate management tool again.
  • Record counts — Do the totals in HubSpot match the expected counts from your source data?

11. Clean up post-migration artifacts

Migrations almost always introduce some data artifacts that need cleanup:

  • Literal "null" or "N/A" values — Source systems and spreadsheets often export blank fields as "null," "N/A," "None," or "#N/A." These need to be found and cleared. A bulk find-and-replace that replaces "null" with an empty string (or clears the property) fixes this across all affected records.
  • Source system IDs — If you included source record IDs for troubleshooting, decide whether to keep them long-term. If not, clear the property or archive it.
  • Encoding artifacts — Special characters that were not encoded correctly during export/import. Look for question marks, garbled text, or HTML entities in name and address fields.
  • Prefix/suffix artifacts — Source systems sometimes export values with leading or trailing characters: quotes, brackets, or whitespace that became part of the value in HubSpot.

12. Standardize values that could not be cleaned pre-migration

Some value standardization is easier to do inside HubSpot after import:

  • Convert dropdown values from source system naming to your HubSpot naming convention
  • Standardize any values that were imported as text but should map to specific dropdown options
  • Fix any values that were transformed incorrectly during import

This is where a bulk find-and-replace tool saves the most time during migrations. Instead of re-exporting, fixing in a spreadsheet, and re-importing, you run targeted replacements directly inside HubSpot.

13. Configure automations and test

With clean data in place:

  • Set up or re-create workflows that existed in the source system
  • Test each workflow against migrated records to verify it triggers correctly
  • Ensure property-based workflows match the exact values now in HubSpot
  • Test lead scoring rules against the migrated data

14. Validate reports

Rebuild your critical reports in HubSpot and compare them against the same reports from the source system. If the numbers do not match, investigate:

  • Are property filters using the correct values (including any that were standardized)?
  • Are date ranges correct?
  • Are associations creating correct roll-up calculations?

15. Train your team

The migration is not complete until your team knows how to use the new system. Training should cover:

  • How to find and enter data in HubSpot's interface
  • What naming conventions and data standards apply
  • Where to get help when they encounter issues
  • What not to do (importing data without following the template, changing property types, etc.)

Post-migration maintenance

Set a reminder for 30 days after migration to run another data quality audit. The first month of real usage always surfaces issues that were not visible during the migration itself: edge cases in workflows, property values that were not anticipated, and data entry patterns that diverge from the standards you set.

A migration is not a one-day event — it is a project with a long tail. The teams that acknowledge this and plan for post-migration cleanup end up with a clean, reliable HubSpot portal. The teams that declare victory on import day end up with the same data problems they had in their old system.

Related HubSpot guides for planning, previewing, and validating the next step.

Still editing HubSpot records one by one?

Start with 100 free applied records — no credit card required.