ERP · Odoo

Odoo integration services

Odoo is a modular ERP sold as the open-source Community edition and the licensed Enterprise edition, hosted on Odoo Online, Odoo.sh or your own servers. Companies integrate it when their store, CRM, accounting package or AI assistant sits outside Odoo and orders, stock, invoices and contacts must move without re-keying. AIONDATA builds these integrations on Odoo’s external API (JSON-2 from version 19, XML-RPC or JSON-RPC before), automation-rule webhooks, custom modules where hosting allows, and MCP servers.

California-based leadership · Serving US and international teams

Odoo
AIONDATAsync · MCP · rules
AI agentsClaude · ChatGPT · yours
CustomersOrdersInvoicesInventoryPaymentsTickets
Illustrative integration flow

Scope a Odoo integration

Tell us the other system and what needs to flow between them. You'll get an honest scope and timeline.

Please share the systems and workflow—not credentials or customer records. We’ll confirm API access, scope and next steps.

NVIDIA Inception

NVIDIA Inception member

Part of NVIDIA’s program for startups building with AI and accelerated computing.

About the program
Pravin BansalSravan Modugula

Bay Area roots. Enterprise experience.

Pravin’s experience includes Google and SmartBear. Sravan previously held leadership roles at JPMorgan Chase and First Republic Bank.

Meet the founders

San Francisco Bay Area, California

9110 Alcosta Blvd Ste H345, San Ramon, CA 94583

US-led delivery, with engineering in India. Supporting US and international organizations.
Prefer email? info@aiondata.io

Let’s scope your integration.

Just your name and email to get started. Your details are handled under our Privacy Policy.

Data

What we typically sync

  • 01Contacts, customers and vendors (res.partner)
  • 02Products and variants
  • 03Pricelists and prices
  • 04Stock on hand and free-to-use quantity by warehouse
  • 05Quotations and sales orders
  • 06Deliveries and tracking numbers
  • 07Invoices, vendor bills and credit notes (account.move)
  • 08Payments and payment status

Outcomes

Common Odoo integration use cases

  • Turn Shopify orders into Odoo sales orders and send Odoo stock, prices and tracking numbers back to the store.
  • Post Odoo invoices, bills and payments to QuickBooks Online, or migrate QuickBooks history into Odoo Accounting.
  • Keep Odoo contacts, orders and invoices aligned with Salesforce, HubSpot or Zoho CRM.
  • Let Claude or another MCP client query Odoo orders, stock and invoices under each user’s Odoo permissions.
  • Load changed Odoo sales, stock and accounting records into a data warehouse or BI tool.

Editions and APIs

Odoo: editions, hosting and APIs

The edition, hosting model and API on each side decide what the integration can do and how it is built.

Editions, hosting and APIs
Odoo CommunityOpen-source edition with Sales, CRM, Inventory, Purchase, Manufacturing, eCommerce, Invoicing and the external API, plus webhook automation rules from version 17. Full Accounting, Studio and Odoo AI are Enterprise only, as is Odoo’s hosting, so Community runs on your servers.
Odoo EnterpriseLicensed edition built on Community, adding full Accounting, Studio, Odoo AI, upgrades by Odoo and hosting on Odoo Online or Odoo.sh. Of the One App Free, Standard and Custom plans, only Custom includes external API access, and it also lists agentic AI.
Odoo OnlineHosted and upgraded by Odoo; major-version databases must upgrade every two years. Custom and Odoo Apps Store modules cannot be installed, so integrations call the API from outside. Test on duplicates: up to five per database, each expiring after 15 days.
Odoo.shFor Enterprise subscriptions that include it. Deploys custom and third-party modules from a private GitHub repository, with staging branches that capture email and disable scheduled actions. The queue_job module is listed as incompatible.
On-premiseCommunity or Enterprise on your own servers or cloud. Anything is possible, including staying on a version indefinitely, but you run upgrades, backups and security. Standard support lasts three years per major version.
External API by versionOdoo 18 and earlier: XML-RPC or JSON-RPC with a password or API key (keys since version 14). Odoo 19 and later: JSON-2 at /json/2/<model>/<method> with a bearer API key, created for at most three months. The RPC database service is gone from Odoo 20 and Online 19.1; the rest is scheduled for removal in Odoo 22 (fall 2028) and Online 21.1 (winter 2027).
AI access (MCP)Odoo 20, and Odoo Online from 19.4, include an MCP server in Odoo AI at your database URL plus /mcp, using a user API key with the MCP scope. Read tools are exposed by default; write tools must be exposed manually.

Choosing an Odoo integration approach

Start with where Odoo runs, because hosting decides where integration code can live. On Odoo Online it must run outside Odoo and call the external API, which requires the Custom plan. On Odoo.sh or your own servers, a connector module can also run inside Odoo.

Then match the approach to the job. An Odoo Apps Store connector suits standard flows on Odoo.sh or on-premise. An iPaaS suits teams that already run one at modest volumes. A custom service suits Odoo Online, several companies or stores, high volumes and strict reconciliation. An MCP server gives AI assistants governed access; it does not replace a background sync.

  • Odoo 19 or later: build new integrations on JSON-2, not XML-RPC.
  • Odoo.sh: test modules on a staging branch before production.
  • Odoo 20: check the built-in MCP server before commissioning a custom one.

Odoo integration pitfalls and how we avoid them

Most Odoo integration failures are quiet: a missed webhook, an archived record or a field changed by an upgrade, and the two systems drift apart. We design for that from the first mapping.

  • Outbound webhooks are fire-and-forget: Odoo’s Send Webhook Notification action posts once with a one-second timeout and only logs failures. We pair it with a scheduled check on write_date.
  • Archived records drop out of normal searches, so syncs that must see them ask for them explicitly.
  • Each JSON-2 call is its own transaction, so multi-step operations run through one server-side method.
  • API keys expire, so we monitor expiry dates and rotate keys before they lapse.
  • Odoo 18 replaced the Storable Product type with Goods plus Track Inventory, so older mappings need updating.
  • In multi-company databases, new products and contacts are shared by default and product cost is company-specific.
  • Odoo.sh staging disables scheduled actions, so tests switch sync jobs on deliberately.

AI agent access

Odoo and AI assistants (MCP)

Official MCP server: available. New in Odoo 20 (Sept 2026): a built-in MCP server at your database URL plus /mcp with API-key auth; five read tools by default, and other tools must be exposed manually.

Besides syncing Odoo with your other systems, we can give Claude, ChatGPT or Microsoft Copilot controlled access to it through an MCP server: read-only tools first, write actions with approval steps, and every call logged.

Status checked September 26, 2026.

Odoo integration FAQs

How do you connect to Odoo?

Through Odoo’s external API, which reaches every model the integration user may access. From Odoo 19, the JSON-2 API takes a POST to /json/2/<model>/<method> with an API key as a bearer token; older versions use XML-RPC or JSON-RPC. For event triggers we use automation rules, which send and receive webhooks from Odoo 17, and a small module when logic belongs inside Odoo.

What is the difference between Odoo Online, Odoo.sh and self-hosted Odoo for integrations?

Odoo Online cannot run custom modules or Odoo Apps Store modules, so the integration runs outside Odoo and calls the API, which Odoo includes only in its Custom plan. Odoo.sh, for Enterprise subscriptions that include it, deploys your modules from GitHub with staging branches. Self-hosted Community or Enterprise allows anything, but you own upgrades, backups and security.

Which Odoo versions do you support, and what changed in Odoo 19 and 20?

We scope against the version you run and check its support dates first. Odoo supports each major version for three years; standard support for Odoo 17 is planned to end in September 2026. Odoo 19 added the JSON-2 API and deprecated XML-RPC and JSON-RPC. Odoo 20 (September 2026) added an MCP server, and the old RPC endpoints are scheduled for removal in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027), so new work should use JSON-2.

Will the integration survive Odoo upgrades?

Yes, if version-specific details sit in one mapping layer and are retested before each upgrade. Odoo Online databases on a major version must upgrade every two years, and those on an intermediate version a few weeks after the next release. Fields change too: from Odoo 18, stock-tracked products are Goods with Track Inventory ticked. We rerun the tests on Odoo’s upgraded test database before you switch.

Can Odoo connect to Claude or other AI assistants?

Yes. Odoo 20 includes an MCP server in Odoo AI, also documented for Odoo Online 19.4. A client connects to your database URL plus /mcp with an API key that has the MCP scope, and acts with that user’s access rights. Odoo documents setup for Claude Desktop, Claude Code, Antigravity and Codex. Read tools such as Search are exposed by default; write tools such as Create Records must be exposed manually. Odoo AI is not in Community, and Odoo lists agentic AI under its Custom plan. Our Odoo MCP server guide, linked in the AI agent access section of this page, covers setup, permissions and alternatives.

Do you work with Odoo Community?

Yes. Community includes the external API, the JSON-2 endpoint from version 19 and, from version 17, automation rules that send and receive webhooks. It does not include Enterprise apps such as full Accounting (Community has Invoicing), Studio or Odoo AI. Community users who need a full ledger therefore keep one elsewhere, such as QuickBooks Online, or move to Enterprise.

How do you handle custom modules and Studio fields?

We read your data model before mapping anything. Studio fields start with x_studio_ and other custom fields with x_, and the API reaches them like standard fields. Each JSON-2 call runs in its own transaction, so a multi-step operation such as creating and confirming an order goes through one module method. Odoo will not upgrade a database until its custom modules are ported to the target version.

Does Odoo limit API calls, and how fast can a sync run?

Odoo’s external API documentation publishes no request quota, so throughput depends on your hosting. On Odoo.sh, scheduled actions that keep hitting the execution time limit are disabled, and staging builds get one worker with scheduled actions run a couple of times a day. We read in batches with search_read, request only needed fields, filter changes on write_date and keep jobs short.

What drives the cost of an Odoo integration?

Scope and hosting. Cost rises with the number of flows and directions, custom fields and modules, multi-company rules, backfills, volume and how fresh data must be. On Odoo Online the integration runs outside Odoo and needs the Custom plan. Paid Odoo Apps Store modules are sold per major version, so upgrades carry a cost. A standard sync usually takes a few weeks including testing; complex multi-company or heavily customized work typically takes two to three months.

Are you an Odoo partner?

No. AIONDATA is an independent integration provider and is not an Odoo partner. We are Bay Area-led, based in San Ramon, California, with engineering in Noida, India, and certified to ISO 9001:2015 and CMMI Level 3. We can work alongside your Odoo partner or in-house team, and we document every mapping so they can maintain it.

Need Odoo connected to something?

The enquiry form is at the top of this page. Tell us the other system and what needs to flow between them.

Go to the enquiry form