Odoo logo

Odoo

CRMAPI tokenBeta

Askel connects to your customer's self-hosted or Odoo.sh instance, reading partners, products, invoices, and sales orders through the XML-RPC API. This integration is currently in beta; expect rough edges and please report any issues you encounter.

What you can do

Read partners and contacts

Fetch res.partner records including name, email, phone, company hierarchy, and any custom fields added by the customer's Odoo instance.

Sync products and price lists

Read product.template and product.product records including variants, units of measure, and associated pricelist entries.

Read and create invoices

Access account.move records for customer invoices and vendor bills. Create draft invoices and write back payment status after processing.

Read sales orders and lines

Fetch sale.order and sale.order.line records, including order state, delivery status, and line-item product references.

Discover installed modules

Askel queries ir.module.module at connect time to see which modules are installed, so field mappings are scoped to what actually exists in the customer's database.

Audit every XML-RPC call

Every request Askel makes to the Odoo XML-RPC endpoints is logged with the model name, method, domain filter, and response summary.

Sample use case

Syncing invoices from a customer's Odoo instance into your billing platform

You sell a revenue-recognition tool. Talvera Manufacturing runs Odoo on their own server and wants confirmed invoices pushed into your product automatically. Their finance lead provides database credentials so your platform can pull invoice data nightly.

  1. 1

    Provide credentials

    Talvera's IT admin enters the Odoo URL, database name, username, and password in your product's onboarding flow. Askel validates the connection using the XML-RPC common.login endpoint.

  2. 2

    Discover the schema

    Askel reads the account.move fields available in Talvera's installation, including any custom fields added by their accounting module. A mapping draft appears for your team to review.

  3. 3

    Filter to relevant records

    Your team configures a domain filter: state in ('posted',) to pull only confirmed invoices and exclude drafts and cancelled entries.

  4. 4

    Dry-run the sync

    Askel pulls the last 30 posted invoices in read-only mode and shows what would be created in your product, including any unmapped fields flagged for review.

  5. 5

    Enable the schedule

    Activate the nightly sync. Askel runs after business hours, fetches new and updated invoices since the last run, and writes them into your revenue-recognition pipeline.

Authentication

API token

Odoo uses XML-RPC with username/password authentication rather than API tokens in the traditional sense. The customer provides their Odoo database name, ODOO_USERNAME, and ODOO_PASSWORD. Askel calls the common.login endpoint to get a user ID and then uses that ID plus the password for subsequent object calls. Store these credentials carefully; they provide full API access scoped to that user's permissions.

Data flow

How Askel sits between your product and the customer's system

Data flow between Customer's Odoo instance, Askel, and Your productCustomer's Odoo instanceAPI endpointAskelauth · mapping · driftYour productyour backend
Partners (res.partner)Invoices (account.move)ProductsSales ordersModule list

FAQ for Odoo

Is this integration production-ready?+
It is currently in beta. The core read and write operations work, but not all Odoo module combinations have been tested. We recommend running a dry-run against your customer's instance before enabling live syncs.
Does this work with Odoo Community as well as Enterprise?+
Yes. The XML-RPC API is available in both editions. Some models and fields are only present in Enterprise; Askel skips mappings for models that are not installed.
Which Odoo versions are supported?+
Versions 14, 15, 16, and 17 are tested. Earlier versions may work but are not officially supported in this beta.
What permissions does the connecting user need?+
The user needs read access to the models your workflows interact with. For invoice creation, write access to account.move is also required. A dedicated read-only API user is a sensible approach for purely read-only integrations.
Ready to ship integrations faster?customers faster?implementations faster?
Join onboarding teams delivering integrations without the engineering queue,
catching drift before it breaks, and hitting go-live dates.
Security & Compliance
ISO 27001 Certified
GDPR Compliant

© 2025 Askel.ai. All rights reserved.