Data migration into Business Central

How to plan and run a Business Central data migration — what moves, what doesn't, and the tools that get you there.

Updated 2025-09-08

Data migration is usually the riskiest part of a Business Central implementation. The technology is fine; the discipline is hard. Here's how the project should run.

What you typically migrate. Master data first: chart of accounts, dimensions, customers, vendors, items (with prices, units of measure, costing methods), bank accounts, fixed assets, employees, and resources. Then opening balances: trial balance, open AR and AP transactions, open sales and purchase orders, inventory on hand by location, fixed-asset registers. Optionally, historical posted documents for legal or operational reference.

What you usually don't migrate. Years of detailed GL transactions — typically you load opening trial balances and keep the old system available read-only for history. Workflow history, sent emails, and report definitions are also typically left behind. The cost of moving deep history rarely pays back.

The tools. Microsoft ships two main paths. The Data Migration wizard (in BC under Assisted Setup) handles common sources — QuickBooks, Dynamics GP, generic Excel — with mapping templates. For larger or unusual migrations, Configuration Packages are the workhorse: you export the BC table structure as Excel, fill it in offline, validate, and import. Configuration Packages support related tables (customer + its address + its contacts in one package) and can be re-run iteratively. For high-volume or repeated runs, the Business Central REST API with a real ETL tool (Azure Data Factory, Power Automate, custom code) is the right answer.

The cadence. A typical project runs three migration cycles. Cycle 1 is a structural dry run — load all master data, accept errors, find the messy fields. Cycle 2 is a content dress rehearsal — clean data, opening balances, full validation by users. Cycle 3 is the real cutover — final data export from the old system after period-end close, load into BC, reconcile, go live.

Reconciliation is non-negotiable. Trial balance ties to opening journal posted in BC. AR ageing ties to customer ledger entries. AP ageing ties to vendor ledger. Inventory on hand ties to item ledger valuation. The implementation isn't done until all four reconcile to the penny.

Owner. Data migration is the customer's job, with the partner's tooling. Pretending it's the partner's job is the most common reason migrations slip.

Related guides