OERP connector

Odoo in Claude, ChatGPT and any MCP client. For your whole team.

Contacts, sales, invoices, products, stock, CRM, projects and other models, per model (Odoo 19+). One token in Loopthink, one login per person, roles per tool and an audit entry for every call.

Free for 2 connectors, no card · Pro €19 · EU-hosted · 4 read tools, 2 write tools off by default

Your AI clientOdoo

“Which customer invoices are overdue?”

Used account_move_search_read from Odoo

Three customer invoices are overdue, EUR 18,420.00 in total:

InvoiceCustomerOpenDue since
INV/2026/00812Nordwind HandelEUR 9,860.002 Oct 2026
INV/2026/00837Kraus & PartnerEUR 4,250.009 Oct 2026
INV/2026/00851Acme GmbHEUR 4,310.0014 Oct 2026
  • read-only
  • masked
An example answer in an AI client: the question “Which customer invoices are overdue?” is answered from Odoo through the tool account_move_search_read, and the call was read-only, masked.
In the product

One token in, the tools come out.

The Odoo connection form in Loopthink: odoo url, database name and the token
1. Connect. Enter odoo url and database name and paste the token. The token stays in Loopthink; nobody on your team sees it.
The Tools tab of the Odoo server in Loopthink: each tool with its own switch
2. Choose the tools. Pick the models your team needs. Each gets its own tools; reads are on, tools that change data stay off until you switch them on.

Odoo is the ERP of many growing companies in the DACH region: contacts, CRM, quotations and sales orders, invoices and journal items, products and stock, purchasing, projects, timesheets and employees, all in one database. Each app has its own views and filters; a question that spans two of them ends in an export.

AI connectors for Odoo exist mostly as community containers you run yourself or for Odoo.sh. With the Odoo connector, Sales, Finance, Purchasing, Warehouse and Management ask in Claude or ChatGPT and get the answer from the live database, hosted or on Odoo Online. Loopthink holds one API key of an Odoo user, every person signs in with their own identity, and every call is logged under their name.

The tools follow the models you enable: fifteen common ones such as res.partner, sale.order, account.move, stock.quant and crm.lead are offered for one click, any other model by its technical name. Each model gets four read tools (search, read, count, list fields) and two write tools (create, update) that stay off until you switch them on for a role. Three more tools list companies, find models and show the server version.

What your team asks
  • Finance

    “Which customer invoices are overdue by more than 30 days, and for how much?”

    Answered by account_move_search_read

  • Sales

    “All quotations for Nordwind Handel that are not confirmed yet.”

    Answered by sale_order_search_read

  • Warehouse

    “How many units of the Comfort office chair are on hand per location?”

    Answered by stock_quant_search_read

  • Management

    “How many new leads came in this month, and from which source?”

    Answered by crm_lead_count

  • Purchasing

    “Which purchase orders from Kraus & Partner are confirmed but not yet received?”

    Answered by purchase_order_search_read

  • Sales

    “Update the phone number of Acme GmbH to +49 89 4521 300.”

    Answered by res_partner_write

Tools

What the Odoo connector can do.

Odoo is organised by model. You enable the models the server exposes (res.partner, sale.order, sale.order.line, purchase.order, account.move and 10 more, plus your own), and each one gets the tools below, named after it. Shown here for res.partner.

ToolWhat it doesAccessDefault
listEntitiesLists the Odoo models enabled on this server (technical names such as res.partner or sale.order), with what each contains. Call this first, then use the tools named after a mode… ReadOn
res.partner_search_readSearches res.partner records with an Odoo domain and returns the requested fields. Domain syntax: a list of [field, operator, value] conditions, ANDed by default, e.g. ReadOn
res.partner_readReads res.partner records by id and returns the requested fields. Ids you may not see are left out instead of failing. ReadOn
res.partner_countCounts res.partner records matching a domain (same syntax as res.partner_search_read). Use it for totals and before paging through large result sets. ReadOn
res.partner_list_fieldsLists the fields of res.partner: technical name, label (string), type (char, integer, float, monetary, date, datetime, boolean, selection, many2one, one2many, many2many, ...), r… ReadOn
res.partner_createCreates one res.partner record and returns its id in a list, e.g. [42]. WriteOff
res.partner_writeUpdates res.partner records: sets the same values on every id given. Returns true. WriteOff

Write tools are off for every role until you switch them on, one tool for one role. The names are what the model sees; it also gets the full parameter description of each tool.

Setup

Getting the Odoo token.

Five minutes, once. Nobody on your team ever sees it.

  1. 1

    Recommended: create a dedicated internal user for Loopthink (Settings > Users & Companies > Users > New) and give it only the app access rights it needs, e.g. Sales: User: Own Documents Only, Invoicing: Billing, Inventory: User. Leave its password empty so it cannot log in interactively.

  2. 2

    Log in as that user (or impersonate it as admin), open the user menu (top right) > My Preferences (Preferences) > Account Security and click 'New API Key'.

  3. 3

    Enter a description (e.g. 'Loopthink') and choose a duration. Odoo does not allow keys longer than three months, so plan to rotate the key.

  4. 4

    Copy the key right away: it is shown only once. Enter your Odoo URL and database name here.

  5. 5

    In Loopthink, add Odoo from the catalog and paste the token. It also asks for odoo url and database name. Your team sees the tools a minute later.

Only Odoo 19 and newer: this template uses the JSON-2 API (POST /json/2/<model>/<method>). Odoo 17/18 only have XML-RPC/JSON-RPC, which are not supported. On Odoo Online the external API is only available on the Custom pricing plan, not on One App Free or Standard. API keys expire after at most three months and must be rotated. search_models needs the Administration: Access Rights group (ir.model is not readable by normal users).

Masking

What we suggest masking in Odoo.

An ERP holds people everywhere: contacts with e-mail, phone and address, VAT and register numbers, bank accounts, and in the employee model private addresses, birthdays and ID numbers. The suggested fields mask names, contact details, addresses, bank data and the private HR fields for roles that only need amounts, states and quantities. Odoo's own access rights still apply first: the key sees only what its user may see.

  • name
  • display_name
  • complete_name
  • partner_id
  • partner_name
  • contact_name
  • email
  • email_from
  • email_normalized
  • phone
  • mobile
  • phone_sanitized
  • street
  • street2
  • zip
  • city
  • vat
  • company_registry
  • website
  • work_email
  • work_phone
  • mobile_phone
  • private_email
  • private_phone
  • private_street
  • private_street2
  • private_zip
  • private_city
  • birthday
  • identification_id
  • passport_id
  • ssnid
  • acc_number
  • bank_account_id
  • login
Questions

Odoo and Loopthink

Which Odoo versions are supported?
Odoo 19 and newer, because the connector uses the JSON-2 API that Odoo 19 introduced. Odoo 17 and 18 only offer XML-RPC and JSON-RPC, which are not supported. On Odoo Online the external API is only available on the Custom plan, not on One App Free or Standard.
Which user should the API key belong to?
A dedicated internal user with only the app access rights the AI needs, for example Sales: User: Own Documents Only, Invoicing: Billing, Inventory: User. The key has no scopes and carries every access right, record rule and field restriction of its user. search_models additionally needs Administration: Access Rights.
Do I have to renew the key?
Yes. Odoo does not allow API keys longer than three months. Plan the rotation and replace the key in Loopthink before it expires; nobody else has to change anything.
We host Odoo ourselves. Does the connector reach it?
Odoo Online and Odoo.sh work directly. A self-hosted instance has to be reachable from the internet over HTTPS. If it is only reachable in your network, tell us and we look at it with you.
Does every team member need their own Odoo account?
No. Loopthink holds one key or token for Odoo. Your people sign in to Loopthink with their own identity, and every call to Odoo is logged under their name. Seats in Odoo stay where they are today.
Where does the Odoo key live?
In Loopthink, encrypted, in the EU. It never reaches the AI client and never reaches the people using the connector. Rotate it in Odoo whenever you like and paste the new one once.
Can somebody write to Odoo from the chat?
Not unless you switch it on. Write actions are a separate row in the permission matrix and are off for every role by default. If a role needs one write tool, you grant that one tool to that one role.
What does the model see?
The result of the tool call, after masking. Fields you mark as personal, such as emails, names or card details, are masked before the answer travels to the AI client. The model gets the numbers, not the people.
What does it cost?
Free for one person and two connectors, no card. Pro is €19 a month for up to five people and every connector on the site, with roles, field masking and a 30-day audit. Team is €49 for ten people and adds your own REST APIs and SQL databases, your own domain and your own identity provider. No call needed.

Stuck, or a tool you need is missing? A person who knows this connector answers within one working day.

Works in Claude, ChatGPT, Langdock and any other MCP client.