VERSICH

Odoo AI Order Drafts: Review Incoming Emails Before Posting

odoo ai order drafts: review incoming emails before posting

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 patternDraft createdMain review questionsSafe next action
Customer asks for products and quantitiesSales quotation or draft sales orderIs the customer correct? Are price, terms, and quantities valid?Edit, send quotation, or confirm
Supplier sends a proposed replenishmentPurchase order draft or purchase requestIs the vendor approved? Do prices and quantities match procurement rules?Route for approval or confirm
Existing customer changes an orderDraft amendment or review taskIs the sender authorized? Which existing lines change?Approve the amendment or contact the customer
Email contains only a request for pricingDraft quotation requestIs this a real opportunity or a general inquiry?Create a quotation or assign to sales
Email includes an attached order formDraft order with attachment referenceWere 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 groupExample valuesWhy it mattersReview treatment
Sender and partnerEmail address, customer ID, vendor IDDetermines commercial relationship and permissionsRequire a verified match
Product identitySKU, barcode, vendor part numberPrevents similar-name product errorsFlag ambiguous matches
Quantity12 units, 3 casesDrives order lines and fulfillmentCheck unit of measure
Commercial termsPrice, currency, discount, payment termsAffects margin and accountingCompare with configured rules
DatesRequested ship date, delivery dateInfluences planning and promisesCheck calendar and availability
DestinationWarehouse, shipping address, siteDetermines logisticsValidate against partner records
EvidenceEmail sentence, attachment page, confidence reasonMakes review explainableShow 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:

  1. Identity verification. Match the sender to an Odoo partner and contact. Shared mailboxes and forwarded messages need additional verification.

  2. Duplicate detection. Compare the source message ID, customer reference, attachment hash, and recent draft records.

  3. Line validation. Confirm product, quantity, unit of measure, price, tax, and currency.

  4. Commercial authorization. Apply customer-specific pricing, discount thresholds, credit rules, and approval requirements.

  5. Operational feasibility. Check inventory, warehouse, lead time, minimum quantities, and requested dates.

  6. Document state. Confirm that the draft remains unposted and that the next action is appropriate for the document type.

  7. 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.

RequirementConfiguration may be enoughCustom integration is more suitable
One monitored inboxYesNot necessarily
Standard quotation or purchase flowYesNot necessarily
Exact SKU and partner matchingYesNot necessarily
Multiple attachments and scanned formsLimitedYes
External product or pricing dataLimitedYes
Field-level evidence and confidenceLimitedYes
Complex duplicate detectionLimitedYes
Separate AI permissions and approval APIsLimitedYes
Multiple business units with different rulesSometimesOften
Detailed monitoring and retry controlLimitedYes

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.

Looking for Odoo Solutions?

Explore our expert Odoo services and get started today.

Get Started
CTA Illustration

Frequently Asked Questions

What are Odoo AI order drafts?

Odoo AI order drafts are unconfirmed sales or purchase records prepared from incoming emails. An AI workflow extracts proposed order information, matches it to Odoo records, and creates a draft for review before a user confirms or posts the transaction. The draft-first approach keeps the AI from treating uncertain email content as an approved order.

Can Odoo create sales orders from incoming emails automatically?

Odoo can be configured or integrated to process incoming email information, but reliable automation requires more than copying text into a sales order. The workflow needs partner and product matching, duplicate detection, required-field validation, and a review state before confirmation. For many businesses, creating a quotation or draft sales order is safer than automatically confirming the transaction.

Is human approval required for Odoo AI order drafts?

Human approval is required whenever an incorrect order could create financial, operational, legal, or customer-service risk. Low-risk preparation actions may be automated, but confirmation, unusual discounts, uncertain product matches, and changes to existing orders should remain subject to defined approval rules. The required level of approval depends on the organization’s controls and transaction risk.

How much does it cost to add AI email order drafts to Odoo?

The cost depends on the number of mailboxes, Odoo apps, document types, attachment formats, matching rules, approval steps, and external systems involved. A simple draft workflow using clean structured references requires less work than a multi-company process with scanned documents and complex exception routing. Scope the data, review experience, permissions, and monitoring requirements before comparing implementation estimates.

What is the difference between an Odoo quotation and a sales order?

An Odoo quotation is a proposed commercial offer that has not been confirmed as a sales order. A sales order represents a confirmed customer commitment and can trigger downstream fulfillment or invoicing processes based on configuration. An email automation workflow should preserve that distinction and create the least committed document that fits the request.

Can Odoo AI order drafts process PDF attachments?

Yes, an integration can be designed to process PDF attachments, but the extraction method matters. Text-based PDFs are easier to parse than scanned documents, which require optical character recognition and additional validation. The workflow should retain the original file, identify extraction limitations, and flag disagreements between the attachment and the email body.

Is Odoo AI better than manual email order entry?

Odoo AI order drafts are better suited to repetitive preparation work, while people remain better suited to resolving ambiguity, authorization questions, and commercial exceptions. The strongest approach combines automated extraction and matching with a clear human review step. Replacing manual entry with automatic posting simply moves errors downstream instead of controlling them.

Tags: