Table of contents

Show all table of contents

TL;DR

Most migrations fail a week after import, not on the day. Pipeline looks lower, a workflow emails customers twice, or ticket history is missing, and each of those was visible beforehand to anyone who checked. This checklist makes sure someone does, by comparing HubSpot against the source on every item.

Save a baseline from the source CRM before anything moves. Run the checks on a sample import, fix the mapping, then run them again on the full migration, and do not go live with open fails on records, associations, or workflows.

At a glance

Area

What to consider

Baseline

Save source counts, pipeline totals, key report values, and sample records before any testing starts.

Counts and completeness

Compare totals and per-segment counts, and review every import error file.

Fields

Compare dropdown distributions as well as samples, especially dates, multi-selects, and calculated fields.

Associations

Check counts per object pair, look for orphan records, and confirm the primary company on contacts with several.

Workflows and integrations

Test workflows on specific records first, then on a small live set, and turn them on in an agreed order.

Sign-off

Reconcile key reports to the baseline, log every difference, and record an owner and a result for each go-live check.

 


Most CRM migrations do not fail on import day. They fail a week later, when a sales manager notices that pipeline is lower than last week, a workflow emails customers twice, or support cannot find a ticket history. Each of those problems was visible before go-live to anyone who looked. A CRM migration testing checklist is how you make sure someone looks.

This guide explains why testing matters, then walks through what to validate before going live on HubSpot: record counts and completeness, field mapping and data types, associations and ownership, workflows and integrations, and reports and dashboards. It ends with a final go-live checklist you can use as a sign-off sheet.

Why CRM Migration Testing Matters

A migration is a translation. Data moves from one model into another, and every translation step can change meaning. A picklist value that does not exist in HubSpot lands blank. A date format reads day as month. A lookup field becomes text instead of an association. None of these errors stops the import. They only show up when people use the data.

Testing also protects trust. If reps open HubSpot on day one and find missing deals, they go back to spreadsheets, and adoption suffers for months. A tested migration lets you go live with evidence that the data is right, and with an explanation ready for any number that changed.

Treat testing as a project phase with its own time in the plan, not something squeezed into the last afternoon. A written migration QA checklist, agreed with the business before data moves, tells everyone what "done" means and who signs it off. It also turns a vague worry into a list of checks that can each pass or fail. The HubSpot migration checklist in this guide is built that way: every item compares HubSpot against the source and has a clear pass condition.

Good CRM migration testing follows three principles:

  • Compare against the source. Every check is a comparison with the old CRM, not an opinion that records look fine.
  • Test early and twice. Run the full checklist on a sample import first, fix the mapping, then run it again on the full migration.
  • Involve the people who know the data. Sales managers, support leads and marketing owners spot problems that counts cannot.

Before testing starts, save a baseline from the source CRM: record counts per object, pipeline totals, key report values and a list of sample records. Without a baseline, there is nothing to test against.

If you use a sandbox, HubSpot offers standard sandboxes on Enterprise subscriptions. HubSpot describes them as a copy of your production account's features and functionality, with the option to copy a set of contacts and associated records for testing. On other subscriptions, a small test import into the live account, clearly tagged so it can be removed, serves the same purpose.

Validate Record Counts and Data Completeness

Counts are the first and simplest check. For every object, compare the number of records in the source CRM with the number in HubSpot.

  • Per object: Contacts, companies, deals, tickets, custom objects and activities.
  • Per segment: Counts by owner, pipeline, lifecycle stage or region. A matching total can hide two errors that cancel out.
  • Exclusions: Records you chose not to migrate, such as old leads or test data, should be listed and counted, so the gap is explained.

Then check completeness. A record can exist without its data. For each key property, compare how many records have a value in the source and in HubSpot. A property that was 95 percent populated in the old CRM and is 40 percent populated in HubSpot points to a mapping error or a failed column.

HubSpot's import tool helps here. After an import, it shows an import errors summary and lets you download the rows that failed, with an error code and reason for each. HubSpot lists common errors such as invalid enumeration options, unparseable dates or numbers, duplicate unique property values, missing required properties and owners that cannot be found. Review every error file before moving on. Each row in it is a record that did not arrive as planned.

Finally, check for duplicates. HubSpot's duplicate management tool, available on Professional and Enterprise subscriptions, compares contacts and companies daily to surface likely duplicates. Run it after import, and search on the source system's record ID to confirm no record was imported twice.

Check Field Mapping and Data Types

Counts prove that records arrived. Field checks prove that the values mean the same thing.

Pick a sample of 20 to 50 records per object, chosen to cover edge cases: records with every picklist value, records with long text, records with blank fields and records with unusual dates. Compare each mapped field with the source record, value by value.

Focus on the field types that most often go wrong:

Field type

What to check

Common error

Dropdowns and picklists

Every source value has a matching HubSpot option

Values land blank or fail to import

Multi-select fields

All selected values arrived

Only the first value imported

Dates and date-times

Day, month and time zone

Day and month swapped, dates shifted by a day

Numbers and currency

Decimals, currency code, percentages

Percentages stored as whole numbers

Phone numbers

Country code and format

Numbers without country code

Long text and HTML

Line breaks and formatting

Text cut off or tags visible

Calculated fields

Static value or rebuilt calculation

Formula results frozen at import

Owner fields

Right user on each record

Records without an owner

Check data distributions as well as samples. For every dropdown property, compare the count of records per value in the source and in HubSpot. If "Enterprise" had 1,200 accounts in the old CRM and 950 in HubSpot, something in the mapping merged or dropped values.

Watch for properties that HubSpot sets automatically. Some properties, such as deal probability and close date, can be changed by HubSpot when a record moves stage. Confirm that imported values survived the import and any workflows that ran afterwards.

Test Associations and Record Ownership

Associations are where most migrations lose data quietly. A contact without its company, or a deal without its contacts, looks fine on its own but breaks reports, workflows and the user experience.

Test associations in three ways:

  • Counts per object pair: Compare the number of contact to company, deal to contact, deal to company and ticket to contact links in the source and in HubSpot.
  • Orphan checks: Filter for records that should always have an association, such as deals with no company or tickets with no contact. In most migrations the answer should be zero.
  • Sample review: Open sampled records and confirm each one is linked to the right related records, not just to some record.

Check the primary company for contacts linked to several companies. HubSpot uses the primary company for some activity logging and reporting, and by default the first company associated with a contact becomes its primary company. If the order of the import was wrong, the primary company may be wrong too.

If you use association labels, confirm that each label arrived. HubSpot's import errors include a case where an association label is not found, in which case the association is created without its label.

Ownership needs its own pass. Count records per owner in both systems for each object. Confirm that every active user exists in HubSpot, that records owned by former users went to the agreed replacement, and that teams are set up where reports or permissions depend on them.

Verify Workflows and Integrations

Data checks prove the records are right. Workflow and integration checks prove the system behaves correctly with them.

Start with workflows. HubSpot lets you test a workflow on a specific record before turning it on, on Professional and Enterprise subscriptions. HubSpot notes that no actual actions are executed during a test: it shows the path the record would take and a simulated outcome for each action. Use this on every rebuilt workflow, with test records that should and should not enroll.

Then run a controlled live test. Turn on each workflow for a small set of test records and confirm:

  • The right records enroll, and the wrong ones do not.
  • Each action fires once, with the expected values.
  • Re-enrollment behaves as intended.
  • Emails go to internal test addresses, not customers.

Be careful with timing. Workflows switched on before the full import can enroll every migrated record at once. Agree on the order: import data, test workflows, then turn them on, with enrollment criteria that exclude historical records where needed.

Integrations need the same care. For each connected system, such as an ERP, billing tool, support platform or data warehouse, check:

  • Direction: Which system is the source of truth for each field.
  • Mapping: Fields map to the right HubSpot properties.
  • Matching: Records match on a stable identifier rather than names.
  • Volume: The first sync does not overwrite migrated data with older values.

For integrations built on HubSpot's data sync, HubSpot offers a test sync when you connect a new app with a one-way sync into HubSpot. It simulates the sync and shows how many records will sync, fail or be excluded before any data moves.

Reconcile Reports and Dashboards

Reports are how leadership will judge the migration, so reconcile them before go-live. Take the baseline values you saved from the source CRM and rebuild the same reports in HubSpot.

  • Pipeline value: Open deal amount by pipeline and stage.
  • Closed won: Revenue by month for at least the last 12 months.
  • Activity: Calls, meetings and tasks by owner for a recent period.
  • Support: Tickets by status and priority, if service data moved.
  • Marketing: Contacts by lifecycle stage and source.

When a number does not match, investigate in order: filters first, then field mapping, then the data. Most differences come from a filter interpreted differently, such as a date range or a currency setting, rather than from missing records.

Keep a short log of every difference and its explanation. Some changes are expected, such as excluded records or merged duplicates. Leadership will accept a different number with a clear reason. They will not accept one without it.

If you would rather have a team handle this reconciliation, our approach to CRM migration and data validation compares HubSpot reports against your source baseline before cutover.

Final Go-Live Checklist

Use this as the sign-off sheet for go-live. Each line should have an owner and a pass or fail result recorded before the switch.

Area

Check

Owner

Pass condition

Baseline

Source counts, totals and report values saved

Project lead

Baseline file stored

Records

Counts per object and per segment

Data lead

Match, with exclusions explained

Errors

All import error files reviewed

Data lead

Every error fixed or accepted

Duplicates

Duplicate tool and source ID search

Data lead

No unexpected duplicates

Fields

Sample records and value distributions

Data lead

All mapped fields match

Associations

Counts per object pair and orphan checks

Data lead

Counts match, no orphans

Ownership

Records per owner, users and teams set up

CRM admin

Counts match

Workflows

Tested and switched on in agreed order

CRM admin

Expected actions, no duplicates

Integrations

Mapping, matching and first sync tested

Integration owner

No overwritten data

Reports

Key reports reconciled to baseline

RevOps

Match, with differences logged

Users

Permissions, training and login tested

CRM admin

Users can work on day one

Cutover

Source CRM frozen, final delta imported

Project lead

No changes lost in the gap

Rollback

Plan to pause or revert if a critical issue appears

Project lead

Plan agreed and documented

Do not go live with open fails on records, associations or workflows. Those are the areas where problems spread fastest after launch.

H2: Conclusion

A tested migration rests on a small number of checks done well: counts and completeness against a saved baseline, field values and distributions, associations and ownership, workflows and integrations tested before they run on real data, and reports reconciled with every difference explained. Run the full checklist on a sample import, fix the mapping, then run it again on the full migration.

Start by saving the baseline today, because every later test depends on it. If you would like help planning or running the testing, OneMetric's HubSpot migration services include structured CRM data validation from first test import to go-live. To talk through your own migration, get in touch with OneMetric.

Need confidence in your numbers after a CRM move?

OneMetric can help define reporting requirements, map data, and validate the target HubSpot environment. 
Summarize and analyze this article with:

Frequently Asked Questions

 Record counts, data completeness, field values, associations, ownership, workflows, integrations and reports. Each check compares HubSpot against the source CRM, using a baseline saved before the migration started. 

 By comparing counts, value distributions and sample records against the source. Review every import error file, check for duplicates on the source record ID, and confirm that key reports return the same totals as the old system. 

 Compare association counts per object pair, filter for orphan records that should always have a link, and open sample records to confirm they connect to the right related records. Check the primary company on contacts with several companies. 

Before go-live, in two rounds. Run the full checklist on a sample import first, fix the mapping, then run it again after the full migration and before users switch to HubSpot.

Relatable? We should definitely talk.

All that we’ll cover when we speak:

  • How to measure and multiply the ROI of your HubSpot investment
  • How can you integrate systems to eliminate data silos and make HubSpot the Single source of truth for your GTM teams
  • Your current GTM motions and future roadmap
  • Challenges that you face with your HubSpot
  • What would 'wins' look like for you
Book Meeting