Decide what must move
Inventory the source systems and identify owners for customers, suppliers, products, stock, financial balances and other records in scope. Distinguish master data, opening positions and transaction history. Each category can require a different preparation and validation method.
Agree which inactive, duplicated or incomplete records should be retained, corrected, archived or excluded. Include attachments and historical detail explicitly in the scope rather than assuming everything in the source system will be migrated. Confirm the target Odoo version, modules and company configuration before finalizing mappings.
Map identifiers and relationships
Maintain a mapping record with the source field, target field, transformation, required values and accountable owner. Review company assignments, units, currencies and naming conventions with the teams that use them.
Odoo supports External IDs for imports and relationship references. Keep those identifiers stable when updating previously imported records, and avoid collisions. Import related records in an order that allows their references to resolve. Verify the exact field mappings and import behavior against your target version’s documentation.
Run controlled trial imports
Use a non-production environment with the intended module configuration. Start with a representative sample that includes important relationships and difficult records, then test the planned import sequence and document any corrections.
Use the import validation tools available in the target version, but do not treat a successful file import as business acceptance. Open representative records and test the downstream workflows that depend on them. Retain versioned source extracts, mapping rules and trial results so the migration can be repeated consistently.
Reconcile results with process owners
Define a reconciliation report for each data category. Record counts alone are insufficient: review relationships, totals, opening positions and the business meaning of a representative sample. Finance and operations owners should agree the checks relevant to their records.
Track rejected records and approved exceptions as well as successful imports. Assign each unresolved issue to an owner and distinguish an accepted exclusion from a record that was unintentionally lost. Retest corrected batches and related workflows before approving the final sequence.
Rehearse the cutover and handover
Plan the source-data freeze, final extraction, import order, checks and decision points. Identify who can approve the switch, how users are informed and which systems remain authoritative during the transition. Test backups and the agreed recovery approach in the rehearsal.
After cutover, reconcile the final results and monitor the first operating cycles. Give support teams the migration references, known exceptions and escalation contacts. Treat new discrepancies as traceable issues against the approved baseline rather than correcting records without a recorded reason.
Implementation checklist
- Assign a data owner for each record category.
- Agree master data, opening positions and history scope.
- Document field mappings and stable identifiers.
- Rehearse imports in the target configuration.
- Reconcile totals, relationships and exceptions.
- Approve cutover, recovery and support responsibilities.
Technical references
Related technical guides
- Connecting AI agents to enterprise systems
- Is your CCTV ready for industrial video analytics?
- How to evaluate an industrial video analytics pilot
