Skip to content
Auboros

The AI Sales Order Agent: How Emailed Purchase Orders Become Draft Orders in Odoo and MYOB Acumatica

An AI sales order agent reads emailed PDF purchase orders and drafts sales orders in Odoo or MYOB Acumatica. Neither does it natively; a person confirms.

By Josh Craig, Managing Director, Auboros · · Updated

Updated 30 September 2026: added the short answer, the agent spec block and a captioned intake table; Odoo section now covers Odoo 20’s Create Records skill and the built-in MCP server (unveiled 24 September 2026); MYOB section rewritten around AI Automation and the AP Bill Entry feature (the “AI Studio” name is gone); ABS figures re-sourced to the 25 June 2026 release; FAQ moved to the FAQ block.

An AI sales order agent reads an emailed PDF purchase order, matches the customer, products and prices against live ERP records, and drafts a sales order that a person confirms. As at 30 September 2026 neither Odoo nor MYOB Acumatica turns a customer PO into a sales order natively, so it is built as one of the AI agents for ERP in Australia we run drafts-first.

At a glance

  • Who it is for: wholesale distributors, importers and manufacturers on Odoo or MYOB Acumatica whose customers still send purchase orders as PDF attachments, scans or spreadsheets.
  • Problem it solves: the sales desk retypes every order line by line, and the first keying error of the day is usually waiting in row three.
  • Platforms: Odoo 19 and Odoo 20 (Enterprise, Standard or Custom plan with API access) and MYOB Acumatica 2025.2 or 2026.1. Global Acumatica runs 6 to 9 months ahead of the ANZ release and is labelled separately below.
  • Trigger: a new email with an attachment lands in the orders inbox the agent watches.
  • Inputs read: the attachment (PDF, scan, photo or spreadsheet), the customer record, the customer’s part-number cross-reference, the product list, the price list and the customer’s open orders and credit status.
  • What the agent drafts: a sales order in draft (Odoo) or on hold (MYOB Acumatica) with the source document attached and a note listing anything it was unsure of.
  • Approval gate: a named person on the sales desk confirms, edits or deletes every draft. The agent has no confirm, reserve or invoice permission.
  • Audit trail: source email and attachment, extracted values, matched records, confidence flags and the approver’s name, all on the order’s chatter or notes.
  • Typical cycle time: overnight orders drafted before the sales desk starts; a clean order takes the approver under a minute to confirm.
  • What it never does: confirm an order, reserve stock, change a price or credit limit, create a new customer or product, or send anything to the customer.
  • Typical cost: pilot or proof of concept from $5,000 ex GST per the AI agents for ERP in Australia hub; model usage for order reading is typically a few US dollars a day per the running costs guide.
  • Typical timeline: discovery 1 to 2 weeks, a drafts-only sandbox pilot on one inbox and your top ten customers 2 to 6 weeks, go-live 1 to 2 weeks.
  • Last verified: 30 September 2026 against the Odoo 20 document digitisation documentation, the Odoo 20 AI agents documentation, MYOB’s AI in MYOB Acumatica page and the ABS Characteristics of Australian Business 2024-25 release.

Every wholesale distributor and manufacturer we talk to has the same inbox. Customer purchase orders arrive as PDF attachments, sometimes as a photo of a printed page, sometimes as a spreadsheet nobody asked for. Someone on the sales desk retypes each one into the ERP, and the error rate is what you’d expect from a person doing the same thing thirty times before morning tea.

The demand is real. In MYOB’s ERP Trends research, 78% of wholesale distribution businesses said they plan to adopt or expand AI in their ERP, and 35% had already put AI into a business process. The Australian Bureau of Statistics reported on 25 June 2026 that 12% of all businesses used AI in 2024-25, up from 1% three years earlier, with innovation-active large businesses at 37%. The gap between intent and adoption is exactly where order intake sits: high volume, repetitive, and the cost of an error is visible on the loading dock within days.

What does an AI sales order agent actually do?

An AI sales order agent in an ERP context is software that watches an intake channel, reads whatever arrives, and turns it into a draft transaction a person can approve. In practice it has five jobs.

  • Watch the intake channel. Usually a dedicated email address or shared inbox where customers already send orders. Nothing about the customer’s habits has to change.
  • Read the document. PDFs, scans, spreadsheets and photos all carry the same information in wildly different layouts. The model’s job is extraction: customer, purchase order number, delivery address, line items, quantities, prices, dates and any free-text instructions.
  • Match against ERP records. Extracted text is only useful once it’s tied to your actual customer record, your product codes and your price list. The customer writes their part number; the agent has to find yours.
  • Validate. Does the price match the customer’s agreed pricing? Is the unit of measure sensible? Has this PO number been seen before? Is the customer on credit hold? Our post on AI credit management agents covers that last check in detail.
  • Draft and wait. The agent creates a sales order in draft, attaches the source document, writes a note about anything it wasn’t sure of, and stops. A person approves, edits or rejects.

Everything before the last step is mechanical. The last step is the control, and it stays human.

What does an AI sales order agent actually do?
Intake channelWhat arrivesWhat the agent can read reliablyWhere it needs a person
Email with PDF attachmentCustomer’s own PO layoutHeader, line items, PO number, delivery addressCustomer part numbers with no cross-reference, free-text instructions
Scanned or photographed POSkewed or low-contrast imageMost printed text; handwriting is unreliableAny line where the quantity or code is unclear
Spreadsheet order formColumns in the customer’s orderEverything, once the column mapping is savedFirst order from a new template
Customer portal export or EDIStructured dataEverythingPrice or unit-of-measure disagreements with the price list
Phone or verbal orderNothing to readNothingThe whole order; the agent can only draft from a written summary

Table: intake channels for an AI sales order agent and where each one still needs a person, as built by Auboros, September 2026.

What does Odoo give you today?

Odoo ships document digitisation as a native, working feature in both 19 and 20: upload a document or email it to a journal alias and Odoo’s OCR and AI create a draft record with the fields filled in. It runs on prepaid In-App Purchase (IAP) credits, and every PDF attached to an email to the alias becomes a draft.

Here’s the honest catch: it’s built for the purchasing side. The documented targets are vendor bills and refunds and, with a settings change, customer invoices and credit notes. There is no switch that turns an emailed customer purchase order into a draft sales order.

Odoo 20, unveiled at Odoo Experience on 24 September 2026, moves the line but does not erase it. The Odoo 20 AI agents documentation lists a preconfigured Create Records skill, and the Odoo 20 release notes say an agent can create records “including by uploading a file of instructions like a PDF”. That is a person in a chat window attaching a PO and asking the agent to draft the order; the record lands in draft and the person is still there to check it. It is not an unattended inbox watcher, and all Odoo 20 AI features now need IAP credits. Odoo 20 also ships a first-party MCP server, so an external agent can read customers, products and price lists through a scoped key; we cover what it exposes and who it runs as in our Odoo 20 MCP server guide.

So the build we do is the same on 19 and 20: an agent outside Odoo reads the PO, matches through the API or MCP under role-scoped credentials, and writes a draft order. If you want an in-Odoo automation to act on that draft afterwards, read how to make an Odoo AI server action wait for a person first, because a called tool runs unconditionally unless the code stops it. Our broader guide to AI agents in Odoo covers the rest.

What does MYOB Acumatica give you today?

On MYOB Acumatica the shipped piece is again on the payables side. MYOB’s AI in MYOB Acumatica page lists AP Bill Entry, which extracts supplier, invoice, amount and line-item data from incoming bills and checks it against supplier records, alongside Expense Management, Anomaly Detection and AI Automation. Nothing on that list reads a customer purchase order.

AI Automation (launched as AI Studio; MYOB’s page and knowledge base now use the new name) is the feature people ask about, and it is a field-filler, not a document creator. A prompt runs when a person picks its command on an open record, writes text into fields on that record, and stops; Acumatica’s own 2025 R2 FAQ lists creating documents, records or lines as unsupported. It can tidy a description on a sales order screen; it cannot create the order. We unpack exactly where the person stays in the loop in our MYOB Acumatica AI Automation hand-off note.

Two practical consequences for Australian businesses. First, the global-to-ANZ release lag applies, typically 6 to 9 months, so what Acumatica announces globally and what’s in your MYOB Acumatica instance are usually different versions; we track what’s shipped locally in our review of MYOB Acumatica’s AI features. Second, an order intake agent for MYOB Acumatica today is an integration build: the agent reads the PO, then creates an on-hold sales order through the REST API under a scoped user, and your team releases it. That’s not a limitation to apologise for. It’s the same drafts-first shape we’d recommend even if a native feature existed.

What does a morning with the agent look like?

Tuesday, 7:40am, at a fictional but familiar Queensland distributor. Twenty-eight purchase orders arrived overnight to the orders@ address the agent watches. By 8am the agent has processed all of them.

Twenty-three were clean: every line matched a product record, prices agreed with each customer’s price list, and the agent drafted each sales order with the PDF attached. Five got flagged. On one, the customer ordered “6 x FLX-240” and the agent matched the product but noticed the customer’s last eight orders were in cartons of 24, so a quantity of 6 might mean 6 cartons. It drafted the order at 6 units and wrote a note recommending someone confirm. On another, line 12 used a customer part number with no cross-reference in the system, so the agent left the line open and said so. One PO number had been seen three days earlier, a likely duplicate. Nothing was confirmed, nothing was reserved, nothing hit the warehouse.

At 8:30 the sales coordinator opens the draft queue, approves the clean ones in a few minutes, rings the customer about the carton question, adds the missing cross-reference, and deletes the duplicate. Every confirmed order was confirmed by her.

Nobody buys this because the agent types faster than a person. They buy it because the sales desk stops retyping the twenty-three clean orders and spends the morning on the five that needed a decision.

Josh Craig, Director, Auboros

Where does it go wrong, and what catches it?

Language models make errors, and order intake has sharp edges. The recurring failure modes are worth naming: customer part numbers that don’t map to your SKUs, unit-of-measure confusion between eaches and cartons, superseded or contract pricing the model can’t know about, duplicate POs sent by email and portal, free-text instructions like “part shipment OK” that never make it onto the order, and occasionally an extracted line that isn’t on the document at all, because models can hallucinate plausible text.

The guardrails are the same ones we apply across every agent pattern, and they’re covered in depth in our AI agent governance guide. Drafts-first, always: no agent-confirmed orders. Match, don’t trust: extracted values only enter the order once they’ve been tied to real ERP master data, so a hallucinated product can’t survive matching. Confidence routing: anything below a threshold goes to a person with the reason stated. Duplicate checks on customer PO numbers. A full audit trail from source PDF to draft to approver. And role-scoped permissions, so the agent holds the access of a sales clerk, never an administrator. If this is your second or third agent, record it in an AI agent register so someone owns it.

There’s a privacy job too. Purchase orders carry personal information: names, direct phone numbers, delivery addresses. Sending them to an AI model makes the Australian Privacy Principles part of your design conversation: where the model processes data, what’s retained, and what your privacy policy says about it. The Office of the Australian Information Commissioner’s guidance on commercially available AI products treats what you put into a model as a use or disclosure, so the inbox the agent reads is inside your privacy obligations, not outside them.

Where to start

Data hygiene first, because matching is only as good as what it matches against. Tidy product codes, build the customer part number cross-reference for your biggest accounts, and confirm price lists in the ERP reflect what you’ve agreed. Then start narrow: one intake inbox, your top ten customers by order volume, running in a sandbox against copied data before it touches production. Measure minutes per order and error rate for a fortnight before and after. A drafts-only pilot at this scope is a matter of weeks, not months, and the first fortnight is mostly tuning matching rules rather than anything exotic.

Goes well with

Drowning in emailed purchase orders?

Auboros designs drafts-first order intake agents for Odoo and MYOB Acumatica from Brisbane, working with businesses across Queensland and beyond, and order drafting is the first pattern we usually build because the payback is quick and the risk is controlled. If you’d like to see what your own inbox would look like with the twenty-three clean orders already drafted, book a free consultation and we’ll look at your order intake together, with no obligation either way.

FAQ

Frequently asked questions

Can Odoo create sales orders from emailed PDF purchase orders automatically?

Not natively, as at September 2026. Odoo's document digitisation reads vendor bills and, optionally, customer invoices. In Odoo 20 a person can attach a PO in an AI agent chat and ask it to create the record, but that is user-initiated, not an inbox watcher. Unattended intake needs an agent built on Odoo's API or MCP server, with the order left in draft for a person to confirm.

Can MYOB Acumatica read emailed purchase orders and create sales orders?

No. MYOB Acumatica's shipped AI covers AP Bill Entry, Expense Management, Anomaly Detection and AI Automation. AI Automation writes fields on a record a person has open and cannot create documents, records or lines. A customer PO intake agent is an integration build through the REST API that creates on-hold sales orders your team releases.

What does an AI sales order agent do?

It watches an orders inbox, reads each PDF, scan or spreadsheet, extracts the customer, PO number, lines, quantities and prices, matches them to your ERP's customer, product and price records, checks for duplicates and credit holds, and drafts a sales order with the source document attached. A person confirms every order; the agent never confirms one itself.

How accurate is AI purchase order extraction?

Accurate enough to draft, not accurate enough to confirm unattended. Models misread part numbers, confuse eaches with cartons and occasionally invent a line. The guardrails are matching every extracted value to real ERP master data, routing low-confidence lines to a person with the reason stated, duplicate PO checks and a full audit trail from PDF to approver.

How much does an AI sales order agent cost in Australia?

A drafts-first pilot on one inbox and your top ten customers starts from $5,000 ex GST at Auboros as at September 2026, and typically runs 2 to 6 weeks in a sandbox before go-live. Model usage for reading orders is usually a few US dollars a day. The bigger cost is data hygiene: product codes and customer part-number cross-references.

Want help with your own implementation?

We're a Brisbane-based Odoo Silver Partner and MYOB Acumatica Partner. Book a free consultation and get a straight answer.