Use caseAI agentDocument AI

An agent that chases suppliers for delivery dates and updates the ERP when they change

An AI agent that chases suppliers for delivery dates, reads their replies and PDFs, updates the ERP and warns planners when a late part will stop production.

A blueprint, not a client story. The business described is illustrative; the architecture, integrations and trade-offs are real, and this is how I would build it. By Ergini, .

The short version

A supplier expediting agent for purchasing teams that chase open purchase orders by email. It asks each supplier for confirmations and current dates in their language, reads the replies and attached order confirmations, and compares dates, quantities and prices with the PO in SAP Business One, Business Central or NetSuite. Dates inside your tolerance are written back automatically. Price, quantity and part changes go to a buyer, and late parts reach the planner with the production orders or Shopify SKUs they put at risk.

Best for
Manufacturers and DTC brands with a few hundred open POs across dozens of suppliers who confirm by email, PDF and the occasional phone call.
The AI does
Writes each chase in the supplier's language, reads replies and order confirmation PDFs line by line, and tells a confirmation from a delay, a question or an out-of-office.
People do
Accept or push back on late dates, price and quantity changes and substitute parts, and decide how to rescue the production orders or SKUs a delay puts at risk.
Built as
AI Agent Development, usually $12K - $30K

Sixty suppliers, 1,100 open lines and a Monday spreadsheet

Take an electronics assembler near Eindhoven that builds control units for machine makers. It runs SAP Business One and has about 300 open purchase orders with 60 suppliers, roughly 1,100 open lines, buying everything from microcontrollers at German distributors to bare boards from a fab in Shenzhen and cable harnesses from a workshop in Brno. Three buyers place and chase the orders. One planner owns the production schedule.

Placing a PO takes minutes. Everything after it is correspondence. Some suppliers confirm within a day, some only when chased, a few never. Confirmations come back as PDFs, as one line in an email ('Pos. 3 KW 44'), as an export from the supplier's ERP, or as a phone call nobody writes down. The buyers keep a spreadsheet of open lines, spend Monday morning emailing the overdue ones, and type new dates into SAP Business One when there is time.

The expensive part is the gap. A harness confirmed for week 41 quietly becomes week 44 in a PDF that sits unread for three days, while MRP keeps planning with the old date because that is the one in the ERP. The planner finds out when the kit for a production order comes up short on the line. Then it is air freight, a reshuffled schedule and an awkward call to a customer, over a change the supplier had announced weeks before.

A DTC brand has the same problem with a different bill. Its late line is a container of a best-selling jacket, and the cost is a sold-out product page two weeks into the season. The agent is the same; the impact check reads Shopify stock and sales instead of production orders. It is the mirror image of customer order entry: the same email, PDF and ERP plumbing, pointed at your suppliers instead of your customers.

The daily chase loop, from open PO line to confirmed date

The model only ever handles language: the request text, the reply, and drafts for the buyers. Every date, quantity and price that reaches the ERP or a supplier passes through ordinary code, and the mail plumbing is the same as in any email agent.

  1. 01 Trigger · SAP Business One Service Layer

    The morning scan of open lines

    At 06:00 code reads the open PO lines and picks those that need something: no confirmation two working days after the PO went out, a confirmed date ten days away, a date passed without a goods receipt. Thresholds are set per supplier group.

  2. 02 Plain code

    One request per supplier, with the numbers filled in by code

    Lines are grouped by supplier and contact, so nobody receives twelve emails in a morning. The table in the email (PO, line, your part number, their part number, quantity, requested date) is rendered straight from ERP data.

  3. 03 AI model · Microsoft Graph, purchasing@ mailbox

    Write the request in the supplier's language

    The model writes the two or three sentences around the table, in the language of the last correspondence with that contact, and has no way to alter the table. The footer says the email comes from an automated assistant working for the named buyer.

  4. 04 Plain code · Graph change notifications

    Match each reply to its PO lines

    A Graph change notification fires when a reply lands. Matching runs from the strongest signal to the weakest: thread headers, then PO numbers in the text and attachments, then the supplier's open lines. Supplier mail that lands in a general inbox first is routed here by the shared inbox agent.

  5. 05 AI model · Structured output

    Read the reply and every attachment

    The model sorts the reply (confirmation, delay notice, question, price change, out-of-office) and extracts each confirmed line into a fixed schema: PO, line, part number, quantity, unit, date or calendar week, price, currency, and the exact text each value came from.

  6. 06 Plain code

    Normalize, then compare with the PO

    Calendar weeks become dates, reels become pieces, and departure dates become receipt dates using the Incoterm on the PO and the lane's transit time. Each line is then checked against the PO: working days of slip, quantity, unit price, currency, part number and revision.

  7. 07 Decision

    What happens to each confirmed line?

    Tolerances the planner set decide, per supplier group and item class. The model has no vote here.

    • Date, quantity and price match within tolerance then the confirmed date and the supplier's reference are written to the PO line
    • The date slips beyond tolerance then the supplier's date is stored as not yet accepted, and the planner gets the impact
    • Price, quantity, unit or part number differ then a buyer decides, with a drafted reply; nothing is written
    • The reply cannot be matched or read with confidence then the buyer's queue, with the agent's best guess shown next to the original
  8. 08 Person · Microsoft Teams or Slack

    Planner and buyer settle the exceptions

    A card shows the late line, the production orders or SKUs it hits (computed from open production orders and stock, or Shopify stock and recent sales) and the supplier's document. The planner accepts the date, asks for a partial delivery or moves the order; the buyer handles prices and substitutes.

  9. 09 Result

    Register, audit trail and scorecard

    Every request, reply, extraction and ERP write is logged against its PO line. The same log yields each supplier's confirmation speed and date reliability for the quarterly review, without anyone compiling it.

Every PO line has a state, and every state has an owner

The agent keeps its own record per PO line next to the ERP: the ERP stays the system of record for the order, this record for the conversation about it.

Awaiting confirmationThe PO went out and nothing usable has come backA confirmation arrives, or the second reminder goes unansweredAgent, then the buyer by phone
ConfirmedDate, quantity and price match the PO within toleranceThe pre-shipment check runs a set number of days before the dateAgent
DeviationThe date moved beyond tolerance, or any price, quantity, unit or part number changedA person accepts, rejects or renegotiatesBuyer or planner
At riskThe confirmed date now falls after the day production or stock needs the partThe planner expedites, reschedules or switches to a second sourcePlanner
Partly shippedA ship notice or tracking number covers some of the quantityThe balance is confirmed, shipped or cancelledAgent tracks, buyer cancels
SilentNo answer after the last reminder, or the contact's address bouncedThe buyer reaches someone and updates the vendor contactBuyer
ClosedReceived in full, or the line was closed in the ERPOnly if the line is reopened in the ERPWarehouse and ERP
Transitions are code. An extraction can propose that a line is confirmed, but the comparison with the PO decides which state it lands in.

One supplier reply, three lines, three outcomes

The harness maker answers Monday's request with a two-page order confirmation covering two POs. This is what happens to it.

purchasing@ mailbox, Thursday 10 September, 08:52

  1. Supplier (harness maker, Brno) · Email

    Hello, attached are our order confirmations for your POs 4500871 and 4500902. Position 3 is delayed because of a connector shortage, sorry. Best regards, Petra

  2. match_reply(message_id: "...8f2c")reply in the thread of request EXP-0617 (sent Mon 7 Sep) / supplier 20417 / mentions PO 4500871 and 4500902 / 1 PDF attached
  3. extract_confirmation(file: "AB_26-11873.pdf")3 lines / 4500871-1: 500 pcs, KW 42 / 4500871-3: 1,200 pcs, KW 44 / 4500902-2: 800 pcs, KW 41, 4.62 EUR per piece / every value with page and text span
  4. compare_with_po(supplier: "20417", confirmation: "AB 26-11873")4500871-1: as ordered / 4500871-3: requested KW 41, confirmed KW 44, +15 working days, tolerance 3 / 4500902-2: date as ordered, price 4.62 vs 4.36 EUR (+6.0%), page 2 note: copper surcharge
  5. update_po_line(po: "4500871", line: 1, confirmed_date: "2026-10-16", ref: "AB 26-11873")written / requested date kept in its own field / key 4500871-1:AB26-11873, first write
  6. check_impact(item: "HAR-2210", arrives: "2026-10-30")needed by production order 8812 (400 units, starts 19 Oct) and 8840 (300 units, starts 26 Oct) / 140 on hand / no other open supply / 8812 short by 260
  7. Agent · Teams, to the planner

    Late part: harness HAR-2210 (PO 4500871 line 3) is now confirmed for week 44, not 41. Production order 8812 starts 19 Oct and is 260 short; 8840 on 26 Oct is also hit. Options: a partial delivery in week 41, moving 8812, or the second source. Evidence: AB 26-11873, page 1, position 3.

  8. Agent · Teams, to the buyer

    Price change on PO 4500902 line 2: 4.62 EUR instead of 4.36 (+6.0%), labelled as a copper surcharge. Not written to SAP. A draft reply asking for the basis of the surcharge is in your mailbox.

Line 1 went into SAP Business One untouched; week 44 shows as not yet accepted until the planner decides. And Petra's email never mentioned the surcharge. It sat on page 2 of the PDF, which is why every price on every confirmation is compared.

Where supplier confirmations stop being simple

'KW 44', 'ETD 23 Oct' and 'ready in two weeks'

German suppliers confirm in calendar weeks, Asian factories in departure dates, distributors in lead times. Code converts each by a per-supplier rule (which weekday counts, ex works or delivered) and adds transit time from the Incoterm. When a reply does not say which date it means, the agent asks rather than assumes.

Half now, the rest in November

Split confirmations are common with allocated parts. A PO line in SAP Business One carries one delivery date, so a split is either proposed as a second line for the buyer to approve, or kept as a schedule in the agent's record while the ERP shows the date that matters for planning.

One email about three POs, or an answer on last month's thread

Suppliers reply wherever it is convenient. When the thread points to an old request and the PO numbers to a new one, the PO numbers win. A reply that still fits more than one line waits for a buyer, with the candidates side by side.

Factory holidays and out-of-office replies

An autoreply saying 'back on 24 August' pauses the chase instead of stacking reminders in a closed mailbox. Per-country calendars cover the long closures, such as the Chinese New Year shutdown, Golden Week and August in Italy and Germany, and lines due inside them are flagged before the supplier leaves.

A different part than the one ordered

'Alternative part' or a new drawing revision on a confirmation can break a qualified bill of materials. Any mismatch in part number or revision goes to the buyer and, where it matters, to engineering. The agent flags substitutes; it has no way to approve one.

Language for the model, arithmetic for the code, commitments for people

Most of this is a deterministic workflow with a model at the edges, which is exactly why it can be trusted to write into the ERP.

The AI model

  • Write the request text in the supplier's language

    Tone and language are model work. The line table inside the email is rendered by code.

  • Read replies and confirmation PDFs into a per-line schema

    Every supplier's layout is different, and it changes without notice.

  • Recognize delays, questions, price notes and autoreplies

    One email can confirm one line and quietly postpone another.

Plain code

  • Convert weeks, units and currencies, and compare with the PO

    Arithmetic has exactly one right answer.

  • Apply tolerances and write dates to the ERP

    The tolerance is a number the planner chose, applied the same way on every line, with each write keyed so a retry never writes twice.

  • Work out which production orders or SKUs a late line hits

    A join across the ERP, the production plan and Shopify, not a judgement.

A person

  • Accept price, quantity and part changes

    They change cost, margin or a qualified bill of materials.

  • Rescue the orders at risk

    Expediting, splitting and re-sourcing are negotiations, and the buyer owns the relationship.

Earning the right to email suppliers unsupervised

Supplier relationships took the buyers years to build, so the agent starts by listening before it writes a single email.

ListenReads the confirmations that arrive anyway, extracts and compares them, and posts a daily list of what it would have written to the ERP. Sends nothing.Its extractions match what the buyers key in on nearly every line for a few weeks.
DraftChase emails appear as drafts in the buyer's mailbox, and ERP updates wait for one click.Buyers send most drafts unchanged and apply the updates without edits.
Send and write, one supplier group at a timeSends requests itself and writes in-tolerance dates, starting with European distributors whose confirmations are clean PDFs.No update in that group is reversed for several weeks; then the next group follows.
Price, quantity and part changes, and any date outside tolerance, stay with people at every stage.

EDI, a supplier portal, a procurement platform, or an agent on your ERP?

Start with the suppliers who can confirm electronically. Large distributors and manufacturers can often send EDI order responses (EDIFACT ORDRSP or X12 855), companies on SAP Ariba or Coupa get confirmations through the supplier network or portal, and automotive and electronics supply chains have networks such as SupplyOn. For those suppliers a structured message beats any email agent, and I would connect them rather than read their PDFs.

For the long tail there are now agentic procurement products. Didero, for one, says it handles supplier communication, documents, approvals and system updates on top of existing systems for manufacturers and distributors, and it deserves a trial if you would rather rent this than own it. Sourcing platforms such as Tacto do a different job (sourcing, spend and supplier intelligence) and do not replace the chase.

A build wins for SMEs on SAP Business One, Business Central or NetSuite whose suppliers will never use a portal and confirm by PDF in four languages, where the value lies in writing dates into your own ERP and tying a late line to the production order or Shopify SKU it hurts. The usual shape is a hybrid: EDI for the few suppliers who can send it, the agent for everyone else, one state machine for both. On SAP Business One there is no native agent to switch on, so a build is the realistic route.

How you would know it is working

A blueprint has no results to report, so here is what I would measure from the first week instead, on your own data.

Confirmation coverage
Share of open PO lines with a supplier-confirmed date, per supplier, plus the age of the oldest unconfirmed line.
Warning lead time
For every late receipt, how many working days before it the planner was told. Late parts nobody was warned about are the number to drive toward zero.
Reversed writes
ERP date updates by the agent that a buyer later corrected. This decides whether a supplier group stays on autonomous writing.
Time to confirmation
Working days from PO sent to confirmation received, per supplier, compared with the months before the agent took over the chase.

What a build like this costs

This is built as AI Agent Development, which runs $12K - $60K overall. A build like this one usually lands in the single-purpose agent tier: $12K - $30K, 2-5 weeks. The first working version runs on your real data well before the end of that window.

What it costs to run

Model usage for a few hundred supplier emails a week is a small monthly line; scanned confirmations that need a vision pass cost more per page than text. Hosting, the ERP connection and the occasional new supplier layout make up most of the ongoing cost.

What moves the price

  • Which ERP, and where it runs: a partner-hosted SAP Business One needs a secure connector, a cloud NetSuite or Business Central does not
  • How many suppliers have their own confirmation format, language or portal
  • Whether the impact check needs production orders and MRP data, Shopify stock and sales, or both
  • How far the agent may go alone: drafts only, or sending and writing per supplier group

Who this is for

  • Electronics and machinery assemblers on SAP Business One or Business Central whose component suppliers confirm by email and PDF
  • DTC brands producing in Asia, where one late container means a sold-out best-seller
  • Purchasing teams of two to five people in which one person spends most of the week chasing
  • Companies that launched a supplier portal and got only a fraction of their suppliers to use it

Questions people ask about this

How do I automate supplier follow-ups on open purchase orders?

Start from the ERP, not the inbox. Code picks the open lines that need an answer, sends one request per supplier with the lines filled in from the PO, and tracks each line's state until it is confirmed or received. A model reads the replies and attached confirmations. Dates inside your tolerance go back into the ERP; everything else goes to a buyer.

Can AI read supplier order confirmations and update SAP Business One?

Yes. The model extracts each line from the PDF or email together with the text it came from, code compares it with the PO, and the Service Layer writes the confirmed date and the supplier's reference to the PO line. The requested date is kept in a separate user-defined field, so supplier lateness stays visible. Prices and quantities are never updated automatically.

Do suppliers know they are dealing with an AI?

They should, and in the EU the law agrees: since 2 August 2026, Article 50 of the AI Act has required that people interacting with an AI system are told so, unless it is obvious. Every request says it comes from an automated assistant working for a named buyer, and any reply that is more than a plain confirmation reaches that buyer. More in the Article 50 guide.

What happens when a supplier changes the price or quantity?

Nothing is written to the ERP. Code compares every price, unit, currency and quantity on each confirmation with the PO, and any difference goes to a buyer with the supplier's document and a drafted reply. Price increases often appear only in the PDF and not in the email, which is why the comparison covers every line rather than what the supplier chose to mention.

What does a supplier expediting agent cost to build and run?

It usually lands in the lower tier of an agent build: one mailbox, one ERP and a clear state machine. What pushes it up is the number of ERPs and supplier portals involved, and whether the impact check reads production orders, Shopify, or both. Running costs are mostly hosting, since model usage for a few hundred emails a week is modest.

Sources