# How to add an AI chatbot to Odoo

> Source: https://netray.co/integrations/odoo-ai-chatbot
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Add an AI chatbot to Odoo by deciding who it serves (staff in Discuss, customers on the portal or website) and grounding it in Odoo records through the external API plus retrieval over documents. Odoo's Live Chat has its own rule-based chatbot, so an LLM assistant usually runs as a separate service that plugs into those channels.

## System

Odoo

## Capability

ai-chatbot

## Intro

A chatbot on Odoo can mean three different things. An internal assistant for staff who ask where an order is, a customer-facing assistant on the website or portal, or a bot that answers helpdesk questions from a knowledge base. Each needs different permissions and different risk tolerance.

Odoo ships with channels that a bot can live in: Discuss for internal messaging, Live Chat for website visitors, the customer portal, and email gateways. It also has a script-based chatbot feature for Live Chat that follows fixed steps rather than free-form language.

The core job of any useful assistant is grounding: answering from the actual records and documents, citing them, and refusing when it does not know.

## Use Cases

### Staff order and stock questions in Discuss

**Description:** A bot user in a Discuss channel answers where is order S00231 or how many of this part are free, with links to the records.

### Customer portal order status

**Description:** Logged-in portal users ask about their own orders and deliveries; the bot reads only records visible to that customer.

### Helpdesk deflection

**Description:** On Live Chat or a helpdesk ticket form, the bot answers from product manuals and knowledge articles, and hands off to an agent with the conversation summary.

### Shop-floor how-do-I assistant

**Description:** Operators ask about work instructions and attached documents on work orders, answered from retrieved text.

### Onboarding helper

**Description:** New staff ask how to do a task in Odoo, answered from your own process documents rather than generic web advice.

## System Surface

- Discuss channels and bot users: an LLM service can post and read messages as a dedicated res.users record through the external API or a custom module, depending on version.
- Live Chat (im_livechat) with operators and optional script-based chatbots; handover to a human is a built-in concept you can mirror.
- Customer portal and website: embed a chat widget that calls your service, which authenticates the portal user before reading any records.
- External API (XML-RPC or JSON-RPC) with API keys for reading orders, tickets and products, and ir.attachment for documents you want indexed.
- Helpdesk and Knowledge apps (Enterprise) hold articles and tickets, which are natural sources for retrieval; community alternatives need attachments or website pages.

## How It Works

### Pick one audience and channel

**Detail:** Start with internal staff in Discuss. It is the lowest risk and teaches you what questions people ask before you face customers.

### Build the knowledge layer

**Detail:** Index manuals, work instructions and articles into a vector store with metadata such as product, revision and access level.

### Build the record layer

**Detail:** Add read-only tools over the Odoo API for orders, stock and tickets, scoped per user so record rules apply.

### Wire the channel

**Detail:** Use a bot user in Discuss or a widget in the portal that calls your service. Pass the logged-in identity, never trust a user id typed in chat.

### Constrain answers

**Detail:** Require citations to record numbers or document titles, and a fallback to a human when confidence is low.

### Review conversations weekly

**Detail:** Read failures, add missing documents, fix tool gaps. Most improvement comes from content, not prompts.

## Example Flows

### Portal customer asks about a delivery

**Trigger:** A logged-in customer types: where is my order?

**Steps:**

- The widget sends the message with the customer's session to your service.
- The service resolves the partner and reads their sale.order and stock.picking records.
- It replies with status and expected date, linking to the portal order page.
- If the order is unclear, it offers to hand off to sales with a summary.

**Result:** Fewer status emails, and the customer never sees other customers' data.

### Technician manual question

**Trigger:** A service technician asks about a torque value for a machine model.

**Steps:**

- Bot retrieves passages from the indexed manual for that model.
- It answers with the value and the page or section reference.
- If no passage matches, it says so and suggests the engineering contact.

**Result:** A sourced answer, with refusal instead of guessing when the document does not cover it.

### Helpdesk ticket hand-off

**Trigger:** A visitor on Live Chat asks something outside the bot's knowledge.

**Steps:**

- Bot detects low confidence.
- It summarises the question and relevant context.
- It creates or updates a helpdesk ticket and invites a human operator.

**Result:** The agent starts with the context instead of asking again.

## On Prem

Odoo and the chatbot can both run inside your network. Host an open-weight model with vLLM or Ollama on your own GPU server, keep the vector index on local storage, and have the chatbot service call Odoo over the internal URL. For customer-facing use, expose only the chat widget endpoint through your reverse proxy, with the model and Odoo still unreachable from the internet. Air-gapped plants can run an internal-only assistant in Discuss for staff using the same architecture, with documents loaded from a file share.

## Security

- Authenticate the user from the Odoo or portal session and never from chat text.
- Use per-user or per-partner scoped reads so customers only ever see their own records.
- Filter retrieval by access level so internal documents are not retrieved for external users.
- Treat user messages and attached documents as untrusted input that may attempt prompt injection.
- Store conversation logs with retention rules, and tell users when they are talking to a bot.

## Options

### Odoo Live Chat script-based chatbot

**Fit:** Simple FAQs and routing with fixed steps. Enough if you do not need free-form answers.

**Effort:** Hours to days, configuration only.

### Custom LLM assistant built in-house

**Fit:** You have developers and want an internal or portal assistant tailored to your processes.

**Effort:** A few weeks for a grounded internal assistant, more for customer-facing use.

### Netray with on-prem models

**Fit:** You need the assistant to run privately, with retrieval over manuals and Odoo records.

**Effort:** A scoped pilot, then expansion by audience.

## Pitfalls

- Launching to customers first, before learning from internal questions.
- Indexing outdated manuals so the bot cites a superseded revision.
- Giving the bot a broad service account instead of per-user scoping.
- No human hand-off path, which frustrates users when the bot cannot answer.
- Measuring success by chat volume instead of resolved questions.

## Faq

### Does Odoo have a built-in AI chatbot?

**Answer:** Odoo has a Live Chat chatbot feature that follows scripted steps. Recent versions may add AI-assisted features, but what exists varies by version and edition. A grounded assistant over your own records and documents usually needs a separate service.

### Can the chatbot answer from our own manuals?

**Answer:** Yes, with retrieval. You index the documents, retrieve relevant passages for each question, and require the answer to cite them. Keep revision metadata so superseded documents are not used.

### Can customers use it safely?

**Answer:** Yes if identity comes from a verified portal session, reads are scoped to that customer's records, and internal documents are excluded from retrieval. Start with staff use and add customers after testing.

### Can it run without internet access?

**Answer:** Yes. An open-weight model, a local vector index and Odoo on the internal network are enough. Quality depends on the model size and your GPU capacity.

### Should the bot create or change records?

**Answer:** Keep it read-only at first. Later you can let it create helpdesk tickets or draft records, with logging, and keep any stock or accounting changes behind human approval.

## Search terms

odoo ai chatbot, odoo chatbot, ai chatbot for odoo, odoo live chat ai, odoo discuss bot, odoo helpdesk ai, odoo customer portal chatbot, on-prem chatbot odoo, odoo llm chatbot

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
