Skip to main content

Odoo

With the Odoo integration, your ChatNorris agent works with the real data in your Odoo ERP (self-hosted, Odoo.sh or Online). Depending on what you turn on and the modules your instance has, the agent:
  • creates a contact and an opportunity in your Odoo CRM for each new lead it confirms;
  • tells the status of a sales order, only after verifying that it belongs to the visitor;
  • searches products and variants and answers the current sales price and stock;
  • builds a shopping list with the visitor and sends them the link to each product in your store;
  • creates tickets in your Odoo Helpdesk, with the visitor’s confirmation, and looks up their status in a verified way.
It works in the web widget, WhatsApp, Instagram, Messenger, Telegram, Email, and the API.

Requirements

  • A ChatNorris account on the Premium plan. Odoo is exclusive to Premium: on Free or Standard it doesn’t appear as connectable and the Action appears locked as “Coming soon” in the picker. You can see the plans at chatnorris.ai/pricing or write to us at hola@chatnorris.ai.
  • At least one agent created in ChatNorris. If you don’t have one yet, follow Create an agent.
  • An Odoo instance (self-hosted, Odoo.sh or Online), an Odoo user, and an API key for that user.
  • The Odoo modules each capability needs (see Configure the Action).
  • The Owner or Admin role in your ChatNorris organization.
If your Odoo has no API available (for example, Odoo Online on its Standard plan), you can still import products and prices from your store’s public site with the Online store (public site) source, without connecting any API.

Connect Odoo

Each agent connects to one Odoo instance. You connect it only once in Integrations, and the Odoo Action uses that connection.
1

Generate an API key in Odoo

In Odoo, with the user ChatNorris will use, open Preferences → Account Security → New API Key and copy the key.
2

Open the agent's Integrations hub

In ChatNorris, go to My agents → [your agent] → Integrations and choose Odoo.
3

Fill in the details and connect

Enter the Instance URL (for example https://your-company.odoo.com), the Database (optional: it’s detected automatically if your server has only one), the Username, and the API key, and click Connect.
4

Test the connection

Use Test connection to confirm that the credentials work. In the integration detail, Detected on last connect/test shows the edition (Enterprise or Community), the version, and the relevant modules installed in your Odoo.
The API key is stored encrypted: the hub only shows its last 4 characters. If you rotate it in Odoo, use Replace key in the row’s ··· menu; the connection stays the same, so the Action is not affected.
If you install a module in Odoo after connecting, click Test connection again so ChatNorris detects it and enables the capability that needs it.

Configure the Action

Connecting Odoo doesn’t turn anything on yet. To choose what the agent does:
1

Create the Odoo Action

Go to My agents → [your agent] → Actions, click New action, and choose Odoo.
2

Turn on the available capabilities

The capabilities you can enable depend on which Odoo modules your instance has installed (detected automatically when you connect). See the table below.
3

Enable the Action and save

Turn on Action enabled: while it’s off, no capability has any effect. Save the changes.
If your instance doesn’t have the corresponding module installed, that capability appears disabled.
Claude Sonnet or higher is recommended as the agent’s main model (Settings → AI) if you turn on order lookup or tickets. These capabilities ask for explicit confirmation before creating a ticket or revealing data from a verified order or ticket. In testing, Haiku sometimes ignores the confirmation and answers as if the ticket had already been created. The action’s form shows this notice with a link to the AI settings.
One store per agent. An agent can have only one active store for looking up orders and stock (for example Odoo or WooCommerce). If you try to enable a second one, ChatNorris asks you to first turn off order and stock lookup in the other one. Odoo can stay active for leads and tickets alongside a WooCommerce store.

Sync leads to Odoo CRM

When the agent confirms a new lead in the conversation, a contact and an opportunity are also created in your Odoo CRM (crm.lead). It’s automatic: it doesn’t depend on what the visitor says.
Lead sync happens only once, at the moment the visitor confirms their details for the first time — if they later fill in additional details (for example, they add their phone), those details aren’t synced again automatically.

Check order status

The visitor checks the status of a sales order by giving the order number and the email or phone they used for the purchase. The agent answers with the order’s status, total and products. In the web widget, when the agent detects that the visitor wants an order’s status, it shows an embedded form inside the chat with two fields — Order number and Email or phone used for the purchase. The form and the answer are shown in the widget’s language (Spanish, English, or Portuguese), and it’s the same for WooCommerce and Odoo. While the form is pending, the visitor can’t write another message until they fill it in or cancel it. In WhatsApp and Instagram (where there are no embedded forms), the agent asks for these same details conversationally. To protect your customers’ data:
  • if the details don’t match, the agent says it couldn’t verify the order and asks the visitor to check the number and the contact detail — it never shows unverified information;
  • an order that doesn’t exist and a detail that doesn’t match get the same answer, so no one can guess order numbers;
  • after 5 failed attempts in the same conversation, order lookup is blocked.

Check stock and price

The agent searches products and variants in your Odoo and answers with the current sales price and stock. It queries Odoo every time it’s about to talk about a product’s price or stock, even if it already looked it up earlier in the conversation: it never answers with data from the knowledge base. If the visitor asks for a recommendation without naming a product (“what do you recommend for 5 people?”), the agent queries the live catalog and suggests one or two specific options with their price, avoiding those that are out of stock. With this capability on, the Knowledge Base source list also shows the informational row Live Odoo catalog, with the Live label and the View action link. It isn’t a source: it indicates that the agent checks price and stock directly in your Odoo in every conversation, so it doesn’t use characters or need syncing.

Build a purchase

With Build a purchase on, when the visitor wants to buy they receive a 🛒 block with each line (quantity × product = amount), a 🔗 link to each product’s page in your store, and a reference Total ≈, without shipping. Before sending it, the agent reviews the list: it removes products that are no longer sold, updates prices, and flags those that are out of stock. If a product has no page in your store, the agent tells the visitor to search for it by name. ChatNorris doesn’t create orders or charge: your store handles the final total, shipping and payment. Cart changes are recorded as internal notes in the conversation.
An agent uses a store through the API or through its public site, not both. If it already has the Odoo Action with order, stock or purchase lookup active, the panel of the Online store (public site) source warns you and takes you to Actions.

Create support ticket

The visitor can ask for help and, after confirming, a ticket is created in the Odoo Helpdesk (the official Enterprise one or the OCA community one, depending on what your instance has installed). Before creating it, the agent gathers the visitor’s subject, description, name and email, shows them a summary, and waits for an explicit “yes”.
  • Assigned team: choose which Helpdesk team new tickets are assigned to. With Automatic (first available team), the first team your Odoo returns is used.
  • When to create a ticket: instructions for the agent about when to offer support via ticket. It comes with default text that you can edit; Restore default text brings it back.
Ticket actions (Odoo, Zendesk and Freshdesk) follow a fixed rule, above whatever you write in When to create a ticket:
  • If the visitor describes a problem or asks a question without asking for a ticket, the agent answers with the knowledge base. If it can’t solve it, or the visitor says the answer didn’t help, it offers to create the ticket.
  • If the visitor asks for a ticket directly, the agent first offers help (with the answer, if it has one, or by asking what’s going on) and asks whether they still prefer the ticket.
  • The ticket is started if the visitor insists, if the agent already tried and didn’t have the information, or if the answer didn’t help.
During a ticket flow, the agent doesn’t offer the Lead Form or a transfer to a person, so as not to confuse the visitor. And if the visitor asks to open a ticket or a support case, the agent uses this action instead of transferring to a person with Human Handoff.
Tickets are really created in your Odoo, also from the Playground. If the agent has this capability on, before the first Playground message you’ll see the notice This test can create real data with Continue and Cancel.

Check ticket status

The visitor can check the status of a ticket already created by this agent, by giving the ticket number and the email they used when creating it. The agent only reports on tickets it created itself, not any ticket in your Helpdesk. Checking the status of an existing ticket doesn’t go through the “resolve first” rule.

Credits

Connecting and testing Odoo doesn’t use credits. Each agent response that queries your Odoo live (orders, or price and stock) adds 0.5 AI credit to the response’s normal cost, only once per response. Tests in the Playground don’t add this charge. See AI models and credits.

Pause or disconnect

  • Pause: turn off the Active switch on the Odoo row in Integrations. The API key is kept, but the Action can’t call your Odoo until you reactivate it.
  • Disconnect: from the ··· menu or the Odoo detail, click Disconnect. The Odoo Action is turned off, but its configuration is kept, and the API key is deleted from ChatNorris.
To use the Action again, connect Odoo again and reactivate it. What was already created in Odoo (contacts, opportunities and tickets) stays in your instance. If you’re no longer going to use the API key, delete it in Preferences → Account Security of your Odoo user.
Deleting the Odoo Action (Delete action button) stops syncing leads, looking up orders and managing tickets with Odoo, and can’t be undone.

Frequently asked questions

Odoo is exclusive to the Premium plan — if your organization is on Free or Standard, it won’t appear as connectable or as a creatable action. Check the plans or write to us at hola@chatnorris.ai.
Your instance doesn’t have the module that capability needs installed (see the table in Configure the Action). If you just installed it, test the connection again from Integrations so ChatNorris detects it. Build a purchase also needs Check stock and price on.
Lead sync happens only once, when the visitor confirms their details for the first time. Details they add later aren’t synced again automatically.
Yes, but only one of the two can look up orders and stock. The usual setup is to leave leads and tickets in Odoo, and order and stock lookup in WooCommerce. See WooCommerce.
No. Each provider supports only one connection per agent. If you need to connect different instances, use separate agents.