A module for Odoo 19, Community and Enterprise.
Orders by email for Odoo
Customers email their orders, and Odoo turns them into quotations they confirm with one click — no retyping.
The problem
Many businesses still receive orders by email — a purchase order from the customer’s system, a spreadsheet, or a few lines typed into a message. Someone retypes each one into Odoo. It is slow, and a wrong code or quantity is easy to miss.
What we built
Customers send orders to one address, for example orders@ your domain. Each email becomes a record in Sales, and the module reads the order in one of three forms:
- A UBL order (Peppol BIS 3) from the customer’s own system — attached, or inside the PDF that Odoo Purchase sends.
- Our Excel order form, made for each customer with their products and prices. They fill in quantities and their reference and reply with the file.
- Lines in the email, such as “A1023 x 5”, with the reference taken from “PO:” or “Ref:”. Quoted text from earlier emails is ignored.
A draft quotation is created at the customer’s prices and emailed back with a link to confirm it on the portal in one click. Nothing is confirmed automatically. If you choose, the invoice is created and emailed for payment as soon as the customer confirms.




Safeguards
- Verified senders. A quotation is created only when your mail server confirms the sender (DMARC pass, or SPF and DKIM both pass). Otherwise a person checks the email.
- A signed order form. Each Excel form carries a signature tied to the customer, so an edited form or another customer’s form is refused.
- No double orders. The same reference from the same customer is not ordered twice — the customer is told the order is already with you. The same products and quantities within three days are flagged as a possible duplicate and not sent.
- Unknown codes and senders. Unknown product codes are listed on the quotation, which is then not sent. An email from an address that is not a customer creates no quotation; a person gets a task.
- In your salesperson’s name. Quotations and emails go out from the customer’s salesperson or a person you choose, never from a system bot.

Technology
No AI and no outside service: the module reads structured formats and simple lines, so the result is predictable, and your order data stays in your own Odoo database. It relies only on Odoo’s own sales and UBL modules, so it runs on Odoo 19 Community and Enterprise.
It does not read free-form PDFs or photos of orders — those go to a person.
For technical readers: Python (Odoo 19); UBL through Odoo’s sale_edi_ubl; the mail server’s Authentication-Results header; Excel forms signed with HMAC; licence OPL-1.
Result and status
Ready for clients: version 1.2.1 for Odoo 19. Tested on our test server with real mail between our own mail server and Gmail: lines in an email, the Excel form (also filled in Apple Numbers), a UBL order inside a PDF from Odoo Purchase, duplicates, an unknown sender, an edited form, failed and forged SPF, DKIM and DMARC, signing on the portal and the invoice on confirmation.
Code
The source is not published: the module is licensed per database (OPL-1).
Get it for your business
- Licence for one database: £295 one-off.
- Installation and set-up: £195.
- On our Odoo Community hosting, Business or Dedicated: licence included, set-up £195.
- Updates and changes: Odoo Care £195 a month, or £85 an hour.
No VAT is charged — we are not VAT-registered. If we become VAT-registered, VAT at the applicable rate will be added from that date.