Affiliate Disclosure: We may earn a commission if you later purchase through a qualifying link, at no extra cost to you. No affiliate links are active in this article at publication. Recommendations and criticism are independent. See our editorial policy.
Part of our CRM Software Guides for Small Businesses library.
Cost evidence: Migration work is not included in advertised seat prices. Use our source-linked CRM cost benchmark for the license baseline, then budget data cleanup, testing, and cutover separately.
Search goal
Plan and verify a CRM migration
A downloadable-style CRM migration checklist for backups, mapping, deduplication, testing, reconciliation, permissions, and adoption.
CRM migrations fail quietly. The import reports success, yet companies are disconnected from contacts, deal owners are missing, activities use the wrong dates, and reps return to spreadsheets. A migration checklist must verify business meaning—not merely uploaded row counts.
Quick reference
| Before | Inventory sources, owners, objects, fields, integrations, and quality issues |
| During | Freeze writes, back up, test, import in dependency order, and log errors |
| After | Reconcile counts, associations, permissions, workflows, and user acceptance |
| Acceptance | Business owners validate representative records |
| Retention | Keep source exports and mapping documentation according to policy |


Editorial concept images for decision planning; they are not product-interface screenshots.
Before migration
Name a business owner and technical operator. Inventory every source, including private spreadsheets, form tools, inboxes, billing systems, and previous CRMs. Classify fields as migrate, transform, archive, or delete. Document legal basis and consent where relevant. Define acceptance metrics before touching production data.
During migration
Freeze changes or define a delta process. Export complete backups with timestamps. Import a test batch and confirm field formats, unique identifiers, object relationships, owners, currencies, time zones, and activity dates. Run the production import in a documented order and preserve every warning and error file.
After migration
Reconcile source and target counts by object and status. Sample records from every major segment, not only the cleanest accounts. Test permissions as ordinary users, trigger critical workflows intentionally, and verify that integrations neither duplicate nor overwrite the imported data. Keep the old system read-only until acceptance is signed.
User acceptance
Give each salesperson a list of known accounts to verify. Ask them to find the latest conversation, current deal, next task, owner, and contact association. Track defects centrally and separate migration errors from training questions. The cutover is complete only when daily work can occur in the new CRM.
Create a reconciliation plan before moving data
A migration is complete only when the source and target can be reconciled. Record the source count for every object, the number intentionally excluded, the number imported, the number rejected, and the number merged as duplicates. The equation should balance. “The dashboard looks right” is not a reconciliation method.
| Object | Source control total | Target check | Association check |
|---|---|---|---|
| Contacts | Active rows and unique email count | Imported, rejected, merged | Correct company and owner |
| Companies | Unique domain or company ID count | Imported and duplicate count | Expected contacts and deals |
| Deals | Open and closed totals by stage | Count and value by pipeline | Company, contacts, owner |
| Activities | Notes, tasks, meetings, and dates | Sample count and chronology | Correct parent record |
Preserve immutable source identifiers
Add a source-system ID column for every object and never reuse it. Email and company name can change; a stable identifier lets you update records, diagnose duplicates, and trace an imported value back to its origin. When the target assigns a new ID, keep a crosswalk of source ID to target ID in the protected migration archive.
Design duplicate rules by object
Contacts may match on normalized email, but shared inboxes and missing emails require exceptions. Companies may match on domain, yet franchises and subsidiaries can share a parent domain. Deals rarely have a natural unique key, so use the source deal ID. Test likely false positives and false negatives before applying a bulk merge.
Run a representative dry run
Twenty clean records are not enough if the source contains international characters, blank values, long notes, multiple currencies, historical owners, and many-to-many relationships. Build a small sample containing normal cases and known edge cases. Import into a test environment or reversible batch, inspect the records as end users see them, export them again, and compare the result with the source.
Cutover and rollback checklist
- Freeze source edits or define a final delta window.
- Create a timestamped, read-only source export.
- Save mappings, transformation rules, and import order.
- Import parent objects before dependent records.
- Reconcile counts, values, owners, dates, and associations.
- Have named users execute critical workflows.
- Keep the source available read-only for the agreed retention period.
- Document the condition that triggers rollback rather than improvising under pressure.
Consent status, suppression lists, lawful-basis notes, and retention dates require special care. Do not turn an old address book into a new marketing audience merely because the file imported successfully.
Action checklist
- Inventory all data sources
- Define migration scope and acceptance metrics
- Create immutable backups
- Document field and object mappings
- Establish unique identifiers
- Clean duplicates and invalid values
- Test representative records
- Freeze or capture source changes
- Reconcile counts and relationships
- Test permissions and workflows
- Obtain business-owner acceptance
Common mistakes to avoid
- Declaring success from an upload-complete message
- Migrating obsolete fields nobody understands
- Testing only contacts and ignoring deal associations
- Turning on integrations before establishing ownership rules
Official sources
- HubSpot multiple-object import guide (accessed August 8, 2026)
- HubSpot import file requirements (accessed August 8, 2026)
Frequently asked questions
How long should a CRM migration take?
It depends on record volume, source quality, object relationships, integrations, and approval requirements. Small clean migrations may take days; complex migrations take weeks or months.
What should be backed up?
Preserve complete source exports, attachments where relevant, mapping files, transformation rules, import logs, and a record of excluded data.
How do you validate a CRM migration?
Reconcile counts, sample field values, verify associations, test permissions and workflows, and obtain confirmation from users who know the accounts.
Put this guide into practice
Use the free planning tools
Continue your CRM research
Compare the software after defining the workflow.
Use these requirements and checklists before opening vendor pricing pages. Then test the same real-world scenario in each shortlisted product.
Editorial note: this guide was researched and reviewed by the Northstar Select editorial team on August 8, 2026. Commercial details should be reconfirmed before purchase.
Reproducible verification checklist
| Check | What to record | Pass condition |
|---|---|---|
| Plan and seat rules | Selected edition, paid seats, billing interval, currency, and tax treatment | The same configuration can be priced again from the official page |
| Workflow fit | One lead from capture through assignment, follow-up, and close | No required step depends on an undocumented workaround |
| Data portability | Export format, identifiers, associations, activities, and attachments | A sample export opens cleanly and preserves required fields |
| Upgrade trigger | The first limit that forces a paid plan or add-on | The trigger is tied to an actual team requirement |
Additional official source: HubSpot record export documentation (checked August 9, 2026).
Cutover control
Run a rollback rehearsal before the production import
A migration is not ready merely because a sample CSV imports without an error. The team must prove that it can identify a bad batch, remove or reverse it, restore the source of truth, and communicate the decision before sellers continue editing two systems.
| Control | Evidence | Acceptance criterion |
|---|---|---|
| Frozen source export | Timestamp, owner, row counts, and file checksum | The original dataset can be reproduced |
| Import batch ID | Unique value added to every test row | All imported records can be isolated |
| Record reconciliation | Counts by object, owner, stage, and required field | Expected and imported totals match |
| Association check | Sample contacts, companies, deals, and activities | Relationships survive the import |
| Rollback clock | Start and finish time for reversal | Recovery completes inside the agreed window |
| Go/no-go owner | Named approver and communication channel | One person has authority to stop cutover |
Use at least one deliberately malformed row, one duplicate, one missing owner, and one record with multiple associations. Confirm that errors are visible and that the remediation process does not create silent duplicates. Then export the test records from the target CRM and compare identifiers, dates, currencies, consent fields, notes, and relationship keys with the frozen source.
Go only when critical fields reconcile, associations are correct, users can complete the agreed workflow, and rollback has been timed. No-go when the team cannot isolate the batch, required history disappears, or the recovery procedure depends on undocumented vendor support. Keep the source system read-only until final reconciliation is signed off.
