Integrations Small Medium Teams · · 5 min read

Odoo and Ai — CRM automation for the self-hosted world

AS

Founder & CEO, Pop Hasta Labs

From my perspective, Odoo customers are the most under-served group in the Ai-for-CRM conversation, and the reason is boring. Most Ai vendors build their integrations around OAuth flows that assume a single hosted platform, and Odoo is the opposite of that. Many Odoo customers run their own instances on their own infrastructure, with their own Studio-generated fields, their own record rules, and their own security assumptions. An Ai integration that only knows how to talk to cloud Odoo or that ignores record-level permissions is no good to them, so the vendors move on and the Odoo customer is told to wait.

I believe that is the wrong default. Self-hosted Odoo customers are often running more interesting commercial logic than their cloud peers precisely because they had the conviction to host their own stack, and they deserve Ai tooling that respects how their instance is set up. Apart from this, the security posture of a self-hosted environment is usually tighter than a generic SaaS integration expects, which is actually helpful when you are building governance-first Ai.

Why Odoo's auth model looks different

Most CRM integrations use OAuth. Odoo does not, at least not in the way the others do. Odoo's normal pattern is per-user API keys, which you generate in the user's own preferences and then hand to the integration. This feels old-fashioned until you think about it, at which point you notice that it is actually cleaner. The key is scoped to the user, it inherits whatever record rules that user is subject to, and it can be rotated without any vendor-side choreography.

Our Odoo integration accepts four things from the user — URL, database, username and API key — and encrypts the key immediately with AES-256-GCM. Calls go directly to the customer's own Odoo URL over HTTPS, which means a customer running their Odoo on a private VPS or inside a corporate network reaches that environment without any data passing through a third-party proxy. Specially for customers in regulated sectors, this is the difference between a “we will think about it” and a “let's pilot this”.

The record-rules question that every Odoo admin asks

Every Odoo admin I have spoken to asks the same question within the first two minutes of the conversation. If the Ai can read and write leads through an API key, does that mean the Ai is going to see data the underlying user should not see.

The honest answer, and the one our integration is built around, is no. The API key executes as the user who created it, so whatever record rules that user is subject to in Odoo apply to every call the Ai makes. A sales rep's assistant only sees the leads that rep would see in the Odoo UI. A team lead's assistant sees what the team lead sees. Nothing leaks upwards through the integration because the integration cannot elevate beyond the credentials it was handed.

This is the kind of detail that sounds obvious when you describe it and is routinely broken in careless integrations. We tested it deliberately during the Phase 6 pre-deploy audit by connecting a deliberately constrained user and verifying that the assistant could not see anything that user should not, including sales orders from other teams and archived opportunities the user had lost access to. It prove to be fruitful because it flushed out two places where the service had cached an earlier response and was serving it across record-rule boundaries, and we fixed those before anything went live.

Studio fields, and why labels matter more than technical names

Odoo's Studio tool lets admins add custom fields to any model, and in a typical Odoo instance you find dozens of x_studio_* fields across leads, opportunities and contacts. A raw API call returns the technical names, which are usually meaningless to a sales rep. Our integration introspects the fields at call time and surfaces them to the assistant by their human-readable labels, so a rep asks about “ProcurementBoard” rather than x_studio_procurement_board_status, and the Ai fills in the correct technical identifier when it writes back.

Apart from this, Odoo's custom fields often have constrained value lists, and writing a value that is not in the list silently fails without an error message. We coerce the input into the nearest valid option before the call and surface a warning if the value does not match anything. Small detail, but it is the difference between a sales rep trusting the Ai and treating every response with the scepticism reserved for beta software.

What this means for Odoo customers thinking about Ai

If you run Odoo and you are looking at Ai vendors, the question to ask is not whether they integrate with Odoo. A surprising number will say yes and mean they have a Zapier hook that covers contacts. The better questions are whether the integration works with self-hosted Odoo, whether it respects your record rules, whether it reads your Studio fields by label, and whether the API key it stores is encrypted at rest. If the vendor answers those four questions concretely, the integration is probably real. If they need to check with an engineer first, assume the integration was demoed on Odoo.sh and will not hold up in production with your rules.

I tend to focus on this level of detail with Odoo customers specially because the community around self-hosted Odoo is small, technically sophisticated, and deeply allergic to marketing vapour. They will catch a hand-wavy integration within ten minutes of a trial, and they are right to. Building Ai that respects what they built is the only version of this conversation that goes anywhere useful.

For example prompts, the nine-tool surface across leads, contacts, opportunities and custom fields, and the five-minute connect flow for self-hosted instances, see the Odoo integration page. Odoo is included on the Small Medium Teams tier (£99/month) and Enterprise.

AS

Abhishek Sharma

Founder & CEO of Pop Hasta Labs. Building Other Me — the governed AI platform with patent-pending security architecture. Based in London.

Try Other Me free for 7 days

AI assistants with governance built-in. Card at signup — no charge for 7 days.

Start 7-day free trial