20+ years of combined team expertise in Salesforce & NetSuite. Talk to an Expert →
← GuidesSalesforce · Data Migration

A Salesforce Data Migration Checklist You Can Actually Use

Data migration is where Salesforce projects most often surprise their teams. Records that looked fine in the old system load with errors, relationships break, and the first reports after go-live disagree with what people remember. A repeatable checklist turns migration from a scramble into a procedure. This guide lays out the steps from scoping to post-load validation.

Talk to an Expert →

Before you load: scope and ownership

Decide what moves. Typically accounts, contacts, open opportunities, active cases, assets, and key reference data move, while stale history stays in an archive. Assign an owner to each data set who can answer questions about meaning and quality. Without owners, mapping questions float for weeks. Also agree the cutoff date and the freeze rules for the old system, so the data you load is consistent.

  • List each object to migrate and the source system.
  • Record the record counts so loads can be reconciled.
  • Define what is archived and where it can be consulted.
Implementation and integration services →

Cleanse and standardize at the source

Fix problems before they cross: merge duplicate accounts and contacts, standardize country and state values, normalize phone and email formats, and remove records no one uses. Cleansing in the source is repeatable and reduces load errors. Where you must transform during loading, keep the rules in scripts or documented steps, so each trial load applies them the same way.

Mapping and the order of loading

Create a mapping document for each object: source field, target field, transformation, and rules for blanks. Pay particular attention to picklist values, since values that are not in the target list will fail or create inconsistent data. Load in an order that respects relationships: accounts before contacts, contacts before opportunities, products and price books before quotes. Keep external identifiers from the source on each record so child records can find their parents and the migration can be reconciled later.

Our Salesforce practice →

Ownership, history and automation during loads

Decide who owns each loaded record. Assign owners deliberately or the loading user will own everything. If you want the original created dates and creators preserved, plan for the settings that allow it. Automation such as triggers, flows, and email alerts can fire on loaded data and send unwanted messages, so disable or control it during migration and re-enable it after validation.

Trial loads, validation and reconciliation

Rehearse in a sandbox at least twice with full-volume data. After each load, compare record counts with the source, sample records for accuracy, check relationships, and run reports that business users recognize, such as pipeline by owner or open cases by queue. Log every error and its cause, and fix the rule rather than patching the data by hand. By the final rehearsal the process should be uneventful.

NetSuite integration services →

After the load: verification, sign-off and handover

Loading the data is not the end of the migration. Ask business owners to review a sample of records in the real interface, run the reports they trust, and confirm that totals and key accounts look right. Re-enable automation in stages and watch for unexpected behavior. Keep the source system read-only for a defined period, and record the final counts and sign-offs, so questions months later can be answered with evidence instead of memory.

Decisions to settle before the first load

  • Cutover window. Choose a time with minimum activity and enough hours to reconcile.
  • Record ownership. Define the rule for assigning owners to migrated records.
  • Duplicate rules. Decide how matches are detected and resolved during and after the load.
  • Rollback. Define how you would reverse a failed production load.

A realistic first 90 days

  • Days 1 to 30. Profile source data, assign owners, define scope, and start the cleansing.
  • Days 31 to 60. Build the mapping and load scripts, and run the first trial load with reconciliation.
  • Days 61 to 90. Run a full-volume rehearsal, get business sign-off on samples and reports, and execute the cutover.

Pitfalls to avoid

  • Loading dirty data to fix later. Cleanup after go-live is harder because users start editing records.
  • Forgetting external IDs. Without them, relationships and reconciliation become guesswork.
  • Automation firing on loads. Customers do not appreciate emails triggered by historical records. Control automation.
  • Only one rehearsal. The first load reveals problems and the second proves the fixes. Plan for both.

Talk to a Salesforce Expert About Salesforce Data Migration

Share where you are today and a Cold Sun consultant will recommend a practical next step.

Talk to a Salesforce Expert →
Erik Wiltjer
FAQ

Frequently Asked Questions

Keep Reading

Related Guides

Salesforce ERP Integration: Ten Pitfalls to Avoid
Ten common pitfalls when integrating Salesforce with an ERP — ownership, duplicates, limits, error handling, testing and support — and how to avoid each.
Read Guide →
Salesforce Managed Services and Admin Support Explained
What Salesforce managed services and admin-as-a-service include, how models differ, when to use an in-house admin, and how to measure the arrangement.
Read Guide →
Salesforce Org Health Check: What to Review and Fix First
How to run a Salesforce org health check: data quality, automation conflicts, permissions, technical debt, limits, adoption and a prioritized remediation plan.
Read Guide →