How data flows
Sales app path (quotation → order):sale.order. All states (draft, sent, sale, done, cancel) are synced by default.
CRM: opportunity pipeline
If you use Odoo’s CRM app, opportunities must have a quotation created manually before they appear in CommissionKit. CommissionKit readssale.order records — not CRM opportunities. If your team marks an opportunity as “Won” without creating a quotation, it will never sync.
To get a won opportunity into CommissionKit:
- Open the opportunity in Odoo CRM
- Click New Quotation to create a sale order from the opportunity
- Confirm the quotation so its state becomes Sale Order or Done
- Run a manual Sync Deals in CommissionKit to pull it in
Stage mapping
Raw Odoo sale order states map to CommissionKit’s canonical stages:
All states are synced by default. Use the ⋮ menu → Stage Filter to select which states to import.
Payment status (invoice-based)
CommissionKit determines payment status from actual invoice payment states, notsale.order.invoice_status.
For closed-won deals with no invoices yet, the status comes from ⋮ → Payment Defaults (defaults to
paid).
sale.order.invoice_status is NOT used. That field only tracks whether invoices have been created, not whether they have been paid.Connector features
Prerequisites
- Odoo 15+ (Community or Enterprise, self-hosted or Odoo.sh)
- A user account with API access — generate an API key under Settings > Users & Companies > Users > [User] > API Keys
- The Sales module (
sale) must be installed. No other modules required.
Setup
- In Odoo, generate an API key for a user with sales access
- In CommissionKit, go to Integrations and select Odoo ERP
- Enter:
- Odoo Instance URL — e.g.
https://mycompany.odoo.com - Database Name — your Odoo database name
- Username — the email of the user with API access
- API Key — the key generated in step 1
- Odoo Instance URL — e.g.
- Click Test Connection to verify
- Click Connect — initial sync begins immediately