DocsTools
Odoo
Sales orders, invoices, customers and stock.
- Category
- Accounting
- How you connect
- API key or token. You paste a key or token from the tool. Homla stores it encrypted and never shows it again.
- Time to set up
- About 6 minutes
- Actions
- 23 read, 5 write
Connect it#
In Homla, open Connectors, then Odoo. The Setup guide button walks you through the same steps, with fields to paste into.
Who can do it. An Odoo Administrator creates the wedge-bot user and its rights; the API key is then created by wedge-bot itself (each user mints keys only for their own account). Homla acts with that user's access rights.
Recommended. Create an internal user such as [email protected] and mint the key from it, so every write Homla makes is attributed to it in the chatter and can be revoked without touching a person's access. It is a paid seat on Odoo's per-user pricing; a Portal user will not work (no backend access).
- Check that your Odoo plan allows the APIOn Odoo Online the external API is only available on the Custom plan (not One App Free or Standard). Odoo.sh and self-hosted Odoo always allow it. You need an Odoo Administrator (Settings > Users & Companies) for the next steps. Open it.
- Create a dedicated wedge-bot userSigned in as an administrator, open Users and click New. Name it Homla bot, login [email protected], type Internal User, and save. Every record Homla creates or edits then shows this user in the chatter, and you can cut it off without touching anyone's access. An internal user is a paid seat on Odoo's per-user pricing.
- Give it only the rights the tools needOn the user's Access Rights tab, pick the lowest level per app from the list below: reading reports needs only the User level of Sales, Invoicing/Accounting (Read-only where offered), Inventory, CRM and Point of Sale. Leave Administration empty. If the company wants Homla read-only, keep these read levels and do not grant Homla the create, write, unlink, execute_kw or jsonrpc tools: Odoo will refuse any write with an Access Error anyway where the user lacks the right.
- Sign in as wedge-bot and open My PreferencesSet a password for wedge-bot (Odoo Online: the invitation email, or Action > Change Password as admin), sign in with it, then open your avatar, top right > My Preferences (the link below opens it directly) and go to the Account Security tab (Security on the newest Odoo).
- Create the API key and copy itClick New API Key, confirm the password, name it Homla, and if Odoo asks for a duration or expiry, pick the longest your policy allows (Odoo 19 caps keys at three months). If a Scope is offered, leave it on the generic RPC scope, not MCP. Click Generate Key and copy it.
Odoo shows the key only once. Paste it straight into Homla; if you lose it, delete it and create a new one.
- Find the database nameOn Odoo Online it is the subdomain (mycompany for mycompany.odoo.com). On Odoo.sh it is the database of the branch, shown in the Odoo.sh project. Self-hosted: ask whoever runs the server, or open the database manager at /web/database/manager if it is enabled.
- Paste the four values into HomlaIn Homla: Connectors > Odoo > Connect. Odoo URL: the address you open Odoo at, with https:// and no path (custom domains work). Database name: from the previous step. Login email: wedge-bot's login. API key: the key you copied. Save. Open it.
- Check the connectionAsk your assistant to run odoo_capabilities. It lists the Odoo version and the installed apps. An authentication error means one of URL, database, login or key is wrong; an Access Error on a report means wedge-bot lacks that app's User right.
What your AI can do#
These are the actions Homla gives your AI. Your role decides which ones you get. Write actions are a dry run until confirmed, see Approvals and dry runs.
Read#
Looks things up, never changes anything.
| Action | What it does |
|---|---|
odoo_capabilities | Which Odoo apps are installed and populated, plus the version. |
odoo_model_schema | fields_get plus the connector's annotations (purpose, key fields, analyses, caveats). |
odoo_model_explain | Curated notes on an annotated model; no upstream call. |
odoo_search_read | Search + read with a domain. |
odoo_read | Read records by id. |
odoo_search_count | Count records for a domain. |
odoo_read_group | Grouped aggregation, version aware (read_group <= v18, formatted_read_group v19+). |
odoo_name_search | Resolve a record id from a name. |
odoo_fields_get | Raw field definitions. |
odoo_revenue_report | Booked revenue trend from confirmed sale.order. |
odoo_invoiced_revenue_report | Recognised revenue from posted customer invoices. |
odoo_aov_report | Average order value trend. |
odoo_top_products_report | Best sellers by revenue (sale.order.line). |
odoo_top_customers_report | Top customers by booked revenue. |
odoo_ar_aging_report | Open receivables by customer (amount_residual). |
odoo_pipeline_report | CRM pipeline value by stage. |
odoo_sales_orders_list | Recent sales orders. |
odoo_invoices_list | Customer invoices. |
odoo_customers_list | Customers (customer_rank > 0), optional name filter. |
odoo_products_list | Sellable product templates. |
odoo_inventory_levels_list | On-hand stock in internal locations. |
odoo_playbook_get | Goal -> ordered list of tools; no upstream call. |
odoo_health_report | One-call digest: revenue, top products, open receivables. |
Write#
Creates or changes things, as the account owner.
| Action | What it does |
|---|---|
odoo_create | Create one record from vals. |
odoo_write | Update records with the same vals. |
odoo_unlink | Delete records by id. |
odoo_execute_kw | Escape hatch 1: any model.method. |
odoo_jsonrpc | Escape hatch 2: raw service.method on /jsonrpc. |
Disconnect it#
In Homla, open the account menu on the tool's page and choose Disconnect. Anyone it was shared with loses access at once. To cut it off on the tool's side too:
Signed in as wedge-bot, open My Preferences > Account Security and delete the Homla key: Homla stops at once. To cut everything, an administrator archives the wedge-bot user from Users. To rotate (required at least every three months on Odoo 19), create a new key the same way and paste it into the same Homla form, then delete the old one.
Generated from the product code. Action names are what the CLI and the API use.