HubSpot Migration Checklist (Complete Guide)
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 field | HubSpot property | Type match? | Transform needed? |
|---|---|---|---|
| Account Name | Company Name | Yes | None |
| Annual Revenue | Annual Revenue | Number to Number | Remove currency symbols |
| Lead Rating | Lead Score | Text to Number | Convert "Hot/Warm/Cold" to numeric |
| Region | Custom: Region | No equivalent | Create 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:
- Companies first — They are the parent entity for contacts and deals
- Contacts second — Import with the associated company name or domain so HubSpot creates the association
- Deals third — Import with associated company and contact identifiers
- Tickets fourth — Associated with contacts and companies
- Custom objects — After the standard objects they associate with
- 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:
- Upload the CSV to Contacts > Import (or the relevant object's import)
- Map each column to its HubSpot property
- Choose whether to create new records, update existing ones, or both
- Review the preview screen for mapping errors
- Start the import
- 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.
Keep working through the cleanup
Related HubSpot guides for planning, previewing, and validating the next step.
HubSpot Agency Migration Guide: Moving Client Data
A practical guide for agencies migrating client data into or between HubSpot portals. Covers planning, data mapping, cleanup, and post-migration validation.
Read guideHow to Change Your Domain in HubSpot (Without Breaking Links)
A step-by-step guide to changing your domain in HubSpot. Covers CRM records, CMS content, email templates, redirects, and everything that references your old domain.
Read guideHubSpot Email Domain Migration: Update @company.com Across All Contacts
Migrating email domains? Learn how to update email addresses across your entire HubSpot portal — from @olddomain.com to @newdomain.com — without breaking associations or losing data.
Read guideHow to Bulk Update URLs in HubSpot
Old URLs hiding in CRM records, blog posts, and email templates cause broken links and lost traffic. Learn how to find and replace URLs across your entire HubSpot portal.
Read guideStill editing HubSpot records one by one?
Start with 100 free applied records — no credit card required.