> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chatnorris.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Odoo

> How to connect your Odoo ERP to a ChatNorris agent to sync leads to the CRM, look up verified orders, answer live price and stock, build the purchase with links to your store, and create and look up Helpdesk tickets.

# 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](https://chatnorris.ai/pricing) or write to us at [**hola@chatnorris.ai**](mailto:hola@chatnorris.ai).
* At least one agent created in ChatNorris. If you don't have one yet, follow [Create an agent](https://docs.chatnorris.ai/en/guias/crear-agente-wizard.md).
* 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](#configure-the-action)).
* The **Owner** or **Admin** role in your ChatNorris organization.

> [!TIP]
>
> 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)](https://docs.chatnorris.ai/en/guias/knowledge-base.md#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.

> [!TIP]
>
> 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.

| Capability | What it does | Requires in Odoo |
| - | - | - |
| **Sync leads to Odoo CRM** | Every time a visitor confirms their contact details for the first time, a contact and an opportunity are created automatically in your Odoo CRM. | CRM module |
| **Check order status** | The visitor checks the status of a sales order by giving the order number and the email or phone used for the purchase. In the web widget they do it with the same embedded form as WooCommerce. | Sales module |
| **Check stock and price** | The agent searches products and variants in your Odoo and answers with the current sales price and stock, never with data from the knowledge base. | Sales module (`sale`) |
| **Build a purchase** | The agent builds a list of products from your store with the visitor and, when they want to buy, sends them the link to each product. It doesn't create orders or charge: your store handles the final total, shipping and payment. Requires turning on **Check stock and price** first. | eCommerce module (`website_sale`) |
| **Create support ticket** | The agent can create a support ticket in your Odoo Helpdesk, only after the visitor explicitly confirms. | Helpdesk module (Enterprise or the community version, `helpdesk_mgmt`) |
| **Check ticket status** | The agent can tell the status of a ticket it created itself, after verifying the requester's identity. | Helpdesk module |

If your instance doesn't have the corresponding module installed, that capability appears disabled.

> [!WARNING]
>
> **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.

> [!NOTE]
>
> **One store per agent.** An agent can have only one active store for looking up orders and stock (for example Odoo or [WooCommerce](https://docs.chatnorris.ai/en/guias/woocommerce.md)). 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.

> [!NOTE]
>
> 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](https://docs.chatnorris.ai/en/guias/conversaciones.md#internal-cart-notes) in the conversation.

> [!NOTE]
>
> 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)](https://docs.chatnorris.ai/en/guias/knowledge-base.md#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](https://docs.chatnorris.ai/en/guias/chat-en-vivo-handoff.md).

> [!WARNING]
>
> 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](https://docs.chatnorris.ai/en/guias/modelos-ia-creditos.md).

## 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.

> [!NOTE]
>
> 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

> [accordion] Why don't I see Odoo as an option?
>
> 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](https://docs.chatnorris.ai/en/guias/modelos-ia-creditos.md) or write to us at [**hola@chatnorris.ai**](mailto:hola@chatnorris.ai).

> [accordion] A capability appears disabled
>
> Your instance doesn't have the module that capability needs installed (see the table in [Configure the Action](#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.

> [accordion] The visitor filled in their phone later and it didn't reach Odoo
>
> Lead sync happens only once, when the visitor confirms their details for the first time. Details they add later aren't synced again automatically.

> [accordion] Can I use Odoo and WooCommerce in the same agent?
>
> 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](https://docs.chatnorris.ai/en/guias/woocommerce.md).

> [accordion] Can I connect two Odoo instances to the same agent?
>
> No. Each provider supports only one connection per agent. If you need to connect different instances, use separate agents.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.