NAV SEAL Migration is a free Business Central app that moves your data from NAV, GP or any other system into Business Central online, checked and reconciled before go-live.
You export your data to Excel or CSV files, and the app imports, validates, applies and reconciles them inside Business Central. It is built from 25+ years of NAV and Business Central migrations, and it is free to use, with or without NAV SEAL's help.
This article is for the people running the migration: usually a finance lead together with whoever extracts the data from the old system.
You need Business Central online, version 28 (2026 release wave 1) or later, and a sandbox to rehearse in.
- Run it in a sandbox first. Do at least one full trial migration in a sandbox copy of your company before you migrate into production.
- Install the app in both the sandbox and the production environment.
- Assign the Data Migration profile to the people running the migration. It gives them a role center with the migration projects, files and progress.
- Decide what to bring across. Master data, opening balances and how much history: the free Data Migration Assessment helps you decide.
- Set up the basics in Business Central first: posting groups, dimensions and number series. The migration brings in data, not your setup.
How a migration is organized
One migration project covers one company, organized into four groups, each with its master data, opening balances and history.
The project card shows these groups as a tree, with the files and progress of each area. Any area can be taken out of scope, so you can migrate only what you need.
Order follows prerequisites, not a fixed sequence. An area waits only for the areas it depends on. Open receivables wait for customers, inventory waits for items, and items wait for vendors. The groups run in parallel: vendors can be applied while customers are still being validated. An area with no files in the project never holds anything up.
The migration step by step
You set up the project and templates once; after that, every file goes through upload, import, validate, apply and reconcile.
- Create a migration project. Set the company details, the file delimiter (comma by default), the journal batches for opening balances and the opening balance account.
- Prepare your mapping templates. Run Create Default Mappings on a template. Because the file headers match the app's field names, the mapping works straight away; adjust column and value mappings only where your files differ.
- Upload the files and the manifest. The manifest lists every file, its area and its control totals. Each file, or each chunk of a large file, becomes one line on the project.
- Import. The app reads each file into a holding area inside Business Central. Rows with conversion errors or missing required values are logged and skipped; nothing touches your real data yet.
- Validate. The app checks every row against Business Central and logs every problem in one pass, so you can fix your files once instead of in rounds. Validation never changes Business Central data.
- Apply. Master data is created, opening balances become journal lines for your finance team to review and post, and history goes into history tables.
- Reconcile. Row counts and control totals are compared with the manifest, so you can see that everything arrived.
Use Validate Ready Files and Apply Ready Files to start everything that is allowed right now, and run them again as jobs finish. Each step can run in the foreground or as a background job, one job per file and step, so chunks of the same area run in parallel.
Files that follow these rules import without mapping work; most import problems come from dates, decimals and option values.
The manifest (manifest.json) lists every file with its area, file name, rows, an optional chunk number, the sheet name for Excel files, and a controlTotal.
How opening balances tie out
All opening balances meet on one opening balance account, which nets to zero once every batch is posted.
- Each area gets its own journal batch, set on the project: trial balance, open receivables and open payables go to general journal batches, and inventory goes to an item journal batch.
- Nothing is posted automatically. The app creates journal lines; your finance team reviews and posts them.
- The general journal lines balance against the opening balance account. Inventory posts against the inventory adjustment account from General Posting Setup, so point that account at the opening balance account during the migration.
- Leave the subledger control accounts out of the trial balance. Receivables, payables and inventory reach those accounts through open receivables, open payables and inventory. When those areas are in scope, validation rejects trial balance rows on these control accounts and on the opening balance account itself.
- No VAT or sales tax is calculated. Trial balance lines clear the posting type and groups the G/L account would otherwise copy in.
After posting all batches, check that the opening balance account is zero. If it is, every opening balance is accounted for.
History is stored in separate history tables, so you can look it up in Business Central without it posting into your new ledgers.
- Sales and purchase history opens from the Customer and Vendor cards.
- Item history opens from the Item card.
- G/L history has its own page.
Because history isn't posted, it adds no entries to your ledgers and doesn't affect balances, reports or costing. You decide how many years to bring; large volumes are fine, since history is loaded in chunks.
Errors, restarts and large volumes
A problem stops only the row or file it affects, and every step can be rerun from where it stopped.
If a step fails part-way, it rolls back to its last commit, the file is marked Failed with the error text, and only that step needs to be rerun. A failed import resumes from the last committed row.
Large volumes: CSV files are read line by line, never loaded whole. Split large history files into chunks, for example one file per month; each chunk runs as its own background job. Use Excel only for setup and master data.
These areas aren't in the app yet; NAV SEAL can migrate them for you alongside it.
- Prices and price lists
- Contacts
- Bank accounts
- Fixed assets
- Item variants
- Lot and serial numbers in inventory
- Files pulled directly from Azure Blob Storage or SharePoint (files are uploaded for now)
You can run the migration yourself, or have NAV SEAL run it with you; both start with a free Data Migration Assessment.
- Free Data Migration Assessment: we review your current system, help you decide between an upgrade and a clean start, and recommend what to bring across. Book an assessment
- Learn more: Business Central Data Migration on navseal.com
- Questions while migrating: submit a ticket through this help center.