Integrations

Odoo connector mapping guide

Field mapping and validation guidance for the Odoo ERP connector.

Connection and config

  • Test connection: POST /si/connectors/odoo/test-connection.
  • Store config per environment: POST /si/connectors/odoo/config (credentials encrypted at rest).
  • Fetch stored config summary: GET /si/connectors/odoo/config (secrets redacted).

What the dashboard preview shows

  • We read customer invoices (account.move with move_type = out_invoice) via the connector test/preview buttons.
  • The preview keeps only the canonical fields the SI pipeline needs: invoice number, issue date, currency, total amount, and status.
  • No secrets are stored in logs; connector configs are redacted.

Field mapping -> canonical invoice

  • invoiceNumber <- name (falls back to ref when name is empty or /).
  • issueDate <- invoice_date (ISO date).
  • currencyCode <- currency_id.name (e.g., NGN, USD).
  • totalAmount <- amount_total (gross amount).
  • status <- payment_state (paid, in_payment, not_paid -> INTEGRATED/PENDING in UI).
  • metadata.provider is set to Odoo for traceability.

Preview and sync workflows

  • Preview invoices: POST /si/connectors/odoo/test-fetch (limit/offset).
  • Manual sync with provided config: POST /si/connectors/odoo/sync.
  • Sync with stored config: POST /si/connectors/odoo/sync-stored (supports cursor, limit, offset).
  • Schedule syncs using your own cron or the dashboard auto-sync.

Connector health

  • Ping connector health via POST /si/connectors/:id/health (use erp:odoo).
  • Registry status appears in GET /si/connectors/registry and in the dashboard.

Common pitfalls

  • Missing invoice number: ensure name is posted; drafts with / are ignored.
  • Currency mismatch: must match the environment's expected currency.
  • Old invoices without invoice_date will default to "today"; fix dates before sending.
  • Lines/partners/taxes are not required for the preview but are needed when you post to /si/invoices.

How to validate your mapping quickly

  • Use Fetch preview in the dashboard Odoo connector panel with sandbox creds.
  • Confirm the preview rows match your Odoo UI values (number, currency, total, date).
  • If something looks off, update the Odoo record and re-run the preview before going live.