How to automate order entry: from email, PDF and EDI to a checked sales order in the ERP
To automate order entry, every order, however it arrives (EDI, a customer portal, a PDF or spreadsheet attached to an email, the order typed in the email itself), goes through the checks your order desk runs today: which customer and ship-to, which of your items each line means, in which unit, at which price against your price list, within the credit limit and the lead time, and whether the PO is already in the ERP. An order that passes every check is written to the ERP through its interface, such as SAP Business One's Service Layer, or by Business Central's own Sales Order Agent. An order that fails one is held for a person, with the reason. Three numbers tell you whether it works: the touchless rate, the holds by reason, and the time from receipt to entry. Below: each channel, each check, the ERP side, the measures, and when not to automate.
- Published
- Updated
- Reading time
- 17 min
- Written by
- Jules Toussaint
Scope: B2B sales orders at manufacturers and distributors, in any ERP. Vendor features are cited from each vendor's documentation, read on October 29, 2026; editions change, so confirm for your version. EDI segments and the exception taxonomy have their own guides, linked.
In production
Biodéal, an organic dairy distributor, receives its customers' orders by email in their own formats: PDFs, Word tables, scanned forms, plain text. Mirage reads each one, applies Biodéal's rules and creates the order in SAP Business One. Since go-live on July 22, 2025: 2,943 orders and 12,993 lines entered automatically for 113 customers, a median of 48 seconds from email to order ready in SAP, and about 7% of orders flagged for a human check. These figures describe that deployment, not a rate to expect elsewhere.
How orders arrive, and what each channel already does for you
An EDI order arrives with every value labelled; an email that says "same as last week but 12 of the 5 kg" arrives with nothing labelled. The channel changes how much work is done when the order reaches you, never which checks it needs.
| Channel | What arrives | Already done by the channel | What remains |
|---|---|---|---|
| EDI (X12 850, EDIFACT or EANCOM ORDERS) | A structured file: every value in a numbered field with a code | Reading. The checks still apply: a valid 850 can carry an unknown ship-to code or an old price | A map per partner, by your EDI provider or translator |
| Customer portal or B2B shop | An order keyed by the customer, in your catalog, at their prices | Reading and item matching: the customer chose your SKU | Your ERP's or shop's portal; adoption is the customer's call |
| PDF from the customer's ERP | A clean text PDF, one layout per customer | Nothing beyond the text layer | Reading per layout, then the same checks as any order |
| Scan, photo or fax | An image, sometimes handwritten corrections | Nothing | Reading the image, with the doubtful values held |
| Spreadsheet | Rows, often many lines, column names the customer chose | Rows and columns, not their meaning | Column mapping per customer, then the checks |
| Order in the email text | "Same as last week but 12 of the 5 kg" | Nothing | Reading free text; references to past orders always held |
Start with a count: one month of messages by channel and customer, non-orders marked. It is the baseline for every later measure.
Email intake is a watched mailbox. At Biodéal, the Outlook inbox is wired to a Microsoft Graph webhook, so processing starts within seconds of an email arriving (case study). Microsoft's agent for Business Central watches a designated mailbox, filters out messages outside its scope (offers to sell, discount requests) and ignores attachments such as terms and conditions sent with the purchase order (Sales Order Agent overview). Both start with the first check: is this an order at all? For the X12 sets themselves, see the guide to EDI 850, 855, 856 and 810.
What the order desk checks on every order
An order desk works through a sequence of questions, most of them answered by a record already in the ERP. Automating entry means asking the same questions against the same records, and stopping at the first one without a clean answer.
| Check | Where the answer lives | Straight in when | Held when |
|---|---|---|---|
| Is it an order? | The message itself | A purchase order, a change or a cancellation | Not an order (a delivery note, a stock-out notice, a quote request): logged, then closed |
| Customer | Customer master; Business Central's agent matches the sender's address to a contact's E-Mail field only | One active customer, from the sender or an account number on the order | Unknown sender, a forwarded email, two candidate accounts |
| Ship-to | Ship-to addresses on the customer; the location code in an EDI order | The address or code matches one ship-to on file | A new address, a one-off drop ship, two candidates |
| Item | Your SKU, or the customer's own number: item references (Business Central), business partner catalog numbers (SAP Business One), external item identifiers (Supply Chain Management) | One item, by SKU, customer number or GTIN | No reference, two candidates, a description only, "same as last time" |
| Unit and pack | The item's units of measure; the unit stored on the customer's reference | The unit is stated or carried by the reference, and the quantity fits the pack | No unit, a spelling not mapped ("CS", "x6"), 25 of an item sold by 12 |
| Price and discounts | Price lists and agreements: the ERP computes the line price and discounts itself | No price on the order, or one within your tolerance of the ERP's | Outside the tolerance, an old price, another currency, a discount the ERP does not grant |
| Credit | Credit limit and overdue balance on the customer | No credit or overdue warning | Any warning: the ERP warns, the hold has to be yours |
| Date | Stock, lead times, order promising | No date requested, or one the ERP can promise | Earlier than you can promise; "03/04", "week 14", "ASAP" |
| Repeat | Orders already held, by customer and PO number | A customer and PO number not seen before | A known PO number: a copy, a revision, a change or a cancellation |
| Quantity | The customer's order history | Within the customer's usual range | Far outside it, such as an extra zero |
Source: Business Central agent, item references, best price, credit warnings (Microsoft Learn); catalog numbers (SAP Business One); external item identifiers (Supply Chain Management).
Customer and ship-to
Microsoft's agent identifies the customer only by matching the sender's address to the E-Mail field of a contact card, because matching on a name would let someone impersonate a customer. The consequence it documents: when a colleague forwards a customer's email, the agent sees the colleague (overview). Plan a rule for forwarded orders and for customers who write from several addresses. A new delivery address is held every time.
Items and customer part numbers
Most orders that stop do so because nobody knows which of your items the customer meant. Business Central keeps the customer's number as an item reference, which can carry the customer's unit and variant (Microsoft Learn); SAP Business One as a business partner catalog number, with one default per item and partner (web client guide, 1.6.3); Supply Chain Management as an external item identifier (Microsoft Learn). Microsoft's agent tries exact identifiers first (item number, vendor item number, GTIN, references), then attributes, then a fuzzy search (overview).
If that table is empty, filling it is the first project, whatever the tool. Build it from a few months of orders as customers sent them, matched to what your team entered, and keep it in the ERP so it survives a change of tool. Every line a person resolves should add a reference. A line with two candidates is held: picking one is a guess.
Units and pack sizes
A line read perfectly can still be wrong: 66 units or 66 cases. Your masters say what a value means, never the customer's document. At Biodéal, when a form gives a quantity with no unit, the system compares the document's unit price with SAP's rate for each possible unit: a litre of milk at €1.17 can only be a carton, not a case of six at about €7. Inferred lines are entered and flagged; the case study says this turned a 12-line order that used to be rejected into one entered automatically (case study).
Prices, discounts and credit
The ERP prices the line, not the customer's PDF. Business Central calculates a best price from the customer's agreements, the item, unit, quantity and dates, using the bill-to customer (Microsoft Learn). The check compares the customer's price with the ERP's: within your tolerance, the line goes in at the ERP's price; outside it, a person decides. Discounts follow the same rule.
Credit is the check most often assumed. Business Central warns when an order exceeds the credit limit or the customer has an overdue balance, and Microsoft states that "you can post even if the credit limit exceeds" (Microsoft Learn). A warning shown to an automated process is nothing unless the process turns it into a hold.
Dates, repeats and revisions
Parse unambiguous dates, hold "03/04" or "week 14", and compare the date with what the ERP can promise; Business Central's agent can use capable-to-promise for items not in stock (overview). EDI has messages for changes: the 850 is answered by an 855 and changed by an 860, itself answered by an 865 (X12). Email has none: a resent PDF, a revised PO and "please cancel line 3" all arrive as new emails. The key is customer plus PO number, with the lines compared when it matches; Biodéal's agent follows an order across emails as it is created, merged or replaced (case study). The rules for each kind of repeat are in the guide to sales order exception handling before ERP entry.
From inbox to sales order: the path every order takes
What goes straight into the ERP, and what is held
An order goes straight in when every check passes. Anything else is held, and three decisions shape the hold. They belong to you, not to the tool.
- Where the gate sits. Orders can be written as drafts or quotes until released, or written directly with only held ones waiting. SAP Business One keeps drafts, "the preliminary version of a document", which the Service Layer turns into orders with
SaveDraftToDocumentand the web client with Add (Service Layer reference, web client guide, 1.4.9). Business Central's agent always creates a quote first, since a quote has no effect on planning, reservations or availability; settings can then convert it to an order without sending it to the customer (overview). Start with drafts and loosen customer by customer. - Line or order. Clean lines may go in while one is held, never when the doubt is about the customer, the ship-to or a repeat PO. Biodéal enters the lines it can and sends the doubtful one out as an alert with a diagnosis: the order neither fails whole nor loses a line.
- What the reviewer sees. The source at the right place, the value read, the candidates from your masters, the check that held it. A reviewer who must reopen the email and search the ERP is doing the entry again.
Cancellations of picked or shipped orders, new customers and new delivery addresses always go to a person. So does every outgoing message to a customer: Microsoft's agent has a designated user approve each one (overview).
Four ways to automate, and what your ERP already ships
The four approaches are not rivals: each removes keying for a different kind of customer, and most order desks combine two or three. Sort customers by order count over three months: the few large ones are EDI candidates, the regulars portal candidates, the long tail is where reading tools and agents earn their place.
| Approach | Removes | Leaves to you | Fits |
|---|---|---|---|
| EDI | Reading and keying, for each partner on it | The checks, the map for each partner, both sides' onboarding | A few large customers who order often and already run EDI |
| Customer portal | Your keying: the customer does it | Adoption, and every customer who keeps emailing anyway | Repeat buyers ordering from a stable catalog |
| OCR or template capture | Reading, for the layouts you set up | Matching, checks and the ERP write; a new template per new layout | A handful of customers whose layout never changes |
| Agent connected to the ERP | Reading, matching, checking and writing, for any format | Master data, the rules written down, the held orders | The long tail: many customers, many formats, mostly email |
OCR, often the first thing tried on PDF purchase orders, reads the document; template capture adds where each field sits on a given layout. Neither decides which item "88-120-B" is, whether 66 means units or cases, or whether the PDF is yesterday's resent. See OCR vs LLM for document extraction and AI agents vs RPA. A portal, such as Odoo's shop restricted to logged-in customers (Odoo 18 documentation), is cheapest once customers use it.
What the ERP vendors document
| ERP | Reads incoming orders? | Customer item numbers | How an order is written | Draft or review step |
|---|---|---|---|---|
| Dynamics 365 Business Central | Yes: the Sales Order Agent monitors a mailbox and reads the email and PDF, PNG or JPG attachments. | Item references, which can carry the customer's unit of measure and variant | The agent navigates pages and enters data as a user would, within the permissions it is given | Always a sales quote first; settings can turn quotes into orders without the customer seeing them. Every outgoing message is approved by a designated user |
| Dynamics 365 Supply Chain Management | No reading feature in the pages read | External item identifiers per customer, searchable on order lines, from version 10.0.45 | See Dynamics 365 order entry automation | Set by the integration |
| SAP Business One | None described in the 10.0 FP 2405 web client user guide | Business partner catalog numbers, one default per item and partner (AlternateCatNum in the Service Layer) | Service Layer (HTTP and OData), POST /Orders; or the older DI API (SAP's comparison) | Drafts, then SaveDraftToDocument, or "Add" in the web client to make them official sales orders |
| SAP S/4HANA Cloud Public Edition | Yes: scope item 4X9 reads PDF or image purchase orders, English and German only | Not covered here | A sales order request, then the sales order | The request is a draft a user can simulate before creating the order |
Business Central's Sales Order Agent or a third-party tool?
On Business Central, test Microsoft's agent first, on a week of real orders. It is built in, available in every country and supports English, French, German, Spanish, Italian and Dutch among others; in other languages it "might not function as intended" (Microsoft Learn). It consumes Copilot Credits and stops processing new emails when they run out (overview). Look further if customers send spreadsheets (PDF, PNG and JPG are the documented attachment formats), if it struggles on your layouts, or if your rules (pack rounding, routing by volume, shipping calendars) go beyond its settings. SAP S/4HANA Cloud Public Edition has an equivalent limited to English and German files (SAP Learning).
Writing the order into the ERP
However it is read, the order ends as a record created through the ERP's own interface, so its validations, numbering and pricing apply. That is why no new ERP is needed. SAP describes the Business One Service Layer as "a new generation of extension API" built on HTTP and OData (Working with SAP Business One Service Layer, 1.3). A sales order is created with POST /Orders; SAP's appendix shows the same order through the older DI API, a Documents object of type oOrders. Catalog numbers are exposed as AlternateCatNum (Service Layer reference). Biodéal's orders go through the Service Layer (case study); details for SAP are on the SAP sales order automation page.
Business Central's agent works through the pages as a user would, within the permissions an administrator gives it, and can attempt to resolve a validation error by reading it (overview). Whatever the route, write each order once: store the customer and PO number with it, so a retry after a timeout finds the order instead of creating a second one.
How to measure: touchless rate, holds and time to entry
The same week can give four touchless rates. Write the definitions down before any pilot and apply them to the baseline and the pilot alike.
| Measure | Definition | Counted on | Trap |
|---|---|---|---|
| Touchless rate | Orders that reached the ERP with no person acting on them, divided by all orders received | Orders, changes and cancellations; not messages, not lines | Dividing by messages, leaving held orders out, counting lines |
| Held rate, by reason | Orders a person had to act on, by the first check that held them | The same orders | A free-text comment instead of the check |
| Time to entry | From the message's arrival to the order (or its draft) created in the ERP, median | Entered orders, touchless and held reported apart | One blended median, which the held orders barely move |
| Person minutes per held order | Time spent on each held order, follow-up calls included | Held orders | Forgetting the call to the customer |
| Corrections after entry | Entered orders changed or credited because the entry was wrong | Entered orders, touchless and reviewed apart | Counting a customer's change of mind against the system |
| Messages with no outcome | Messages logged that reached no status | All messages, orders or not | Above zero, an order can be lost |
Illustrative example, invented figures: one week of order intake at a distributor
Assumptions, all invented. 300 messages in a week: 40 EDI, 30 portal, 150 emails with a PDF, 40 with a spreadsheet, 30 with the order in the text, 10 scans. 24 are not orders. Of the 276 orders, 221 reach the ERP untouched, 41 are reviewed then entered, 6 are still waiting on Friday and 8 were rightly not entered.
| Divided by | Count | Calculation | Touchless rate |
|---|---|---|---|
| Orders received (the right one) | 276 | 221 / 276 | 80.1% |
| Every message, non-orders included | 300 | 221 / 300 | 73.7% |
| Orders, leaving out the 14 waiting or not entered | 262 | 221 / 262 | 84.4% |
| Lines not held, of 1,450 lines | 1,450 | 1,378 / 1,450 | 95.0% |
Only the first line is the touchless rate: 80.1%. Leaving out waiting and not-entered orders flatters it by about four points, counting lines by about fifteen. The 55 held orders (19.9%) say where to work:
| Check | Held orders | Share |
|---|---|---|
| Item | 19 | 34.5% |
| Price | 12 | 21.8% |
| Unit or pack | 8 | 14.5% |
| Repeat PO | 7 | 12.7% |
| Ship-to | 5 | 9.1% |
| Credit | 3 | 5.5% |
| Date | 1 | 1.8% |
Item matching holds about a third: customer references are worth more than any tuning of the reading. Median time to entry is 3 minutes for touchless orders, 95 for reviewed ones; blended, it is 4 minutes, and the held orders disappear from it. At 7 person minutes each, review took 385 minutes. Three touchless orders (1.4%) and one reviewed order were corrected after entry.
Next for this desk: load item references from three months of history for the customers behind the 19 item holds, write a price tolerance, measure again.
One row per message, a summary by channel: touchless rate, held rate, holds by reason, median time to entry for touchless and reviewed orders, person minutes per held order, corrections, messages with no outcome. Nothing is filled in.
The order entry error cost calculator turns the baseline into hours and cost. Run a pilot in parallel with the team for at least two full weeks, on customers that include the awkward formats; the method is in the document automation pilot guide.
When not to automate order entry
- The master data is unreliable. With wrong or missing item numbers, units and prices, every order is held. Clean them first.
- Most orders are negotiated, not placed. Engineered-to-order items, configured products, prices agreed per order: entry is the small part of the work.
- Nobody can state the rules. A process cannot apply a rule that exists only in someone's head. Write them first.
- The volume is small and steady. A few orders a day, entered without a backlog, leave little to remove.
- Most volume is already EDI or portal. The rest may be a short list a person handles well.
- Your ERP vendor already covers your formats. If Business Central's agent passes a week of your real orders, start there.
The opposite case is many customers in many formats, steady volume, rules that can be written. That is what Mirage's sales order automation is built for, and the EDI alternative page covers customers too small for EDI.
Questions readers ask
The share of orders that reached the ERP with no person acting on them: touchless orders divided by all orders received in the period, changes, cancellations and orders still waiting included. Count orders, not messages or lines, and read it next to the corrections made after entry.
No. OCR turns the page into text and template capture finds the fields on the layouts you set up. Neither decides which of your items a customer's reference means, which unit applies, whether the price matches your price list or whether the PO is already in the ERP. Those checks and the ERP write still have to be built.
Test Microsoft's agent first: it reads the email and its PDF, PNG or JPG attachments, matches items through your references and starts from a quote. Look further if customers send spreadsheets, which are not among the documented attachment formats, if it struggles on your layouts in a test week, or if your rules go beyond its settings.
Every order where a check fails: an unknown sender or ship-to, an item with no reference or two candidates, a missing unit, a price outside tolerance, a credit warning, a date you cannot promise, a known PO number, an unusual quantity. Cancellations of orders already picked or shipped always go to a person.
No. EDI maps, portals, capture tools and agents all write into the ERP you have, through its interface: SAP Business One's Service Layer or DI API, Business Central's pages or APIs, an import format. What must exist is the master data the checks read: customers, ship-tos, customer item numbers, units, price lists, credit limits.
Sources and scope
Checked on . Vendor features are cited from each vendor's own documentation, at the claim; editions and releases change. The checks, the gate, the measures and the approaches table are recommended practice, presented as such. The worked week is invented. Biodéal facts are quoted from its case study and describe that deployment only.
- Microsoft Learn, Sales Order Agent overview, Business Central (October 2, 2026): a monitored mailbox; a relevance model that filters messages and attachments; PDF, PNG and JPG attachments; the customer found only by the sender's address in a contact's E-Mail field, forwarded emails; item search by number, vendor item number, GTIN or references, then attributes, then fuzzy search; availability and capable-to-promise; always a quote first, with settings to make orders from quotes; designated users approve every outgoing message; Copilot Credits
- Microsoft Learn, Copilot and agents country/region availability and supported languages (June 30, 2026): Sales Order Agent available in all countries; supported languages include English, French, German, Spanish, Italian, Dutch; other languages might not function as intended
- Microsoft Learn, Use item references, Business Central: the customer's item description, unit of measure or variant inserted from the reference
- Microsoft Learn, Register new customers, Business Central (June 17, 2026): credit and overdue balance warnings when a sales order is entered; you can post even if the credit limit is exceeded; the four Credit Warnings options
- Microsoft Learn, Record special sales prices and discounts, Business Central (August 25, 2026): best price calculation on sales documents; prices by customer, item, unit of measure, minimum quantity and dates; the bill-to customer decides the price
- Microsoft Learn, Use external item identifiers to add products to orders, Supply Chain Management (July 27, 2026): external item numbers and descriptions per customer, searchable on sales order lines, version 10.0.45 or later
- SAP, SAP Business One Service Layer API Reference, 10.0: Orders, "a commitment from a customer or lead to buy a product or service"; Drafts, "the preliminary version of a document"; DraftsService_SaveDraftToDocument; AlternateCatNum, the alternative catalog numbers in the Business Partners module
- SAP, Working with SAP Business One Service Layer (release 9.3 guide, 2019): section 1.3: a new generation of extension API built on HTTP and OData; appendix I: the same order created through the DI API (Documents, oOrders, Add) and through POST /Orders
- SAP, User Guide for SAP Business One, Web Client, 10.0 FP 2405 (September 14, 2024): 1.4.9 Managing Drafts: drafts added as official sales orders; 1.6.3 business partner catalog numbers and the default one per item and partner; credit limit utilization when the Credit Limit setting is on
- SAP Learning, Creating Sales Orders from Unstructured Data (scope item 4X9), SAP S/4HANA Cloud Public Edition: PDF or image purchase orders into a sales order request, a draft that can be simulated; only English and German files supported
- Odoo 18 documentation, eCommerce customer accounts: shop restricted to logged-in users; customer portal with quotations, orders and invoices; pricelists
- X12, Supply Chain Transaction Flow: 850 purchase order, 855 acknowledgment, 860 change request, 865 answer
- Mirage Metrics, Biodéal case study: email orders into SAP Business One since July 22, 2025: 2,943 orders, 12,993 lines, 113 customers, median 48 seconds, about 7% flagged; Outlook through Microsoft Graph, Service Layer, unit inferred from price, no line lost silently
Related on this site
- Sales order exception handling before ERP entry: the exception types, review screen and audit log
- EDI 850, 855, 856 and 810: the X12 order flow, set by set
- Automate email orders to ERP: the email channel on its own
- The true cost of manual order entry: what keying costs
- The root causes of ERP order entry errors: where entry errors come from
- Dynamics 365 order entry automation: Supply Chain Management and Business Central
- AI order processing software compared: vendors in the agent category
- Glossary: sales order: and purchase order, EDI, OCR
See which of your orders would go straight in
Send us a week of real orders from your email channel, PDFs, spreadsheets and plain text included. Mirage returns each one as it would be written to your ERP, with the orders it would hold and the check behind each hold, so you can set it against your own count.
Prefer to talk it through? Book a call