Integration · Odoo
AI quote and sales order automation for Odoo
ERP Agent reads the customer’s request from email, PDF or Excel, identifies the right products in your Odoo catalogue, prices each line with that customer’s pricelist and creates a quotation in Odoo Sales once your rep has approved it, or a confirmed sales order when the request is an order. We set up the Odoo connection for your company during onboarding.
What ERP Agent reads from Odoo
The connection runs through Odoo’s external API: the JSON-2 API from Odoo 19, and XML-RPC or JSON-RPC on earlier versions. It signs in with the API key of a dedicated Odoo user that has only the access rights the work needs.
| Data in Odoo | Model | What ERP Agent does with it |
|---|---|---|
| Products and variants | product.product (Internal Reference, barcode) | Identifies the right product and variant for every request line from the customer’s own wording, and checks each one exists in Odoo before anything is written |
| Units of measure | uom.uom | Puts each line in a unit of measure Odoo knows for that product |
| Customers | res.partner | Finds the customer behind the request, warns the rep when none matches and flags a delivery address that differs from the one in Odoo |
| Pricelists | product.pricelist, the customer’s pricelist | Prices each line with the pricelist Odoo applies to that customer, its rules and discounts included |
Your products, pricelists and contacts stay exactly as they are: the agent reads them and never changes them.
What ERP Agent writes to Odoo
Two documents, both written only after a rep has approved the draft.
| Document | Model | What is written |
|---|---|---|
| Quotation | sale.order with sale.order.line | The customer, the customer reference and every approved line with product, quantity, unit of measure and price from the customer’s pricelist, or the price your rep set in review |
| Sales order | sale.order, confirmed | The same lines, plus the delivery address and delivery date taken from the request; the quotation is confirmed, so Odoo treats it as a sales order from the start |
In Odoo a quotation and a sales order are the same record: confirming the quotation makes it a sales order. Either way it is an ordinary record your team opens in Odoo Sales, and when a customer accepts a quotation you confirm it as usual.
Why distributors on Odoo add an AI quote agent
The hard part of a quote is not typing it into Odoo. It is reading “fire damper 315 EI60” or a customer’s own code and knowing which product that is, what this customer pays for it and which lines need a second look. According to our case study, a sales rep spends on average 4–7 minutes per line when creating quotes and orders by hand; for a 30-line enquiry, that is two to three and a half hours.
ERP Agent does that groundwork. It is the first agentic AI layer for wholesale distribution ERP systems, and on Odoo it works on top of the database you already run: no new modules to maintain, and nothing changes for your customers. They get answers sooner, reps spend their time on judgement and selling, and new reps are productive sooner. Put a number on today’s manual work with the quote cost calculator.
The same agent runs quote automation and order entry automation on any ERP; this page covers what it does inside Odoo.
How Odoo quote automation works
A request reaches the agent
Reps forward the customer’s email from Outlook to your company’s own agent mailbox, or paste it into the web app as it is and choose quotation or sales order. PDF (scanned too), Excel, CSV, Word, images and forwarded emails all work. Your own systems can send requests through the REST API or the MCP server.
It finds the customer and the products
The customer is identified from the request and matched in your Odoo contacts. Abbreviations, dimensions, materials, manufacturer numbers and customer part numbers are mapped to your products, and candidates that contradict a stated size or rating class are pushed down. A request in one language finds products described in another. A line too vague to identify goes on your placeholder product with the customer’s wording kept, never a guess.
Prices come from Odoo
Each line carries the price from the pricelist Odoo applies to that customer. Standard fee rows, such as packing, are added following your rules.
A rep reviews the draft
Lines appear in the table as they are matched. The rep checks the marked ones, takes an alternative where needed, makes changes in quote chat and approves.
It is created in Odoo
Every product is checked against Odoo first, so a document never carries a product Odoo doesn’t know. A short countdown lets the rep cancel. The lines your team sends teach the agent: the next time a customer writes the same thing, it picks the same product.
Example: a ductwork list becomes an Odoo quotation
A mechanical contractor emails a ventilation list to an HVAC wholesaler that runs Odoo. The rep forwards it to the agent mailbox, which is set to create quotations.
“Quote please for the Riverside school job, list below. Delivery to site in two weeks.”
- 30 x spiral duct 200 3m
- 12 x bend 90 200
- 8 x fire damper 315 EI60
- 4 x attenuator 250 600L
- 20 x our code RV-160
- 1 x misc hangers and fixings
| Request line | Proposed Odoo product | Qty | Match | Note |
|---|---|---|---|---|
| spiral duct 200 3m | Spiral duct Ø200 mm, galvanised, 3 m | 30 | 96 | Diameter and length match. |
| bend 90 200 | Pressed bend 90°, Ø200 mm | 12 | 92 | Angle and diameter match. |
| fire damper 315 EI60 | Circular fire damper Ø315 mm, EI 60 S | 8 | 87 | EI 30 models pushed down. |
| attenuator 250 600L | Circular silencer Ø250 mm, length 600 mm, 50 mm insulation | 4 | 77 | Insulation not stated: 50 mm is what this customer buys; 100 mm offered as an alternative. Marked for review (under 80). |
| our code RV-160 | Ceiling diffuser Ø160 mm, white | 20 | 98 | The customer’s own code, learned from an earlier order. |
| misc hangers and fixings | Placeholder product, wording kept | 1 | – | Too vague to identify; the rep decides. |
Illustrative example with sample products, codes and scores. In a real draft each line also carries the price from the customer’s Odoo pricelist, and the school’s site address is flagged because it differs from the customer’s address in Odoo.
What the rep sees before anything reaches Odoo
- A match score from 0 to 100. Lines under 80 are marked, so review starts where judgement is needed. How the match score works.
- Reasoning. Open a line to see why the agent chose that product.
- Alternatives. Runner-up products are kept for every line; take one instead with a click.
- Quote chat. Add or remove rows or change quantities and prices, then approve or reject each proposed edit line by line.
- Your team stays in control. The rep approves the draft before it is created in Odoo, and nothing reaches a customer without approval.

Security and control
- GDPR-compliant, zero data retention. ERP Agent is GDPR-compliant, and models run with zero data retention. More on security and data handling.
- Access agreed first. Before setup, we agree which data the agent needs and which systems it can access.
- A dedicated Odoo user with the minimum rights. The connection uses its own bot user, as Odoo recommends for integrations, with only the access rights the work needs. Odoo checks every call against that user’s access rights and record rules, and its access log shows what the bot did.
- A person approves. Nothing is written to Odoo until a rep approves the draft, and nothing reaches a customer without your team.
- Reads, never rewrites. Products, pricelists and contacts are read; the agent creates quotations and sales orders and changes nothing else.
Onboarding: what we need from you
We set up the Odoo connection for your company during onboarding. Your reps don’t wait for it: they start with a catalogue file the same week.
A catalogue export
An export of your products from Odoo, for example to Excel or CSV. Reps forward real requests from the first week, reviewing every draft in the web app. See starting from a catalogue file.
A bot user and an API key
Your Odoo administrator creates a dedicated user for ERP Agent with the access rights we agree, and an API key for it under Preferences › Account Security. We send the exact list of rights.
Your database
Which Odoo database and company the agent works in, whether on Odoo Online, Odoo.sh or your own servers. Start on a staging or duplicate database if you prefer.
Your rules and history
Which placeholder product takes lines too vague to identify, which fee rows the agent adds, and past quotations or Outlook email history, so the agent learns how your customers write.
Live in Odoo
Once the connection is live, customer prices come from Odoo and approved quotations and sales orders are created there directly.
ERP Agent in numbers
- 4–7 min
- per line to create quotes and orders by hand, according to our case study
- 95%
- average automation across our customers
- 3–8 min
- for the agent to prepare a typical request
- 1–3 min
- in fast mode, for requests of up to about 50 lines
Odoo today, any ERP tomorrow
ERP Agent integrates with Odoo, Business Central, SAP, NetSuite, Sage and any other ERP or CRM. We set up the connection for your company during onboarding, and you can start with a catalogue file the same week. Group companies on different systems use the same agent and the same review screen on each. See Business Central, Exact, Sage and all integrations.
ERP Agent is live with steel, HVAC and fastener distributors. What it checks on each line follows your trade: duct sizes and fire ratings for HVAC wholesalers, DIN and ISO codes for fastener distributors, manufacturer numbers and customer codes for industrial supplies distributors.
Frequently asked questions
Does ERP Agent work with Odoo?
Yes. ERP Agent reads products, contacts and pricelists from Odoo through its external API and creates quotations and sales orders in Odoo Sales after a rep approves. We set up the connection for your company during onboarding, and you can start with a catalogue file the same week.
Does it create quotations or sales orders in Odoo?
Both. In the web app the rep chooses quotation or sales order for each request; emails forwarded to the agent mailbox become the document type your company has chosen. A sales order is created as a confirmed sale.order, so it moves on to delivery in Odoo as usual. For customer purchase orders arriving by email, see purchase order to sales order automation.
Does ERP Agent replace Odoo’s own AI agents?
No, it adds a dedicated quote and order agent alongside them. Odoo’s AI agents are general assistants you configure inside Odoo. ERP Agent is built for wholesale requests: it identifies the right products from customers’ shorthand and own codes in requests of several hundred lines, scores every line from 0 to 100 with its reasoning and alternatives, matches across languages and learns from the lines your team sends.
What does ERP Agent need access to in Odoo?
A dedicated Odoo user with read access to products, units of measure, contacts and pricelists, and the right to create and confirm sales orders, plus an API key for that user. Odoo applies that user’s access rights and record rules to every call, and we agree the scope with you before setup.
Which Odoo versions and hosting options does it work with?
Odoo 19 and later through the JSON-2 API, and earlier versions through XML-RPC or JSON-RPC, which Odoo keeps available until Odoo 22. It works on Odoo Online, Odoo.sh and Odoo on your own servers, wherever the external API is open to your database. We check the access with you during onboarding.
How do we get started?
Book a call and bring a few real requests. You start with a catalogue file the same week, and we set up the Odoo connection during onboarding. Pricing is a setup fee plus a monthly subscription, with an itemised quote before you start. See pricing.
Related
- AI quote automation for distributors and wholesalers
- Order entry automation for distributors: customer POs to sales orders
- ERP integrations for AI quote and order automation, on any ERP system
- AI quote and order automation for Business Central
- AI quote and sales order automation for Exact Online and Exact Globe
- HVAC wholesale quote automation: from schedule to reviewed quote
Let’s look at your quote workflow
Bring a request from your inbox
Book a 30-minute call with a few real requests; we’ll show how the agent handles them with your products and what connecting your Odoo involves.
- Your requests and product catalogue
- Your pricing and review process
- A clear scope for the next step

Lauri Pelkonen
Founder & CEO
Book a 30-minute call Request a demo by emailOr use the address directly