Odoo Data Import: How to Load Data Without Errors
How to import data into Odoo: templates, external IDs, import order, products, contacts, opening balances, open orders, common errors and how to test.
Bad data makes a good ERP look broken. Most data problems at go-live come from imports done in a hurry. Here is how to do them properly.
Use Odoo's import tool
Every list view in Odoo has an import option. Download the template, fill it in, and Odoo maps columns to fields. For big or repeated migrations, scripts using the API are better, but the standard tool covers most needs.
Use external IDs
Give every record an external ID, such as cust_10045 or prod_AB123. With external IDs you can:
- Re-import the same file to update records instead of creating duplicates
- Link records across files, for example a product's vendor
- Trace every record back to the old system
Import in the right order
Records depend on each other. A typical order:
- Chart of accounts, taxes, journals
- Product categories, units of measure
- Contacts: customers and vendors
- Products and variants
- Vendor price lists and price lists
- Bills of materials
- Opening stock
- Opening balances and open invoices
- Open sales and purchase orders
Clean data first
Before importing, remove duplicates, fix spelling of countries and states, standardise units and delete records nobody uses. Migrating five years of inactive customers just makes search slower.
Opening balances
Opening stock is usually imported through an inventory adjustment with quantities and values. Opening account balances are a journal entry. Open receivables and payables are imported as individual invoices and bills so they can be paid and reconciled.
Common errors
- "No matching record found" for a related field: the linked record does not exist or the name does not match exactly.
- Wrong decimal or date format: set the format in import options.
- Duplicates: missing external IDs.
- Timeouts on big files: split into batches of a few thousand rows.
Test, then test again
Run a full trial migration into a test database. Check totals: number of customers, stock value, receivables total. Have users check samples. Repeat until the numbers match, then do the final load at cut-over.
For a broader view see our ERP data migration guide and Excel to ERP migration, or our data migration service.
Frequently asked questions
What file formats can Odoo import?
Odoo imports CSV and Excel files (XLS and XLSX) through the standard import tool.
What is an external ID in an Odoo import?
A unique reference you assign to each record. It lets you update records with later imports and link records across files without duplicates.
Written by
ERP Builders Architecture Group · Solution architecture
The engineers responsible for integration design, data migration tooling and performance work across ERP Builders projects.
Related articles
Moving From Excel to ERP: A Step-by-Step Plan
How to move from spreadsheets to an ERP: mapping your spreadsheets, cleaning data, choosing what to migrate, opening balances, training and retiring the old files.
Odoo 20 Upgrade Checklist: Breaking Changes to Check
An Odoo 20 upgrade checklist covering breaking changes: record rules, tracking values, account groups, Field Service, payroll work entries, icons and the RPC API.
Odoo Upgrade Guide: Moving to a New Version Safely
How to upgrade Odoo to a new major version: assessing custom modules, upgrade service vs OpenUpgrade, test cycles and a cutover plan that holds.
Next step
Turn the plan into a working system.
Book a consultation with an ERP consultant. No sales script — just an honest look at your situation.