AI agents for Odoo:
how they connect, and how to keep them governed.

An AI agent can run your Odoo the way you wish you could: in plain language, from a chat or a photo of a receipt. It does this through Odoo's external API, which is also exactly why scope matters. The same interface that lets an agent read an invoice can read, and change, almost everything. This guide covers how the connection works and how to keep it to what the job needs.

An AI agent for Odoo is an assistant that reads and writes Odoo records on your behalf, translating what you ask in plain language into the API calls that do it. The appeal is obvious: ERP work without the ERP screens. The part that decides whether it is a convenience or a liability is scope, and scope is a governance question more than an integration one.

We build Pinchy, a self-hosted AI agent platform with a governed Odoo integration, and run our own bookkeeping through it, so this is not neutral ground. The mechanics below are true of any agent-to-Odoo connection; the governance section is the part most guides skip.

How an AI agent connects to Odoo

Odoo exposes its data through an external API. Historically that is XML-RPC and JSON-RPC; Odoo 19 adds a REST-style JSON-2 API as the long-term successor (the older XML-RPC and JSON-RPC endpoints are slated for removal in later releases, so the direction of travel is JSON-2). All of them call the same underlying ORM methods, so the capabilities are identical and only the transport differs. An agent connecting over any of them can perform standard create, read, update, and delete operations on records.

Crucially, this is the documented public interface. The agent is just another API client. It does not modify Odoo, install anything into it, or depend on Enterprise: the external API is the same on Community and Enterprise, which is why a connected agent behaves identically on both. The agent's job is to turn "what did we invoice Acme last quarter" into the right query, and "book this receipt to office supplies" into the right write.

What an agent can actually do

Because the external API reaches the ORM, an agent can work across the whole system: CRM, accounting, inventory, HR, and the rest. In practice that looks like:

The pattern that makes it click for most teams is turning an artifact into a transaction. You photograph a supplier receipt, drop it into a chat, and the agent reads the amount and vendor, asks which account it belongs to if it is not sure, and posts the transaction in Odoo with the right fields. The ERP work happens, but the ERP screen does not. That single example is also the one we run our own books on.

The risk hiding in the convenience

Here is the catch that the demos skip. The external API does not have a "just the safe parts" mode. It exposes the ORM, and the ORM can read and write across the entire database. An agent handed raw API access can, in principle, read every customer record, change any invoice, or delete data, not because it is malicious, but because the interface makes no distinction between the one operation the agent needs and the thousand it does not.

Combine that with the fact that an agent can be steered by the content it processes (a prompt injection hidden in a document or an email it reads) and the unscoped version of this integration is a genuine hazard. The receipt you drop in could, in the worst case, carry an instruction the agent follows against the rest of your data. The fix is not to distrust the feature. It is to make sure the agent was never holding that much access in the first place.

Keeping an Odoo agent governed

Everything that makes agent governance work in general applies here, sharpened by how much an ERP holds. Concretely:

This is the same four-layer model from the broader agent governance guide, applied to the system in your business that has the most to lose.

How Pinchy does it

This part is about our own product. Pinchy connects to Odoo over its JSON-RPC external API and exposes Odoo work as scoped operations that run through each agent's default-deny allow-list, so an agent only has the Odoo capabilities you granted it and nothing wider. Every action it takes in Odoo is written to a per-row signed audit trail. The connection installs as a small free module from the Odoo App Store and the platform is self-hosted, so a self-hosted Odoo and a self-hosted Pinchy keep your ERP data on your own servers end to end. The plain-language and receipt-to-transaction workflows above are the ones we use, not hypotheticals. The deeper product walkthrough lives on the Odoo AI agents page.

Frequently asked questions.

How does an AI agent connect to Odoo?

Through Odoo's external API. Odoo exposes its data over XML-RPC, JSON-RPC, and a REST-style JSON-2 API, all of which call the same underlying ORM methods, so an agent can read, create, and update records the same way a custom integration would. The agent translates a natural-language request into the API calls that fulfill it. Because it uses the documented public API, it works on both Community and Enterprise and does not modify Odoo itself.

What can an AI agent do in Odoo?

Anything the external API exposes, which is most of the system: find a customer, check stock, pull an invoice, create a sales order or an expense, update a record, across CRM, accounting, inventory, HR, and other modules. A common pattern is turning an input like a photographed receipt into a posted transaction, with the agent filling in the fields and asking when something is ambiguous.

Is it safe to give an AI agent access to Odoo?

It depends entirely on scope. The external API can read and write across the whole ORM, so an agent handed raw API access can do far more than its job needs, and a single bad instruction can reach all of it. It is safe when the agent is given narrow, purpose-built operations (a read-sales-orders capability rather than call-any-ORM-method), default-deny so it starts with nothing, and an audit trail that records every write.

Does an AI agent for Odoo work on Community edition?

Yes. The external API that agents use is the same on Odoo Community and Enterprise, so an agent that connects over it works identically on both. Running self-hosted Odoo Community with a self-hosted agent also means the data the agent reads and writes never leaves your own infrastructure.

Does connecting an AI agent change or risk my Odoo installation?

Connecting over the external API does not modify Odoo; the agent is just another API client. The risk is not to the installation but to your data: an over-scoped agent can read or change more than intended. Keep it to a least-privilege set of operations and audit its writes, and the integration stays additive rather than invasive.

Run your Odoo by chat, safely.

Pinchy connects to Odoo over its API with scoped, default-deny operations and a signed audit trail, self-hosted so your ERP data stays yours. Open source, free to run.

Or email us: info@heypinchy.com