47-Point CRM & ERP Migration Readiness Checklist
Use this before, during, and after your migration to guarantee zero data loss
Section 1: Pre-Migration Planning
Document all source system objects, fields, and relationships
Include every custom field, custom object, and relationship — even ones that feel redundant. Discovery gaps are the #1 cause of post-migration data loss.
Identify all active integrations connected to the source system
Map every Zapier workflow, API connection, webhook, and native connector. Each one needs a cutover plan before go-live.
Define data ownership — assign a named data owner for each major object
Contacts, Accounts, Deals, Cases — each needs a named owner who signs off on data accuracy post-migration.
Agree migration scope in writing — what goes in, what stays behind, what gets archived
Scope creep during migration is extremely costly. Define the boundary in a signed scope document before work begins.
Confirm target system has been provisioned and licensed with sufficient storage
Migrating to an under-licensed system is a common failure point. Verify storage limits, user counts, and feature tiers upfront.
Set a go-live date and work backwards with a signed-off project timeline
A deadline without a backwards-planned schedule is just a wish. Build the milestone schedule first, then assign the date.
Identify and brief all internal stakeholders: IT, Sales, Operations, Legal/Compliance
Migrations fail when key stakeholders aren't aligned. Brief everyone before the project kicks off, not after the first problem.
Section 2: Data Quality Audit
Run a duplicate-detection scan on all Contact and Account records
Duplicates migrate and multiply. Deduplication before migration prevents a messy new system from day one.
Identify and resolve blank mandatory fields (especially email, phone, company name)
Mandatory fields in the target system will reject records that don't have them. Resolve gaps before extraction.
Standardise date formats across all date fields
DD/MM/YYYY vs MM/DD/YYYY mismatches cause silent data corruption. Audit every date field before extraction.
Validate all email addresses (format check + MX record check for key accounts)
Invalid email addresses break email sync in the new system. Run a format check plus MX record check for key accounts.
Purge or archive records that haven't been touched in 3+ years
Migrating dead records adds cost, time, and noise. Create a clear archival policy and apply it before migration.
Document all known data quality issues before migration starts
Creates a formal baseline. Any issues discovered post-migration can't be attributed to the migration itself.
Section 3: GDPR & Legal Compliance
Confirm a lawful basis for processing is documented for every contact in scope
Article 5(1)(a) UK GDPR requires a documented lawful basis. If you can't evidence consent or legitimate interest, those records can't migrate.
Remove or suppress all contacts who have unsubscribed or requested erasure
Migrating suppressed contacts reactivates them in the new system — a direct GDPR breach and ICO enforcement risk.
Check if any data is being transferred outside the UK/EEA — verify SCCs or adequacy decisions
If yes, Standard Contractual Clauses (SCCs) or adequacy decisions must be in place under Articles 44-50 UK GDPR.
Ensure your Data Processing Agreement (DPA) with the new system vendor is signed
The new system becomes a data processor under Article 28. A signed DPA is a legal requirement, not optional.
Log the migration as a processing activity update in your Record of Processing Activities (RoPA)
Article 30 requires your RoPA to reflect current processing. A system change is a processing change — update it.
Notify your DPO (if applicable) and confirm no DPIA is required for the migration
If the migration involves high-risk processing, a Data Protection Impact Assessment may be required under Article 35.
Section 4: Technical Readiness
Confirm API access or export capability for the source system
Rate limits, authentication method, and data format (JSON, CSV, XML) all affect extraction planning. Confirm this before scoping begins.
Map every source field to a target field — document unmapped fields explicitly
Unmapped fields are data loss events waiting to happen. Every field needs a destination or a documented decision to exclude it.
Identify custom objects or custom fields that have no equivalent in the target system
These require custom field creation in the target before migration. Missing this step means data that has nowhere to land.
Confirm file/attachment migration strategy (inline, linked storage, or excluded)
Each approach has implications for storage costs and user experience. Decide the strategy before extraction begins.
Test extraction of a 1,000-record sample before committing to full migration
A sample extraction reveals API quirks, encoding issues, and field-type mismatches before they affect 500,000 records.
Verify target system can handle the expected record volume without hitting plan limits
CRM/ERP plans often have record caps. Exceeding them mid-migration stops the project cold.
Confirm all required custom fields, picklist values, and pipeline stages are created in target
The target system must be fully configured before any records are loaded. Configuration after migration creates data inconsistencies.
Section 5: Test Migration
Run a full test migration to a sandbox/staging environment (not production)
Never test in production. A sandbox migration reveals problems that would be catastrophic in the live environment.
Validate row counts: source record count = target record count for every object
Row count reconciliation is the most fundamental data integrity check. Any discrepancy must be explained before go-live.
Spot-check 50 records manually across different record types, ages, and owners
Automated counts don't catch field-level corruption. Human spot-checks do. Include oldest records and edge cases.
Test all active workflows/automations in the target system with migrated data
Workflows built against clean, newly-created records often break on migrated historical data. Test every automation.
Have a key end-user (not IT) validate their top 20 most-used records look correct
IT sign-off is necessary but not sufficient. The business user who lives in the CRM will catch issues that technical reviewers miss.
Section 6: Go-Live Procedure
Communicate go-live date and expected downtime to all affected users (min. 5 working days notice)
Unexpected system changes destroy user trust and adoption rates. Five working days is the minimum — more is better.
Freeze source system data entry for the final migration window
Data entered after extraction but before cutover is lost. Agree a data freeze period and enforce it across the business.
Run final delta migration for any records created/modified during data freeze
Even a short freeze period generates new records. A delta migration captures everything up to the final cutover moment.
Verify final row counts match before cutting over
Never cut over without confirming the final migration count matches the source. This is your last zero-data-loss checkpoint.
Update all integrations and API connections to point to the new system
Any integration still pointing at the old system will write to the wrong place after cutover. Update every endpoint.
Redirect any SSO or identity provider connections
SSO misconfiguration on go-live day locks users out. Test the new SSO connection before the old one is retired.
Confirm all user accounts have been provisioned in the target system before go-live
Users who can't log in on day one immediately lose confidence. Provision all accounts 48 hours before go-live.
Section 7: Post-Migration Validation
Re-run row count reconciliation 24 hours after go-live
New record creation in the target can mask discrepancies. A 24-hour post-go-live count confirms baseline integrity.
Check all automated workflows and triggers are firing correctly in production
Production environments behave differently from sandboxes. Validate every workflow within the first 24 hours.
Confirm email sending/receiving is working from the new CRM
Email integration failures are the most-reported post-migration issue. Test sends and receives explicitly.
Validate reporting dashboards match pre-migration baselines (within acceptable variance)
Dashboard numbers that don't match the old system indicate a data integrity issue requiring investigation.
Collect sign-off from at least 3 business users confirming their data looks correct
Formal written sign-off from business users creates an audit trail and closes the validation loop.
Section 8: Rollback & Contingency
Confirm source system remains live and read-only for a minimum of 30 days post-migration
The source system is your safety net. Keep it live and accessible for 30 days — insurance against any edge case discovered post-go-live.
Document the rollback procedure — who authorises it, how long it takes, data state
A rollback decision made under pressure without a documented procedure will cause chaos. Write it before go-live.
Archive a full export of the source system at the point of final migration
Store securely for 2 years minimum. This is your forensic record if any data dispute arises after migration.
Schedule a 30-day post-migration review with all stakeholders
A structured review at 30 days surfaces any remaining issues, confirms business adoption, and formally closes the project.
Want APEX to score your migration readiness?
Get a personalised complexity score, 3 risk flags, and a fixed-price recommendation in under 5 minutes.
Talk to APEX →