Connect your Odoo
Credentials, Odoo API key, encryption, production and staging environments, and how to diagnose the most common connection errors.
6 min de leituraAtualizado a 7 de agosto de 2026
Esta página ainda não está traduzida para o seu idioma: é apresentada em inglês.
The Odoo connection is the foundation of everything else: it is what gives Aidoo, and therefore your assistants, agents and dashboards, access to your data.
Aidoo connects to Odoo over XML-RPC, with an API key. No Odoo module to install, no webhook to configure.
Generate the API key in Odoo
An API key, never a password
Odoo lets you authenticate over XML-RPC with an account password. Don't. A password cannot be revoked without changing the account, it never expires, and it grants access to the web interface. An API key is revoked in one click and only works against the API.
In your Odoo:
- Avatar in the top right → My profile
- Account security tab → New API key
- Name it
Aidooand choose a validity period - Copy the key: Odoo will never show it again
Which Odoo account should you use?
This key establishes the connection and reads your database structure. It does not run your teams' requests.
Each member acts with their own Odoo rights
Once the connection is in place, every person registers their own Odoo API key under Team → Odoo token. Their requests then go out under their identity, with their rights: an accountant sees accounting, a salesperson sees their own portfolio. The connection key is never used to act on their behalf, and a member who has not linked their account yet gets a message asking them to.
So you can give some members broader Odoo rights than the connection account has: their own token is what decides.
| Context | Recommended account for the connection |
|---|---|
| Evaluation, trial | Your admin account, it is the fastest |
| Production | A dedicated Odoo user named Aidoo, with the read access introspection needs |
| Autonomous agents | Each agent borrows a member's identity: that member's token is what counts |
Watch the expiry date
An expired Odoo API key cuts Aidoo off instantly, with an authentication error. Note the expiry date when you create the key and plan the rotation: it is the number-one cause of production outages.
Fill in the connection in Aidoo
Open Odoo connection in Aidoo.
| Field | What it expects | Common mistake |
|---|---|---|
| Odoo URL | Your Odoo address | Entering another service's address |
| Database name | Filled in automatically where possible | Confusing it with the company name |
| Username | The login of the account that created the key | Using the display name instead of the login |
| Odoo API key | The key copied from Odoo | Pasting the account password |
Click Test connection before saving. Aidoo performs a real authenticate call: a Connected badge means all four fields are right.
Finding the database name
In most cases there is nothing to look for: as soon as the URL is entered, Aidoo queries your instance and fills the field in. If it finds several databases it offers you the list; if it finds none, your Odoo has database listing disabled and you must type it in.
In that last case:
- Odoo Online (
.odoo.com): usually the subdomain. Forhttps://acme.odoo.com, the database is most oftenacme. - Odoo.sh: the name appears in the Branches tab, formatted as
branch-name-1234567. - Self-hosted: open
https://your-odoo/web/database/selector. If a single name shows up, that's the one.
Production and staging
Aidoo manages two environments: production and staging, each with its own credentials. Only one is active at any moment, and that choice is per member: you can work against the test copy while the rest of the team stays on production. Without a personal choice, the workspace's environment applies.
The point: aim your assistants at a test copy while you validate a write-heavy workflow, then switch to production without reconfiguring anything on the Claude side.
Switching takes effect at once, mid-conversation included
The change applies from the next call: nothing to restart. The assistant, however, memorised the environment at the start of the conversation and will keep announcing the old one while already querying the new. Tell it you switched, or open a new conversation, so what it says matches what it does.
API key permissions are set per environment: you can allow writes on staging and refuse them in production.
Encryption and storage
Your Odoo credentials are encrypted with AES-256-GCM before being written to the database, with an encryption key belonging to the Aidoo infrastructure and never stored alongside the data.
In practice:
- the Odoo API key is never returned by the Aidoo API, not even to a workspace owner: the interface shows a masked field
- it appears in no log, no stack trace, no export
- it is decrypted in memory only, for the duration of one XML-RPC call
Leaving the field empty on save keeps the stored key: you can change the URL or the login without retyping it.
What Aidoo reads on first contact
On save, Aidoo introspects your database to discover the available models and their fields. This introspection reads no business data: only structure (model names, field names and types, relations).
That is what lets the assistant know your database has a custom x_customer_code field on res.partner, and use it without you having to explain it.
You can then block entire models or fields so they are never reachable, see Security & permissions.
Diagnostics
"Connection test failed"
In order of likelihood:
- Wrong database name: the cause in most cases, when auto-detection did not work
- Wrong domain: check the address really is your Odoo's
- Inexact login: it is the sign-in identifier, often an email address
- Expired or revoked key: generate a new one in Odoo
- XML-RPC blocked, see below
"Access denied" although the credentials are right
The account exists but the key does not belong to it, or the key has expired. Generate a key from the profile of that specific account: a key created by another user will not work.
Network error or timeout
Your Odoo is not reachable from the internet, or a firewall blocks outbound calls. Aidoo calls your Odoo from its own servers: an instance reachable only on your internal network or behind a VPN cannot work.
If your Odoo sits behind an IP allowlist, contact us for Aidoo's outbound IP addresses.
The assistant cannot see a model that exists
Two possible causes: the Odoo account lacks access rights to that model, or the model is blocked in your Aidoo settings. Check in Odoo first, signed in as that account.
Next step
Your Odoo is connected: all that remains is to plug an assistant into it.