Skip to Content

Moving to Odoo: which data to clean up before go-live, and which to leave behind

October 26, 2026 by

Odoo projects tend to be discussed in terms of apps and configuration. What almost always gets underestimated is the data: the customer list exported from the old software, the product file kept in Excel, the unpaid invoices, the balances your accountant hands over. Import all of it as it stands and, on day one, you are back with the duplicates and mistakes you were trying to leave behind.

Here is a sensible order of work for a Belgian small business, and the checks worth running before you click "Import".

1. Pick the cut-over date before you touch any file

Odoo's accounting documentation describes three options: the end of the financial year, the end of a VAT period, or the middle of one. It advises against the last. A single VAT return would then straddle two systems, and you would have to merge both to file it.

Year end is still the easiest, because that is when there is least to carry over. If you file VAT quarterly, the end of a quarter is a fair compromise. Agree the date with your accountant: they are the one who will produce the opening trial balance.

2. Decide what moves and what gets archived

Not everything belongs in Odoo. To get started you need:

  • customers and suppliers you still work with;
  • products you still sell or buy;
  • open invoices and credit notes, on both sides;
  • the opening trial balance and, if you hold stock, the opening inventory count.

Ten years of sales history, customers who stopped ordering long ago, discontinued products: export them, keep the files read-only alongside the rest of your accounting records, and leave them out of the import. Odoo does not need them to send Monday's invoices.

If you are coming from WinBooks Desktop, Odoo has an import module that brings over the chart of accounts, contacts, taxes and journal entries, with an option to take open years only. You still have to sort the data, but nobody has to retype it.

3. Contacts: one company, one record

This is the file that causes the most damage. The same customer exists as "Dupont SPRL", "Dupont srl" and "DUPONT", with three different addresses. Before importing:

  • merge the duplicates and keep one name, the one registered with the Crossroads Bank for Enterprises;
  • fill in the enterprise number and the VAT number, each in its own column;
  • add bank accounts for suppliers you pay by SEPA transfer;
  • split companies from their contact people: companies first, then the people, linked to their company.

The contact record also holds the Peppol address used for e-invoicing. For a Belgian business, that is normally EAS code 0208 followed by its enterprise number. I covered what still goes wrong with Peppol in Odoo in an earlier post.

4. Products: categories first, then check VAT and cost

In Odoo, a product takes its income and expense accounts from its category by default. So import categories before products, and treat them as an accounting decision, not just a way to tidy the catalogue.

While you are at it, check each product's VAT rate (21, 12 or 6%, or a special case) and, if you hold stock, its cost: that is what values the opening inventory.

5. Use the import tool the way it was designed

Odoo imports Excel (.xlsx) or CSV files into almost any object, and ships ready-made templates for contacts, products and invoices. A few rules head off most of the trouble:

  • Keep an external ID column. Reuse the code from the old software, with a prefix ("customer_1042", "product_1042"). You can then re-import a corrected file without creating duplicates, and link records to each other.
  • Respect the order. A record has to exist before another one can point to it: companies before people, categories before products, contacts before invoices.
  • Click "Test" before "Import". An import cannot be undone. You can find the records it created by their creation date, but then you have to fix or delete them yourself.
  • Watch the dates. In a CSV file, 01-03-2026 can be read as 1 March or 3 January. Use real date cells in Excel, or the 2026-03-01 format.
  • Split large files. Past a certain size, an import can stop on a timeout.

Run your first attempts on a test database, not the one you will invoice from. Odoo also recommends keeping the old system running in parallel for a while, just in case.

6. Opening balances without counting receivables twice

This is the classic mistake. Your trial balance shows €12,000 of trade receivables, and that €12,000 is exactly your open invoices. Import the balance and the open invoices as they are, and Odoo shows €24,000.

The method Odoo describes relies on clearing accounts:

  • in the opening trial balance, replace the receivable and payable accounts with two clearing accounts;
  • import each open invoice or credit note as a single line for the amount still due, posted to the clearing account;
  • check that open invoices minus credit notes equal the receivables on the trial balance, the same on the supplier side, and that stock value equals the inventory account;
  • once everything is posted, the clearing accounts should be at zero.

One line per invoice rather than the full detail: the VAT on those invoices was already reported in the old system, and there is no point running it through a second time. On the bank side, the starting balance of the first statement must match the real balance on the cut-over date.

7. Chart of accounts: rename, don't delete

The Belgian localisation installs a chart of accounts based on the PCMN, the Belgian standard chart, along with the taxes and the VAT return. Check it is active in the accounting settings before the first entry: once a journal entry has been posted, the localisation can no longer be changed.

Your accountant may use accounts of their own. Where Odoo has an equivalent, change the code or name of the existing account. Do not delete standard accounts or change their type: some are used as defaults on products, contacts and in the settings, and invoicing can stop working. Accounts with no equivalent can be created or imported.

Before go-live

  • Cut-over date agreed with the accountant.
  • Belgian localisation checked, before the first entry.
  • Contacts deduplicated, enterprise and VAT numbers filled in.
  • Categories and products imported, VAT checked.
  • Open invoices, trial balance and stock reconciled, clearing accounts at zero.
  • A few real invoices issued on the test database, Peppol included.

If you would like a second pair of eyes on your files before the import, that is typically the kind of work we do under an hour pack: info@z80.be or +32 494 111 041.

Map a process in one afternoon: a simple method before you reorganise or buy software