Salesforce Migration Checklist: What Actually Needs to Be Done
A botched Salesforce migration is one of the worst experiences in a RevOps career. Wrong records, missing relationships, broken automation that nobody catches for weeks. The cost: months of cleanup, lost trust, and sometimes lost revenue.
This checklist covers every phase of a real migration, the decisions at each, and the mistakes that cause data loss. Use it as your project plan.
Estimated read time: 9 minutes
The 10 phases of a Salesforce migration
- Source system audit
- Data mapping
- Cleansing strategy
- Sandbox test migration
- Validation rules and dependencies
- Cutover plan
- Production migration
- Reconciliation
- User communication
- Post-migration monitoring
Skip none. Each phase prevents a specific failure mode.
Phase 1: Source system audit
Before mapping anything, document:
- All objects in the source system
- Total record counts per object
- Relationships between objects (one-to-many, many-to-many)
- Data quality (% complete, % duplicate, % invalid)
- Custom fields and what they're used for
- Active integrations (what writes to or reads from this data)
Output: a source data dictionary. If you don't have this, you'll discover surprises mid-migration.
Phase 2: Data mapping
For every source field, decide:
- Maps to which Salesforce field?
- Required or optional in destination?
- Data type transformation needed?
- Default value if source is null?
- Is there a Salesforce field that doesn't exist yet (need to create)?
Output: a field-by-field mapping spreadsheet, signed off by stakeholders.
Phase 3: Cleansing strategy
Bad data multiplies in migration. Decisions to make:
- Deduplicate before or after migration? Before is cleaner, after is faster but messier.
- Standardize text values (state codes, country names) before migrating.
- Decide what not to migrate — old records, test records, inactive users.
- Establish a "frozen date" — data created after the cutover stays in source until manual export.
Phase 4: Sandbox test migration
Run the full migration to a Full or Partial Copy sandbox first. Always.
Validate:
- Record counts match expected
- Relationships preserved (every Contact has correct Account)
- Required fields populated
- Picklist values land correctly (no "value not in picklist" failures)
- External IDs preserved for upsert flows
If anything is wrong, fix the migration script and re-run. Don't fix in production after the fact.
Phase 5: Validation rules and dependencies
This is where most migrations break.
- Validation rules in destination may reject data that source allowed
- Triggers may fire and cascade unwanted updates
- Workflows may send unwanted notifications
Decision: for the migration window, temporarily disable validation rules, triggers, and automation. Re-enable immediately after.
Phase 6: Cutover plan
Document the cutover hour-by-hour:
- T-24h: final source backup
- T-12h: source system frozen (no new records)
- T-6h: data export from source
- T-3h: final cleanse
- T-2h: validation rules + triggers disabled in target
- T-0: production load
- T+2h: validation rules + triggers re-enabled
- T+4h: smoke test, key reports run
- T+6h: stakeholder sign-off
- T+8h: users back in
The 7 mistakes that cause data loss
- Skipping the sandbox test. Every other mistake gets caught here. Don't skip.
- Migrating without disabling triggers. Cascading updates can corrupt millions of records.
- Wrong external ID strategy. If you upsert without a unique external ID, you get duplicates.
- Date format chaos. Excel converts dates silently. Format columns as text before saving CSVs.
- Picklist value mismatches. Source has "USA," destination has "United States." Records fail or get null values.
- Lookup ID mistakes. Inserting Contacts with AccountId from source IDs (not Salesforce IDs) creates orphans.
- Skipping reconciliation. "Looks good" isn't reconciliation. Numbers must match.
Want migration handled for you?
RevKit's Data Migration packages run with the discipline above:
- Single-object migration (up to 100K records): $499
- Multi-object migration with relationship resolution: $1,499
- Full system migration with mapping and reconciliation: from $4,999