How to add an AI chatbot to Odoo
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.
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.
What teams use it for
Staff order and stock questions in Discuss
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
Logged-in portal users ask about their own orders and deliveries; the bot reads only records visible to that customer.
Helpdesk deflection
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
Operators ask about work instructions and attached documents on work orders, answered from retrieved text.
Onboarding helper
New staff ask how to do a task in Odoo, answered from your own process documents rather than generic web advice.
Odoo integration 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
- 1
Pick one audience and channel
Start with internal staff in Discuss. It is the lowest risk and teaches you what questions people ask before you face customers.
- 2
Build the knowledge layer
Index manuals, work instructions and articles into a vector store with metadata such as product, revision and access level.
- 3
Build the record layer
Add read-only tools over the Odoo API for orders, stock and tickets, scoped per user so record rules apply.
- 4
Wire the channel
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.
- 5
Constrain answers
Require citations to record numbers or document titles, and a fallback to a human when confidence is low.
- 6
Review conversations weekly
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?
- 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.
- 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.
- 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.
Keeping data 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 checklist
- 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.
Ways to get it done
Odoo Live Chat script-based chatbot
Effort: Hours to days, configuration only.
Simple FAQs and routing with fixed steps. Enough if you do not need free-form answers.
Custom LLM assistant built in-house
Effort: A few weeks for a grounded internal assistant, more for customer-facing use.
You have developers and want an internal or portal assistant tailored to your processes.
Netray with on-prem models
Effort: A scoped pilot, then expansion by audience.
You need the assistant to run privately, with retrieval over manuals and Odoo records.
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.
Frequently asked questions
Does Odoo have a built-in AI chatbot?
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?
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?
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?
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?
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.
Want AI chatbot working on your Odoo?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment