Skip to Content
Q&A

From Excel to Odoo: how to migrate your data without chaos

A step-by-step plan for SMEs: cleaning up, import templates, external IDs and a trial import, so your migration stays a project and doesn't become a mess

Back to all Q&A
September 3, 2026 by
From Excel to Odoo: how to migrate your data without chaos
DAADit Group, Nick

Excel has served you faithfully for years. Customers, products, prices: everything sat in tabs that only you really understood. But now you're moving to Odoo, and the exciting question arises: how do you get all that data across without spending months cleaning up duplicate contacts and wrong VAT codes? With a good step-by-step plan, a migration isn't chaos but simply a project with a beginning and an end. Here's how to approach it.

Step 1: decide what comes along (and what doesn't)

The biggest mistake in migrations is taking everything along "just to be safe". A switch is precisely the moment to leave ballast behind. In any case, take along:

  • Active customers and suppliers, with correct VAT numbers and email addresses.
  • Your product catalogue with sales prices, cost prices and internal references.
  • Open sales orders and purchase orders.
  • The opening balance and outstanding items for the accounts.

Feel free to leave behind: customers who haven't ordered anything in five years, products that have been discontinued and the complete invoice history from 2014. Keep that history as an archive file outside Odoo. That saves import work and keeps your new database clear.

Step 2: clean up before you import

Dirty data in Excel becomes dirty data in Odoo, only now with an error log attached. So set aside time for cleaning up. Deduplicate contacts (sorting by email address works surprisingly well), put phone numbers in one format and check that every product has a unique reference. One afternoon of cleaning up saves you weeks of corrections afterwards.

Step 3: use Odoo's import templates

Odoo has a built-in import function for virtually every part. Open the list view, for example via Contacts, click the gear icon and choose Import records. There, Odoo offers an import template with the correct column names. Use that template: the columns are recognised automatically and you don't have to guess at field names.

Important detail: give every row an external ID (the "id" column), for example klant_0001. If you later import a corrected version of the same file, Odoo updates the existing records instead of creating duplicates. Without external IDs every re-import is a gamble; with external IDs you can re-import as often as you like.

Step 4: dry run first, then for real

Never import directly into your production database. Set up a test environment, for example via a duplicate of your database or a staging environment on Odoo.sh, and run the full import there. Then check three things: is the total number of records correct, are the right prices and VAT numbers in the right place on a sample basis, and does the opening balance match your old accounts? Only when that is correct do you repeat the import in production with exactly the same files.

The three classic import errors

  1. Duplicate contacts. "Jansen B.V.", "Jansen BV" and "jansen bv" become three different customers. Deduplicate beforehand and use external IDs.
  2. Wrong VAT settings. Anyone who sets all products to 21% by default runs into trouble at the first VAT return with 9% products and reverse-charged VAT. Check the taxes per product and per customer.
  3. Amounts as text. Excel happily switches between commas and full stops as the decimal separator. Explicitly set all amount columns to a number format before you export to CSV.

Praktische tip

Set a hard date on which the Excel files "freeze" and agree that nobody works in them after that. Every change after that moment goes straight into Odoo. That way you avoid having to maintain two sets of records side by side and working out afterwards which version was the truth.

Need help with your migration? Contact DAADit Group, and we'll look at your data together before you press the import button.

in Odoo

Question not answered?

Our Odoo consultants are happy to think along with you. Book a no-obligation intro call.

Book an appointment
Odoo Community or Enterprise: which suits your business?
An honest comparison of costs, modules and hosting, without the sales pitch