// the short answer
What a procurement and supply chain AI agent does
A procurement and supply chain AI agent reads inbound supplier email, pulls out the order number, promised ship date, quantity and price, compares each one against the open purchase order line in your ERP, and flags anything outside tolerance for a buyer to approve. It does the reading and the matching. A person still approves the write.
Reads the inbound message, whether it is email body text, a generated PDF or a scan
Extracts PO number, line, part number, quantity, unit price and promised date
Compares each field against the open purchase order line in your ERP
Routes anything outside your tolerance to a buyer instead of writing it
// what we build
Eight pipelines, each with a data source and a human checkpoint
An agent is not one thing. It is a set of narrow pipelines that each read something specific, produce something specific, and stop at a specific point where a person decides. Most teams start with two of these and add the rest once the exception queue is under control.
Supplier email triage and classification
Every message is classified on arrival, so nothing waits for a human to open it before it is understood.
- ReadsShared purchasing mailbox on Microsoft 365 via Graph API, or Google Workspace via the Gmail API
- ProducesA label per message: acknowledgement, ship notice, delay, price change, quote, invoice query, document request, noise
- Human checkpointBelow the confidence threshold, a message stays unlabelled and lands in the exception queue rather than being guessed
Order acknowledgement parsing
Free-text and PDF acknowledgements become line-level structured data, in the shape an EDI 855 would have arrived in.
- ReadsEmail bodies, PDF attachments, scans, and EDI 855 messages where a supplier does trade EDI
- ProducesLines carrying PO number, PO line, supplier part, your part, quantity, unit price and promised date
- Human checkpointExtracted fields are shown beside the current PO line, field by field, before anything is written
Promised-date extraction and ERP reconciliation
The date the supplier committed to is compared against the date your ERP is showing your planners.
- ReadsThe parsed acknowledgement plus the open PO line in NetSuite, Business Central, Prophet 21, Acumatica or SAP
- ProducesA proposed change on the PO line, with the variance in days stated explicitly
- Human checkpointTolerance rules decide. Inside tolerance applies with an audit entry, outside goes to the buyer who owns the PO
Delay detection and impact alerting
A late part matters because of what it holds up, so the alert names the thing at risk.
- ReadsNew promised dates compared against work order and sales order due dates pegged to the PO line
- ProducesAn alert naming the exposed work order or customer order, the customer, and the date at risk
- Human checkpointThe agent alerts. It never reschedules production, moves a customer promise date, or emails a customer
Supplier follow-up drafting
The chase that normally depends on somebody remembering is generated when the acknowledgement window lapses.
- ReadsOpen PO lines unacknowledged past your agreed window, and lines whose promised date has passed
- ProducesA draft reply in the existing thread, carrying PO, line, part number, quantity and the date you were told
- Human checkpointDrafts wait for a buyer. Nothing reaches a supplier without a person clicking send
Three-way match exception surfacing
The mismatches that normally surface at the payment run are listed the day the invoice arrives.
- ReadsPurchase order, goods receipt and supplier invoice, read from the ERP and the accounts payable mailbox
- ProducesExceptions grouped by type: quantity variance, price variance, missing receipt, duplicate invoice, unmatched invoice
- Human checkpointAccounts payable decides. The agent never approves, posts or pays an invoice
Requisition intake and routing
Internal requests arriving as a sentence in an email become structured requisitions with a category and a route.
- ReadsInternal email and form submissions, matched against your item master and supplier master
- ProducesA structured requisition with a UNSPSC category, a suggested supplier, and a route based on approval limits
- Human checkpointApproval happens where it already happens, in the ERP or in Coupa, Ariba, Jaggaer or Oracle procurement
Supplier onboarding document chasing
The documents that expire quietly, then block a payment or an audit, are tracked and chased.
- ReadsYour supplier master plus the checklist: tax forms, insurance certificates, quality certifications, resale certificates
- ProducesA live checklist per supplier, an expiry calendar, and drafted reminders ahead of each expiry
- Human checkpointBank detail changes are never applied. They are flagged for out-of-band verification by a person
// manual vs agent-assisted
The same purchase order, two paths
This compares structure, not savings. We are not going to invent a percentage for your team. What changes is when information becomes visible, and who has to be the one to notice it.
| What happens | Manual path | Agent-assisted path |
|---|---|---|
| An acknowledgement arrives | It sits in a shared mailbox until somebody opens it | It is classified on arrival and parsed into PO, line, quantity, price and date |
| The promised date differs from the PO | Found only if a buyer happens to compare the two by eye | Compared automatically, with the variance measured against a tolerance rule |
| The change reaches the ERP | Re-keyed by hand, when there is time | Written back under approval, with the source message linked in the audit trail |
| A delay becomes visible | On the day the part fails to arrive | On the day the acknowledgement is read, which is usually far earlier |
| Who finds out first | Usually the person who needed the part | The buyer who owns the PO, plus whoever owns the affected order |
| An unacknowledged PO | Chased if somebody remembers it | A chase draft is queued as soon as the acknowledgement window lapses |
| An invoice mismatch | Surfaces at the payment run | Surfaces when the invoice arrives, matched against PO and receipt |
| Coverage | Whatever the team gets through that week | Every message, every day, including the quiet suppliers |
| The failure mode | Missed messages and silently stale dates | A wrong extraction, which is exactly why nothing writes without a checkpoint |
// where the data comes from
Six intake channels, one internal shape
Supplier information arrives in more than one form, and the ones that arrive as prose are the ones causing the problem. Everything is normalised into the same internal record before it is compared to anything.
Shared purchasing mailbox
Microsoft 365 through the Graph API, or Google Workspace through the Gmail API, reading the shared mailbox rather than personal inboxes.
Attachments
Generated PDFs, scans, spreadsheets and photographed printouts, each with its own extraction path and confidence score.
EDI messages
X12 855 acknowledgements, 856 ship notices and 865 seller-initiated change acknowledgements, normalised into the same internal shape as parsed email.
Supplier portals
Where a supplier only publishes status on their own portal, we pull it on a schedule instead of asking a buyer to log in.
ERP purchase order data
Open PO headers and lines, receipts, item master and supplier master, read live so comparisons run against current state.
Source-to-pay platforms
SAP Ariba, Coupa, Jaggaer and Oracle Fusion Cloud Procurement, where requisitions and approvals already live.
// the part that matters most
How write-back, approval and rollback actually work
Every competitor page promises frictionless automation. The honest version is that writing to a live ERP is the risky part, and the design of the approval model is most of the engineering. Here is the model we build to, and we will not skip it because a project is in a hurry.
- A propose-only phase first: the agent parses live mail and writes nothing, so agreement with your buyers is measured before anything is automated
- A field allowlist. Promised date, acknowledged quantity, acknowledged price, supplier reference. Payment terms, bank details, cost accounting and the item master sit outside it
- Tolerance rules per field, and per supplier where one warrants its own: date variance in days, quantity variance in units or percent, price variance in percent
- Confidence thresholds that override tolerance. Low extraction confidence means no write, even when the variance looks routine
- An approval view putting the source message, the extracted fields and the current PO line side by side, approvable line by line or in bulk
- An audit trail on every write: source message identifier, extracted value, confidence, previous value, new value, run identifier, approver
- A revert path by run identifier, using stored previous values. Because writes are field-scoped, a revert cannot disturb data the agent never touched
- A kill switch that drops the agent back to propose-only immediately, without a deployment and without losing the queue
// before you scope it
Not sure which pipeline is worth building first?
Tell us how supplier acknowledgements reach your team today and which ERP holds the promised date. We will tell you which of the eight pipelines pays first, and which we would not build for you at all.
// the hard part
Supplier data is messy, and pretending otherwise is how these projects fail
The extraction is not the hard part. Deciding what to do when the message is ambiguous is the hard part, and a page that does not talk about it has not built one of these.
- The same supplier writes dates three ways, because three different people answer the mailbox
- Week numbers and phrases like end of month are not dates. They are stored as a flagged range, never as false precision
- Part numbers get mistyped, so matching runs against your item master and open PO lines rather than the string in the email
- One acknowledgement covers a split shipment with two dates on one line, which has to become two commitments, not an average
- Scans and photographed printouts vary in quality, so poor documents are queued for a human instead of guessed at
- Units, currencies and date order differ on imports, and the Incoterms on the order change what a transit time even means
- An agent that writes a bad date into an ERP is worse than no agent, because planners treat a date in the system as confirmed
// systems we connect
The ERP and procurement systems we read from and write to
The ERP is authoritative for purchase orders, receipts and promised dates. The source-to-pay platform is usually authoritative for requisitions and approvals. We map which system owns which field before anything is built, because two systems both believing they own a date is how the current problem started.
ERP and accounting systems
- Oracle NetSuite
- SAP S/4HANA
- SAP Business One
- Microsoft Dynamics 365 Business Central
- Acumatica
- Epicor Prophet 21
- Epicor Kinetic
- Infor CloudSuite
- QuickBooks Enterprise
- Odoo
Procurement and mail platforms
- SAP Ariba
- Coupa
- Jaggaer
- Oracle Fusion Cloud Procurement
- Microsoft 365 and Graph API mailboxes
- Google Workspace and the Gmail API
Where an ERP offers no supported write path, the agent stays in propose-only mode and delivers a review queue. We would rather say that up front than discover it in week six.
// standards and formats
The standards a purchasing team actually runs on
Your large accounts trade EDI. Your long tail sends email. An agent has to be fluent in both, and has to produce the same internal record either way.
EDI 850
Purchase Order. The record every later message is reconciled back to.
EDI 855
Purchase Order Acknowledgment. The structured version of what most suppliers send you as prose.
EDI 856
Ship Notice/Manifest, the advance ship notice. What is actually on the truck, before it arrives.
EDI 860 and 865
Purchase Order Change Request, buyer initiated, and its seller-initiated counterpart, the Purchase Order Change Acknowledgment/Request. The 860 goes out from you. The 865 comes back.
EDI 810
Invoice. One of the three documents in a three-way match, with the order and the goods receipt.
EDI 997
Functional Acknowledgment. Confirms a transmission was received and accepted syntactically, which is not the same as agreed.
AS2
A secure HTTP transport widely used between EDI trading partners, defined in RFC 4130 as Applicability Statement 2.
cXML and PunchOut
The protocol for exchanging business documents between procurement applications and suppliers, including the PunchOut session.
SAP OCI
Open Catalog Interface, the punchout route used by SAP SRM and SAP Ariba Catalog for supplier catalogues.
GS1 identifiers
GTIN for trade items and SSCC for logistic units, matching receipts to shipments without free-text descriptions.
UNSPSC
Commodity classification codes, so a requisition is categorised consistently and routing rules work.
Incoterms
The eleven three-letter trade terms deciding who carries cost and risk in transit, and so what a promised date means.
References: ASC X12 publishes the transaction set catalogue that defines the 850, 855, 856, 860, 865, 810 and 997 documents named above. cXML describes itself as a protocol for consistent communication of business documents between procurement applications, e-commerce hubs and suppliers, and covers the PunchOut feature. Incoterms 2020 is the International Chamber of Commerce set of eleven three-letter trade terms used in contracts for the sale and purchase of goods.
// how we build it
From a mailbox sample to approval-gated write-back
We measure the actual mix of message types across a real sample of supplier email, not an imagined inbox.
Field allowlist, tolerances, thresholds and escalation rules are written down with your buyers first, because they are the product.
The agent parses live mail and proposes changes while writing nothing, so agreement with your buyers is a measured number.
Write-back starts on one field set, with the audit trail and revert path proven before scope widens.
Delay alerting, follow-up drafting, three-way match and requisition intake are added individually, each with its own checkpoint.
// when not to build this
Five situations where we would tell you not to
A procurement agent is worth building when the reading volume is real and somebody will own the exceptions. If neither is true, it becomes an expensive way to generate a second inbox.
- Your open purchase order volume is small enough that a calendar reminder and a spreadsheet genuinely cover it
- Nearly every supplier already sends a clean EDI 855, in which case fix the mapping rather than layering an agent on it
- Purchasing email lives in personal inboxes rather than a shared mailbox, which has to be fixed before anything can read it
- Your ERP offers no supported write path, which limits the agent to alerting and a review queue
- Nobody has the time or the authority to work an exception queue, because an unattended queue is just a second inbox
// what you get
What is handed over at the end
You own the agent, including the rules that decide what it is allowed to do. That matters more here than on most builds, because the rules are the safety model.
- Source code and infrastructure running in your own accounts, not on a platform you rent from us
- Extraction rules and prompts as versioned files your engineers can read and change
- Tolerance and threshold configuration your buyers can edit without a developer
- The field allowlist documented, with the reasoning for every field left out of it
- The audit trail schema, plus the queries your finance team will be asked for during an audit
- A runbook for the exception queue, written for the buyer who owns it rather than for an engineer
- The propose-only switch and the kill switch, both documented and tested
- Recorded walkthroughs for buyers and accounts payable, so a new starter does not need us
Related: AI agent development, AI workflow automation, B2B e-commerce, and e-commerce for manufacturers.
PROCUREMENT AI AGENT FAQ
Questions purchasing and supply chain teams ask first
The questions that come up on every scoping call, answered here instead of saved for the pitch.
Topics
Can’t find your answer?
Talk to the founderThe basics
What is a procurement AI agent?
Software that reads the supplier email your purchasing team receives, pulls out the order number, promised ship date, quantity and price, compares each against the matching open purchase order line in your ERP, and puts anything that disagrees in front of a buyer. It reads and matches. A person approves.
How is this different from the alerts our ERP already has?
Your ERP can only alert on what is inside it. The promised date lives in an email nobody has opened, so the ERP confidently shows a date that stopped being true a week ago. The agent works the inbox first and the ERP second, which is the order the information arrives in.
Do we need EDI for this to work?
No, and that is usually the point. Teams already receiving an EDI 855 acknowledgement from every supplier do not need an agent, they need better mapping. This exists for the long tail of suppliers who will never trade EDI and keep sending free-text email and PDF attachments.
Our suppliers send acknowledgements as PDF attachments. Does that work?
Yes, that is the normal case. The agent reads the PDF, whether generated or scanned, and extracts line-level fields. Scan quality varies, so low-confidence extractions route to an exception queue for a human rather than being written into the ERP as if they were certain.
Can it handle a supplier who never acknowledges anything?
It handles the silence directly. When a PO passes your acknowledgement window with nothing back, the agent drafts a chase naming the PO, line, part number and the date you expected. The draft waits for a buyer to send it, and the missing reply is tracked as its own exception type.
Safety & approval
Will it change dates in our ERP without asking?
Only inside limits you set, and only on fields you explicitly allow. Everything else goes to a buyer. Most teams start in propose-only mode where the agent writes nothing at all, then enable write-back on a narrow field set once they have seen how often it agrees with their buyers.
What happens when the agent reads a date wrong?
Two things catch it. Extraction confidence below your threshold means no write happens regardless of anything else, and a variance outside your tolerance rule routes the line to a person. If a wrong value does get through, every write stores the previous value and the run identifier, so the batch can be reverted.
What is a tolerance rule?
A number deciding whether a difference is routine or worth a human. A promised date three days later than the PO might be inside tolerance and apply automatically. Three weeks later goes to the buyer. You set separate tolerances for date, quantity and price, and can set them per supplier.
How do we roll back a bad batch?
Every write records the source message, extracted value, confidence score, previous value, new value, run identifier and approver. Reverting replays the previous values for one run. Because writes are restricted to an allowlist of fields, a rollback cannot disturb anything the agent was never permitted to touch.
Will it approve invoices or release payments?
No. The agent surfaces three-way match exceptions, meaning it shows where the purchase order, the goods receipt and the supplier invoice disagree, grouped by type. Approving, posting and paying stay with your accounts payable team inside your existing controls.
What about supplier bank detail change requests?
The agent flags them and never applies them. Bank detail changes arriving by email are a known fraud route, so they are a red-flag class: the message is labelled, the buyer and finance are notified, and the change waits for verification by a person using a phone number you already hold.
Does it send emails to our suppliers on its own?
Not by default. Follow-ups are drafted into the buyer thread with the PO, line, part number and original date already filled in, and a person sends them. Some teams later allow automatic sending for one narrow template, usually a first chase, after watching the drafts for a while.
Supplier data
What happens when a supplier says something vague like end of month?
It becomes a range with an explicit ambiguity flag, not a precise date. Inventing precision is the failure mode that destroys trust in the field, because planners assume a date in the ERP means someone confirmed one. A flagged range tells the truth about what the supplier actually said.
How does it know which purchase order an email belongs to?
It matches several signals together: the PO number in the subject or body, your part numbers, the supplier domain, quantity and value, and the set of POs currently open with that supplier. When the match is not confident it asks, because a correct date on the wrong line is worse than none.
Can it tell us which customer order a delay affects?
Yes, where the link exists in your system. If a purchase order line is pegged to a work order or sales order, the alert names the exposed order, the customer and the date at risk instead of just saying a part is late. It alerts. It does not reschedule production.
Can it handle price change notices?
Yes. Price changes are classified as their own message type, the old and new unit prices are extracted, and the variance is measured against your price tolerance and the agreed contract price where you hold one. Price movement almost always routes to a buyer, because a commercial conversation is attached.
Systems & standards
Which ERPs can you write back to?
Oracle NetSuite, SAP S/4HANA and SAP Business One, Microsoft Dynamics 365 Business Central, Acumatica, Epicor Prophet 21 and Epicor Kinetic, and Infor CloudSuite. Where a supported API exists we use it. Where it does not, the agent stays in propose-only mode and delivers a review queue instead.
Can it work inside Coupa, Ariba or Jaggaer instead of the ERP?
Yes, and often alongside them. Requisition intake and approval routing usually belong in the source-to-pay platform, while promised dates and receipts belong in the ERP. We map which system is authoritative for each field first, because two systems both owning a date is how the current mess started.
Working together
How long before it does anything useful?
The first useful output is usually classification and a review queue, which can run against live mail early because it writes nothing. Write-back comes later and deliberately, after a propose-only period long enough to measure agreement with your buyers. We give a firm timeline once we have sampled your mailbox.
What do you need from us to start?
A representative sample of real supplier email, read access to your ERP for purchase orders and receipts, your item and supplier master, your acknowledgement window and escalation rules, and one named buyer who will own the exception queue. That last one matters more than any technical item on the list.
When is this the wrong thing to build?
When your open PO volume is small enough that a calendar reminder covers it, when nearly all suppliers already send a clean EDI 855, when purchasing email sits in personal inboxes instead of a shared mailbox, or when nobody can work an exception queue. We say so on the call, not after.
Who owns the code and the rules?
You do. The extraction rules, prompts, tolerance settings, field allowlist and infrastructure are yours, versioned in your repositories and running in your accounts. Tolerances and thresholds are configuration your team edits without calling us. There is no runtime you keep renting from us to keep the agent working.
GET STARTED
Scope a procurement agent
Tell us how supplier acknowledgements reach your team, which ERP holds the promised date, and what the agent must never be allowed to touch. You get a straight read and a fixed proposal before any work starts.
Propose-only first. Field allowlist, tolerance rules and a full audit trail on every write. You own the code.