Work from the first export
through the final review.
Map columns from CSV and Excel files to Odoo fields in one workspace. OdooMap helps you prepare the migration and gives your team a shared view of what will change before you run it.
Map columns
default_codenamelist_priceKeep your client’s column names. Map CSV or XLSX files to Odoo fields.
Start with the file your client actually sent
Upload CSV or XLSX data into a client project, choose the worksheet, and inspect the parsed data. The source and your saved work stay together, so you can pick up where you left off without hunting for the right version of the spreadsheet.
Match the columns to what they mean in Odoo
The sample above keeps the client’s column names: Item Number, Product Description, and Selling Price. Those map to Internal Reference (default_code), Name (name), and Sales Price (list_price). The names are a starting point: check the values and the selected Odoo model before accepting a match. A category column needs a relationship to the right record, not just a similar field name.
Try field mapping with the sample product file to see how those decisions carry through to review. No account required.
One complete list, one coordinated import
Bring a SKU list with categories and attributes, or contacts with companies and addresses. Choose the source keys and grouping columns; OdooMap builds the related model steps and their order. Review every affected model and deliver the plan together. Automatic SKU variants currently require Odoo 19 and new product templates; ambiguous existing attributes are blocked for review.
Get a head start on field mapping
OdooMap compares column names, inferred types, and value patterns with the target fields. It also uses mappings your reviewers previously confirmed or rejected within the same project and target model, so those decisions can inform the next set of suggestions.
After the initial mapping and gap report, keep working manually or choose “Bring in Mappy”. Mappy is OdooMap’s optional AI assistant: it uses an advanced model to generate a saved preparation plan for the current file. The plan can suggest a mapping, a supported cleanup recipe, or an Odoo field request, each with reasoning for you to review. Select the actions to apply to the draft; unchecked actions are rejected. Edit accepted changes in the usual mapping and preview editors.
The “What the AI sees” panel shows the request and whether the provider is enabled. It includes column descriptions and target field metadata, with source cell values masked or tokenized for mapping review. Optional category advice follows your preferred hierarchy, explains each choice, and can suggest reporting improvements. It requires explicit sharing of selected product text; locked branches are protected. Built-in matching and validation remain available when AI is disabled or unavailable. Read about AI and data handling.
The estimate names the model and provider and shows the maximum credits. Generation starts only after you confirm. Mappy does not invent missing prices, tax decisions, or record identities. It leaves unresolved gaps for the data owner. It never writes to Odoo, approves an import, or bypasses validation. Custom field requests still require administrator approval. AI availability depends on your organization’s plan and enabled providers; the manual path is always available.
Catch problems while they’re still easy to fix
Mapping checks highlight missing required fields, mismatched types, selection values that don’t fit, and relationships that need resolving. These checks run independently of AI as you read and save your mapping, giving you a practical list to work through before import. Intentionally skip unused columns instead of losing them silently. Click a preview cell to correct one record, or use a column fix for repeated problems. Original source values remain intact and corrections keep a reason for review.
Already working through a failed import? Our notes on Odoo import errors explain how to narrow a problem down before trying the file again.
Give related records a reliable way to find each other
Choose stable source keys and external IDs, then define relationships between migration steps or existing Odoo records. Validate the proposed rows before execution, including the dependencies that determine which records need to be created first.
Review the changes before they reach Odoo
Inspect the proposed values and target records, then export ordered CSV files with a manifest or ask a project administrator to approve and run supported operations. If the inputs change, the plan needs validating again. After execution, row outcomes help you investigate uncertain results before retrying.
Check the fit for your implementation
OdooMap supports CSV and XLSX sources, field mapping, supported value transformations, explicit relational references, and approved create/upsert workflows. Migration plans support up to 10,000 rows and 50 steps. Binary attachments, arbitrary business actions, and destructive deletes are outside the current scope.
Your Odoo version, target models, permissions, and installed modules all affect how a migration behaves. Start with representative data in a sandbox, particularly where business actions have side effects that cannot be rolled back automatically.
Tell us about your setup if you’d like help checking the fit.