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.

Order channels and what remains to do (recommended practice)
ChannelWhat arrivesAlready done by the channelWhat remains
EDI (X12 850, EDIFACT or EANCOM ORDERS)A structured file: every value in a numbered field with a codeReading. The checks still apply: a valid 850 can carry an unknown ship-to code or an old priceA map per partner, by your EDI provider or translator
Customer portal or B2B shopAn order keyed by the customer, in your catalog, at their pricesReading and item matching: the customer chose your SKUYour ERP's or shop's portal; adoption is the customer's call
PDF from the customer's ERPA clean text PDF, one layout per customerNothing beyond the text layerReading per layout, then the same checks as any order
Scan, photo or faxAn image, sometimes handwritten correctionsNothingReading the image, with the doubtful values held
SpreadsheetRows, often many lines, column names the customer choseRows and columns, not their meaningColumn mapping per customer, then the checks
Order in the email text"Same as last week but 12 of the 5 kg"NothingReading free text; references to past orders always held
Order channels and what remains to do (recommended practice)

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.

The checks on an incoming order (recommended practice; ERP objects from vendor documentation)
CheckWhere the answer livesStraight in whenHeld when
Is it an order?The message itselfA purchase order, a change or a cancellationNot an order (a delivery note, a stock-out notice, a quote request): logged, then closed
CustomerCustomer master; Business Central's agent matches the sender's address to a contact's E-Mail field onlyOne active customer, from the sender or an account number on the orderUnknown sender, a forwarded email, two candidate accounts
Ship-toShip-to addresses on the customer; the location code in an EDI orderThe address or code matches one ship-to on fileA new address, a one-off drop ship, two candidates
ItemYour 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 GTINNo reference, two candidates, a description only, "same as last time"
Unit and packThe item's units of measure; the unit stored on the customer's referenceThe unit is stated or carried by the reference, and the quantity fits the packNo unit, a spelling not mapped ("CS", "x6"), 25 of an item sold by 12
Price and discountsPrice lists and agreements: the ERP computes the line price and discounts itselfNo price on the order, or one within your tolerance of the ERP'sOutside the tolerance, an old price, another currency, a discount the ERP does not grant
CreditCredit limit and overdue balance on the customerNo credit or overdue warningAny warning: the ERP warns, the hold has to be yours
DateStock, lead times, order promisingNo date requested, or one the ERP can promiseEarlier than you can promise; "03/04", "week 14", "ASAP"
RepeatOrders already held, by customer and PO numberA customer and PO number not seen beforeA known PO number: a copy, a revision, a change or a cancellation
QuantityThe customer's order historyWithin the customer's usual rangeFar outside it, such as an extra zero
The checks on an incoming order (recommended practice; ERP objects from vendor documentation)

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

Order intake flow: documents are read and classified, EDI and portal orders skip reading, every order is identified, matched line by line and checked, then written to the ERP or held for a personArrive as documentsEmail with a PDFSpreadsheet by emailOrder in the email textScan or faxArrive structuredEDI (X12 850, ORDERS)Portal or B2B shopRead and classifyorder, change, or something else?Not an orderlogged, then closedIdentifythe customer and the ship-toMatch every lineitem, unit, price listCheck the ordercredit, lead time, repeat POa check failsHelda person decidesevery check passesSales order in the ERPresolved
EDI and portal orders skip reading, never the checks. Every message reaches a status, so the day's count balances; a held order stops where its check failed and reaches the ERP only after a person decides.

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

Four ways to automate order entry (recommended practice)
ApproachRemovesLeaves to youFits
EDIReading and keying, for each partner on itThe checks, the map for each partner, both sides' onboardingA few large customers who order often and already run EDI
Customer portalYour keying: the customer does itAdoption, and every customer who keeps emailing anywayRepeat buyers ordering from a stable catalog
OCR or template captureReading, for the layouts you set upMatching, checks and the ERP write; a new template per new layoutA handful of customers whose layout never changes
Agent connected to the ERPReading, matching, checking and writing, for any formatMaster data, the rules written down, the held ordersThe long tail: many customers, many formats, mostly email
Four ways to automate order entry (recommended practice)

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

Order intake as documented by ERP vendors, read October 29, 2026
ERPReads incoming orders?Customer item numbersHow an order is writtenDraft or review step
Dynamics 365 Business CentralYes: 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 variantThe agent navigates pages and enters data as a user would, within the permissions it is givenAlways 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 ManagementNo reading feature in the pages readExternal item identifiers per customer, searchable on order lines, from version 10.0.45See Dynamics 365 order entry automationSet by the integration
SAP Business OneNone described in the 10.0 FP 2405 web client user guideBusiness 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 EditionYes: scope item 4X9 reads PDF or image purchase orders, English and German onlyNot covered hereA sales order request, then the sales orderThe request is a draft a user can simulate before creating the order
Order intake as documented by ERP vendors, read October 29, 2026

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.

Order entry measures and their traps (recommended practice)
MeasureDefinitionCounted onTrap
Touchless rateOrders that reached the ERP with no person acting on them, divided by all orders receivedOrders, changes and cancellations; not messages, not linesDividing by messages, leaving held orders out, counting lines
Held rate, by reasonOrders a person had to act on, by the first check that held themThe same ordersA free-text comment instead of the check
Time to entryFrom the message's arrival to the order (or its draft) created in the ERP, medianEntered orders, touchless and held reported apartOne blended median, which the held orders barely move
Person minutes per held orderTime spent on each held order, follow-up calls includedHeld ordersForgetting the call to the customer
Corrections after entryEntered orders changed or credited because the entry was wrongEntered orders, touchless and reviewed apartCounting a customer's change of mind against the system
Messages with no outcomeMessages logged that reached no statusAll messages, orders or notAbove zero, an order can be lost
Order entry measures and their traps (recommended practice)

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.

One invented week, four denominators
Divided byCountCalculationTouchless rate
Orders received (the right one)276221 / 27680.1%
Every message, non-orders included300221 / 30073.7%
Orders, leaving out the 14 waiting or not entered262221 / 26284.4%
Lines not held, of 1,450 lines1,4501,378 / 1,45095.0%
One invented week, four denominators

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:

The 55 held orders by first failed check (invented)
CheckHeld ordersShare
Item1934.5%
Price1221.8%
Unit or pack814.5%
Repeat PO712.7%
Ship-to59.1%
Credit35.5%
Date11.8%
The 55 held orders by first failed check (invented)

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.

Related on this site

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

We use your email to reply to you and, now and then, to tell you about Mirage. You can opt out at any time. Privacy policy