Migrations / Odoo
Odoo migration guide

Migrate from Odoo

Connect an Odoo instance with its supported external API, validate installed applications, and migrate operational records through the shared reversible workflow.

Prerequisites

An Odoo Custom plan or self-hosted instance with external API access.
For Odoo 19+, a dedicated bearer API key; for Odoo 14–18, an API user, database name, and API key.
Read permissions for the Odoo applications being migrated.
Tenant admin access to Zisyl Migration Center.

Data coverage

Source records currently supported by the shared migration engine.

Zisyl areaSource recordsMigration behavior
Users / HRres.users, hr.employeeUsers are matched by email; employee organization fields are preserved where available.
CRMres.partner, crm.leadCustomers, contacts, vendors, and opportunities use duplicate matching.
Projectsproject.project, project.taskProjects migrate before related tasks.
Support / Knowledgehelpdesk.ticket, knowledge.articleOptional Enterprise applications are skipped when unavailable.
Calendarcalendar.eventCompany event timing, location, and descriptions.
Accountingaccount.account, account.moveAccounts, invoice and bill headers, totals, residual balances, and statuses.

1. Prepare Odoo

Create a dedicated integration identity with the least privileges needed for migration.

  1. 1Create a dedicated Odoo migration user instead of reusing a personal administrator.
  2. 2Grant read access to Contacts, CRM, Projects, Helpdesk, Knowledge, Calendar, HR, and Accounting only when those applications are being migrated.
  3. 3Generate a dedicated API key and record the database name.
  4. 4Confirm the instance is reachable over HTTPS from the Zisyl deployment.

2. Connect the instance

Choose the protocol matching the source Odoo version and save the encrypted bearer credential.

  1. 1Open Admin → Migration Center and choose Odoo.
  2. 2Select Odoo 19+ JSON-2 or Odoo 14–18 JSON-RPC.
  3. 3Enter the instance URL, database, API username when required, and API key.
  4. 4Save and run Test to verify the API identity.

Standard Odoo does not expose a universal external OAuth authorization endpoint. Zisyl uses the official bearer API-key contract; custom OAuth-enabled Odoo installations require their provider-specific endpoints.

3. Select applications and map fields

Odoo applications vary by edition and installed modules, so select only available data types.

  1. 1Choose the Zisyl areas that correspond to installed Odoo applications.
  2. 2Review default field mappings and adjust customized model fields.
  3. 3Choose duplicate behavior for every data type.
  4. 4Set a small per-data-type limit for the first validation.

4. Run a dry run

The dry run reads Odoo without changing either system and produces a record ledger.

  1. 1Run validation and review records to create, update, skip, or resolve.
  2. 2Optional Odoo modules that are not installed are reported without blocking supported modules.
  3. 3Resolve customer, project, and accounting duplicates before starting.
  4. 4Correct permissions or field mappings and repeat the dry run when necessary.

5. Migrate and reconcile

Approved records move in dependency order through resumable background batches.

  1. 1Start the approved migration and monitor progress under Runs.
  2. 2Verify representative CRM, project, helpdesk, HR, and financial records.
  3. 3Invite migrated users to establish new credentials.
  4. 4Use rollback when post-migration validation does not pass.

Passwords, sessions, API keys, and OAuth tokens are never migrated.

Keep the Odoo API key active until all migration batches and verification are complete.

Authentication material never migrates

Passwords, password hashes, MFA secrets, sessions, API keys, and OAuth tokens are excluded. Users are matched by email and invited to establish fresh credentials.

Ready to validate your source?

Sign in as a tenant admin and open Admin → Migration Center.

Open Zisyl