Skip to main content
D365ConsultantDivision of Sataware
Migration guide

Dynamics 365 data migration: how to plan it, which tools to use and how to avoid a bad go-live

A Dynamics 365 data migration moves customers, products, open transactions and the history you still need from an old system into Dynamics 365. It works in five stages: decide what moves, clean it at the source, map it to Dynamics 365 tables, rehearse the load at least twice, then cut over and reconcile. When a migration goes wrong, the cause is usually skipped cleanup or skipped test runs, not the tool.

Updated

Two platforms
Dataverse for CRM apps, data entities for finance and operations
Two or more
rehearsal loads before the real cutover
Sign-off
record counts and balances agreed by the business
Person in a suit typing on a laptop at a white desk

What does a Dynamics 365 data migration strategy need to decide?

A migration strategy is a short written document, agreed before anyone writes a load script. It answers four questions. Which records move, and from which date? Which system is the source of truth for each one while both systems run? Who in the business owns the quality of each data set? And what counts as a successful load, in numbers someone can check?

Start with the first question. Moving every record you have ever created is the slowest and riskiest option. A common pattern is to move all active master data (customers, contacts, vendors, products), open transactions (open quotes, orders, cases, invoices) and opening balances, then keep closed history in a read-only archive or a reporting database. People can still look up an old order, and Dynamics 365 starts clean.

Write down what will not move as well. A list of retired fields, dead picklist values and duplicate records that will be merged saves arguments during testing, when someone notices a field is missing. Decide too which account runs the loads: a dedicated migration user with a temporary role, removed after cutover, as described in our Dynamics 365 security and compliance guide.

Which Dynamics 365 apps are you migrating into?

Dynamics 365 is two platforms, and the tools differ. Sales, Customer Service, Field Service and Customer Insights store data in Dataverse. Finance, Supply Chain Management and the other finance and operations apps load data through data entities and data packages in the Data management workspace.

Many projects move into both at once, for example a CRM system into Sales and an old ERP into Finance. Treat them as two migrations with one shared customer and product list, and agree which side creates a new customer after go-live. If you are moving to Business Central instead, our Business Central data migration checklist covers that product.

Microsoft tools for Dynamics 365 data migration

Tool
Target
Good for
Watch out for
Import from Excel or CSV
Dataverse
Small, simple tables loaded by an admin
No transformation and weak error handling for large volumes
Dataflows (Power Query)
Dataverse
Repeatable loads with cleanup steps, run by a power user
Lookups to other tables need careful key setup
Configuration Migration tool
Dataverse
Reference and setup data moved between environments
Built for configuration, not millions of transaction rows
Azure Data Factory
Dataverse and others
Large volumes, many sources, scheduled rehearsals
Needs someone who can build and monitor pipelines
Data management packages
Finance and operations apps
Master data, opening balances and open documents through data entities
Entity sequencing and number sequences must be planned
Third-party ETL tools
Both
Teams that already use SSIS or a similar tool
Extra licence cost and one more skill to maintain

Dynamics 365 data migration steps, in order

  1. 1

    Profile the source

    Count records per table, find duplicates, blank required fields and values that will not fit the new option sets. The profile becomes the cleanup to-do list.

  2. 2

    Clean at the source

    Merge duplicates and fix bad data in the old system, where users know the records, rather than inside load scripts nobody reviews.

  3. 3

    Map fields and keys

    Map every source field to a Dynamics 365 column, and store the old system's ID on each new record so loads can be rerun without creating duplicates.

  4. 4

    Set the load order

    Load parents before children: users and business units, then accounts, contacts, products and price lists, then opportunities, quotes, orders and cases, then notes and attachments.

  5. 5

    Rehearse the load

    Run a full mock migration into a sandbox, time it, fix what failed and run it again. The last rehearsal tells you how long the cutover window must be.

  6. 6

    Cut over and reconcile

    Freeze the old system, run the final load, compare counts and balances with the business owners, and only then open Dynamics 365 to users.

Dynamics 365 data migration best practices

  • โœ“Use alternate keys or an external ID column so a rerun updates records instead of duplicating them.
  • โœ“Create every user and team before loading owned records, or map old owners to a holding user and reassign later.
  • โœ“Turn off plug-ins, flows and duplicate detection rules that fire on create during bulk loads, and turn them back on afterwards.
  • โœ“Plan for Dataverse service protection limits by loading in parallel batches with retry logic instead of one long single-threaded run.
  • โœ“Load open transactions with their real dates and statuses, so reports and ageing are right on day one.
  • โœ“Keep a reconciliation sheet per table: source count, loaded count, rejected count and the reason for each rejection.
  • โœ“Ask the business owner of each data set, not the project team, to sign off the final numbers.

Why do Dynamics 365 migrations run late?

The same three problems cause most delays. Data cleanup starts too late, so the first rehearsal turns up a long list of errors a few weeks before go-live. The load order is wrong, so child records fail because a parent was not there yet. And nobody owns the sign-off, so the cutover weekend ends with a debate about whether the numbers are close enough.

Microsoft's Success by Design implementation guide treats data migration as a workstream with its own plan and owner for the same reason. If a migration is already behind, our project rescue work usually starts with the reconciliation sheet, because it shows exactly which tables are not ready.

Questions about Dynamics 365 data migration

How long does a Dynamics 365 data migration take?

It depends on the number of source systems, tables, the state of the data and how many rehearsals are needed. The cutover itself is often a weekend, but the profiling, cleanup, mapping and rehearsals around it run for weeks. A rehearsal load tells you the real duration better than any estimate made upfront.

Should we migrate all our history into Dynamics 365?

Usually not. Most teams move active master data, open transactions and opening balances, and keep closed history in an archive or reporting database they can still search. Moving everything increases load time, storage use and the number of errors to fix, for records few people open.

Can we migrate from Salesforce to Dynamics 365?

Yes. Accounts, contacts, leads, opportunities, cases, activities and attachments all have a place in Dataverse. The work is in mapping custom objects and picklists, keeping record owners and dates, and moving files. See our [Dynamics 365 Salesforce integration guide](/integrations/dynamics-365-salesforce-integration/) if both systems will run side by side for a while.

What is the difference between data migration and integration?

A migration is a one-time move followed by switching the old system off. An integration keeps two live systems in sync for as long as both are used. Some projects need both: a migration for history and an integration while teams move over in waves.

Who should own the data during a migration?

The business. A finance lead owns balances, a sales lead owns accounts and contacts, a service lead owns cases. The project team builds and runs the loads, but the owners decide what is clean enough and sign off the reconciliation.

Talk to us about your project.

Tell us what you run today and what has to change. A senior consultant replies with a written next step.

Get started

Start with a scoping conversation.

Thirty minutes with a senior consultant, and no sales pitch. We look at how you run today, tell you plainly whether Business Central is the right fit, and give you a realistic sense of scope, cost and timeline before you commit to anything.

What happens next
1
We review your inquiry
A consultant reads it before the call. There is no discovery questionnaire to fill in.
2
30-minute scoping call
Your processes, your current systems, and the gaps that matter most.
3
Written summary & estimate
Indicative phases, license counts and next steps, in writing after the call.
A senior consultant reads every message
NDA signed before discovery on request
No obligation on the first call
Senior consultants on every call
Request your scoping call
A few short fields. A senior consultant reads and replies.
No obligation
Your details stay with our consulting team. We never share them or add them to a mailing list.

Trusted partners

Microsoft Solutions Partner ยท AWS Partner

Why teams pick us

Dynamics 365 consultingWhat we do
Free readiness assessment2-hour workshop
Reply in one business dayFrom a senior consultant
Scoping in 48 hoursCalls available fast
Fixed scope, fixed priceAgreed in writing
Microsoft-certified teamMB-800 and more
Live chatA real person replies
Secure HTTPSEncrypted end to end
Call now