An incoming email can contain enough information to start an order, but not enough information to post one safely. Odoo AI order drafts address that gap by reading an email, extracting proposed order details, matching customers, vendors, products, quantities, and dates, then creating a draft record for human review before posting or confirming anything in Odoo. The workflow preserves speed without treating an AI interpretation as an approved transaction.
That distinction matters. A customer may request a quotation rather than place a final order. A supplier may send an updated price list instead of a purchase order. An email thread may contain several quantities, conflicting delivery dates, or instructions that do not match the sender’s account. A draft-first process gives a reviewer a clear place to verify those details.
Why incoming email order automation needs a review step
Email order automation fails when it treats extracted data as a final business decision. An AI system can identify likely order lines, but it does not automatically know whether a request is authorized, commercially acceptable, duplicated, or complete.
Without a review stage, several problems appear quickly:
A quotation is confirmed before pricing or payment terms are checked.
A purchase order is created for the wrong vendor because the sender’s email address is shared.
A product description is matched to a similar but incorrect Odoo product.
A repeated email creates duplicate order lines or duplicate documents.
A requested delivery date is copied into the order even though inventory cannot support it.
A customer’s informal wording is mistaken for an approved purchase commitment.
An Odoo AI order draft separates interpretation from posting. The AI proposes what the email means. Odoo stores that proposal as a draft. A person reviews the source message and the proposed fields, then confirms, edits, rejects, or routes the draft for additional approval.
The safest design also records why each value was proposed. For example, a reviewer should be able to see that the quantity came from a specific email paragraph, while the product was matched from a configured SKU or customer-specific reference. That evidence makes the review faster and creates a useful audit trail.
What are Odoo AI order drafts?
Odoo AI order drafts are unconfirmed Odoo sales or purchase records created from information extracted from incoming emails. They are not posted orders, validated invoices, released procurement documents, or completed downstream transactions. Their purpose is to give a user a structured, reviewable proposal.
The exact Odoo document depends on the business process:
| Incoming email pattern | Draft created | Main review questions | Safe next action |
|---|---|---|---|
| Customer asks for products and quantities | Sales quotation or draft sales order | Is the customer correct? Are price, terms, and quantities valid? | Edit, send quotation, or confirm |
| Supplier sends a proposed replenishment | Purchase order draft or purchase request | Is the vendor approved? Do prices and quantities match procurement rules? | Route for approval or confirm |
| Existing customer changes an order | Draft amendment or review task | Is the sender authorized? Which existing lines change? | Approve the amendment or contact the customer |
| Email contains only a request for pricing | Draft quotation request | Is this a real opportunity or a general inquiry? | Create a quotation or assign to sales |
| Email includes an attached order form | Draft order with attachment reference | Were all pages and line items read? Are totals consistent? | Verify the attachment and approve |
Odoo uses different terminology depending on the app and configuration. In Sales, the initial commercial document is commonly a quotation that becomes a sales order after confirmation. In Purchase, a request for quotation may precede a purchase order. The automation should preserve those distinctions instead of creating a generic “order” that skips the organization’s normal controls.
The draft should also show its origin. Useful fields include the source email ID, sender address, received timestamp, subject, attachment names, extraction status, confidence indicators, and any fields requiring attention. A reviewer should not have to search through an inbox to understand where the draft came from.
How does the workflow turn an email into a draft?
A reliable workflow has separate stages for ingestion, extraction, matching, validation, draft creation, and review. Combining all of those activities in one automation makes failures difficult to diagnose and retries more dangerous.
1. Capture the message
The workflow first receives a new email through a monitored mailbox, an Odoo mail alias, or an integration connected to the organization’s email system. It should assign a stable message identifier before processing the content. That identifier helps prevent a mail server retry from creating a second draft.
The system should capture the message body, sender, recipients, subject, received time, attachments, and relevant thread information. Forwarded emails need special handling because the visible sender in the message body may differ from the actual mailbox sender.
2. Classify the request
The AI layer classifies the email before extracting order fields. Common categories include new sales request, purchase request, order change, shipping question, pricing inquiry, order status request, and non-order communication.
Classification reduces false positives. An email that says “please send our usual items next month” may require a sales review, while “can you confirm whether item 123 is available?” should not automatically create an order draft.
3. Extract proposed fields
The extraction step converts unstructured language into structured values. Depending on the use case, those values may include:
Customer or vendor name
Email address and contact record
Product name, SKU, or supplier part number
Quantity and unit of measure
Requested delivery date
Warehouse or shipping location
Price, currency, discount, or payment terms
Shipping instructions
Customer reference number
Notes and requested follow-up
The system should preserve the original text alongside the normalized value. “Two cases of blue filter cartridges” is not enough by itself if Odoo contains multiple products with similar names or different case sizes.
4. Match records in Odoo
Matching is a separate problem from extraction. The AI may correctly read “ABC-410,” but the integration still needs to determine whether that value matches an Odoo product internal reference, barcode, vendor product code, or customer-specific code.
Matching should use deterministic rules first. Exact SKU, exact vendor reference, known email address, and approved partner identifiers are stronger signals than a fuzzy product-name match. If multiple records remain plausible, the draft should be marked for review rather than selecting one silently.
5. Validate business rules
Validation checks whether the proposed document is complete and permitted. Examples include customer status, vendor approval, required fields, product availability, minimum order quantities, price-list eligibility, currency, tax configuration, and requested delivery dates.
A validation failure should not erase the draft. It should create a visible exception such as “two possible products found,” “price missing,” or “sender is not an approved contact.” Reviewers need to know what blocked automatic preparation.
6. Create the draft
Only after extraction and validation should the workflow create the Odoo draft. The record should remain in the correct pre-confirmation state. It should not confirm a quotation, validate a purchase order, reserve stock, create an invoice, or trigger payment-related activity unless a separate approved workflow explicitly allows that action.
The draft should include a link or reference to the source email, the extracted values, the matching logic where practical, and a clear processing status. A status such as Needs review is more useful than a generic internal note because it supports queues, filters, and reporting.
7. Present a focused review
The reviewer should see the proposed order beside the email or attachment, not in separate systems that require repeated searching. A focused review screen highlights uncertain fields and allows the user to accept, edit, reject, or request clarification.
This is where Odoo customization becomes relevant. Odoo customization services can support tailored approval rules, fields, automated actions, notifications, and workflow sequences when standard screens do not expose the review information your process requires.
Which email details should AI extract?
The right extraction schema depends on whether the email starts a sales or purchasing process. A sales request may require customer shipping information and a price list, while a purchase request may require a vendor, expected receipt date, and approval owner.
A practical schema separates required, optional, and evidence fields. Required fields block confirmation if missing. Optional fields improve the draft but do not prevent a reviewer from saving it. Evidence fields explain how the system reached its proposal.
| Field group | Example values | Why it matters | Review treatment |
|---|---|---|---|
| Sender and partner | Email address, customer ID, vendor ID | Determines commercial relationship and permissions | Require a verified match |
| Product identity | SKU, barcode, vendor part number | Prevents similar-name product errors | Flag ambiguous matches |
| Quantity | 12 units, 3 cases | Drives order lines and fulfillment | Check unit of measure |
| Commercial terms | Price, currency, discount, payment terms | Affects margin and accounting | Compare with configured rules |
| Dates | Requested ship date, delivery date | Influences planning and promises | Check calendar and availability |
| Destination | Warehouse, shipping address, site | Determines logistics | Validate against partner records |
| Evidence | Email sentence, attachment page, confidence reason | Makes review explainable | Show beside each uncertain field |
The workflow should not infer missing values as facts. If the email says “send the standard version,” the draft should identify the ambiguity or apply a preconfigured customer-product rule that is visible to the reviewer. A hidden assumption is harder to correct than a blank field with a clear explanation.
Attachments require separate treatment. PDFs, spreadsheets, and scanned order forms may contain tables that differ from the email body. The system should retain the original attachment, record whether text extraction or optical character recognition was used, and flag discrepancies between the attachment and the message.
What should happen before an Odoo draft is posted?
Before a reviewer confirms or posts an order, the workflow should run checks that protect data quality, authorization, and downstream operations. These checks should be visible rather than embedded in an opaque AI prompt.
A useful review policy covers:
Identity verification. Match the sender to an Odoo partner and contact. Shared mailboxes and forwarded messages need additional verification.
Duplicate detection. Compare the source message ID, customer reference, attachment hash, and recent draft records.
Line validation. Confirm product, quantity, unit of measure, price, tax, and currency.
Commercial authorization. Apply customer-specific pricing, discount thresholds, credit rules, and approval requirements.
Operational feasibility. Check inventory, warehouse, lead time, minimum quantities, and requested dates.
Document state. Confirm that the draft remains unposted and that the next action is appropriate for the document type.
Audit record. Save who reviewed the draft, what changed, when it was approved, and which source message supported the decision.
The distinction between draft, request, and commit is especially important. Creating a draft is a preparation action. Submitting a draft for approval is a workflow action. Confirming a sales order, validating an invoice, or releasing a purchase order is a commitment. Each step should use separate permissions and controls.
This design also limits AI access. The AI component may need to read email content and query product or partner records, but it does not need unrestricted permission to confirm orders or modify unrelated Odoo data. Versich’s guidance on connecting AI agents to ERP systems with scoped access explains why draft creation, approval requests, and committed transactions should be treated as different operations.
How should teams handle uncertain fields?
Uncertainty should be explicit and actionable. A single overall confidence score does not tell a reviewer whether the problem is the customer, product, quantity, or delivery date.
Use field-level review signals such as:
Confirmed match: An exact product or partner identifier matched a permitted Odoo record.
Suggested match: The value resembles one or more records but needs confirmation.
Missing: The email did not provide a required value.
Conflict: The email body and attachment contain different values.
Policy exception: The value is complete but violates a configured rule.
Not applicable: The field does not belong to this document type.
For example, an email might produce a confirmed customer match, a suggested product match, a confirmed quantity, and a missing shipping date. The reviewer can resolve the specific issues instead of rereading every part of the message.
The review interface should also make edits traceable. If a user changes 10 units to 12, the system should record the original extracted quantity, the revised quantity, the reviewer, and the time of the change. That history improves accountability and helps teams refine extraction rules later.
A small exception queue is more useful than a large queue of nearly identical drafts. Configure routing by issue type. Product ambiguity may go to sales operations, pricing exceptions to a sales manager, and vendor or purchasing issues to procurement. Odoo’s approval and activity features can support this routing when configured around the organization’s actual responsibilities.
Odoo configuration or custom integration: which approach fits?
Standard Odoo configuration is the right starting point when the process uses existing document types, straightforward mail handling, established partner and product records, and simple approval rules. Configuration keeps the workflow closer to supported Odoo behavior and reduces unnecessary technical maintenance.
A custom integration becomes appropriate when incoming messages arrive from several mailboxes, attachments require specialized extraction, product matching uses external catalogs, or the business needs field-level evidence and advanced exception handling. The integration should still create ordinary Odoo records and respect Odoo access rights rather than creating a separate shadow order system.
| Requirement | Configuration may be enough | Custom integration is more suitable |
|---|---|---|
| One monitored inbox | Yes | Not necessarily |
| Standard quotation or purchase flow | Yes | Not necessarily |
| Exact SKU and partner matching | Yes | Not necessarily |
| Multiple attachments and scanned forms | Limited | Yes |
| External product or pricing data | Limited | Yes |
| Field-level evidence and confidence | Limited | Yes |
| Complex duplicate detection | Limited | Yes |
| Separate AI permissions and approval APIs | Limited | Yes |
| Multiple business units with different rules | Sometimes | Often |
| Detailed monitoring and retry control | Limited | Yes |
The choice should follow the process, not the novelty of the AI capability. A simple workflow with poor master data will not become reliable merely because a language model is added. Product references, partner records, units of measure, price lists, and approval ownership need attention first.
An Odoo implementation review can help determine whether the required behavior belongs in configuration, automation, a custom module, or an external integration. Our Odoo consulting services cover workflow assessment, optimization, integrations, and decisions about what to configure or build.
How do you test Odoo AI order drafts safely?
Testing should begin with draft creation only. Do not start by enabling automatic confirmation or downstream actions. A controlled test set should include clean emails, incomplete requests, forwarded messages, duplicate emails, conflicting instructions, unusual units, attachments, and unauthorized senders.
Measure the workflow by more than extraction accuracy. Important operational checks include:
Whether the correct Odoo partner and product were selected
Whether ambiguous values were routed for review
Whether duplicate messages created duplicate drafts
Whether retries preserved idempotency
Whether draft records stayed unconfirmed
Whether attachments and source emails remained accessible
Whether users could understand and correct proposals
Whether audit records captured changes and approvals
Whether failures generated useful alerts instead of silent omissions
A retry-safe design uses a durable processing key, such as the source message identifier, and checks for an existing draft before creating another one. It also distinguishes transient errors, such as a temporary API timeout, from permanent errors, such as an unknown product reference.
After testing, run a limited pilot with representative users and real review conditions. Track exceptions, not just successful drafts. A high volume of “needs clarification” records indicates that the input process, master data, or email instructions need improvement.
For teams planning broader AI use across document handling, reporting, and workflow automation, AI consulting for business process automation can help connect the use case to permissions, monitoring, and existing enterprise systems without treating the AI layer as an isolated bot.
What should the operating model look like after launch?
An Odoo AI order draft workflow needs an owner after deployment. Someone must maintain product mappings, review exception categories, update approval rules, monitor processing failures, and decide when a draft should be rejected rather than corrected.
Define ownership for four areas:
Business rules: Who decides which prices, discounts, vendors, and order types require approval?
Master data: Who corrects product references, partner records, units, and shipping locations?
Technical operations: Who monitors mail ingestion, API errors, retries, queues, and integration health?
Governance: Who reviews access, audit logs, retention, and changes to AI extraction behavior?
Review the workflow regularly. New products, renamed customers, revised pricing policies, and new email templates will affect matching quality. A process that worked well during initial testing can degrade if the underlying Odoo data changes without corresponding rule updates.
The goal is not to remove every human decision. The goal is to move human attention from copying email text into Odoo toward reviewing the few details that actually require judgment.
Conclusion: start with a reviewable Odoo draft
An incoming email is a source of intent, not automatically a confirmed transaction. Odoo AI order drafts provide a practical middle layer: the workflow extracts and organizes information, Odoo preserves the record in a draft state, and a reviewer decides whether the proposed quotation or purchase document is accurate enough to proceed.
Start with one document type, a defined mailbox, clear product and partner matching rules, and a review queue that shows the source evidence. Test duplicates, missing fields, conflicting instructions, attachments, and permission boundaries before adding confirmation or downstream automation. If you are ready to map this workflow to your Odoo environment, contact our team to discuss the systems, rules, and review steps involved.

