Dynamics 365 Finance & Supply Chain Management · agent

The receipt nobody posted. Chased, confirmed, recorded.

The PO Receipt Chase Agent is an AI agent for Dynamics 365 Finance & Supply Chain Management that works the overdue purchase-order backlog for the buyer. It finds every open PO line past its delivery date, groups the late lines by buyer with days overdue and quantity outstanding, takes the plant's confirmation of what arrived, and posts the product receipt only after a person approves the exact receipt it is about to record. Once the receipt is posted the vendor invoice can three-way match, which is how the received-not-invoiced (GRNI) backlog and the unmatched-invoice queue both shrink. It runs on test data in a demonstration environment today.

Overdue lines by buyer

Illustration · test data
BuyerLate linesOldest, days
Buyer group 01719
Buyer group 04412
Buyer group 0226

Proposed product receipt

PO line past due · quantity confirmed by the plant · delivery note as receipt number

Waiting for your yes before anything posts.

The problem

Where the month goes: the receipt nobody posted

When goods arrive late, or arrive and are never recorded, the company pays for it in delays. Purchase orders pass their delivery date, nobody is sure what has really arrived, and buyers spend hours calling plants and vendors to find out.

The knock-on effect is in finance. Dynamics 365 matches a vendor invoice against the purchase order and the product receipt. If the receipt was never posted, the invoice cannot match: it sits in the pending vendor invoice list with a matching discrepancy, the vendor chases for payment, and the team clears it by hand at period close. The mirror image is GRNI, goods received not invoiced: receipts posted, invoices not yet matched, an accrued-purchases balance that has to be aged and explained every month.

Today the chase is three hand-offs. Someone builds a list of late orders, someone else asks the plant, and a third person keys the receipt. Each hand-off is a chance for a line to be forgotten.

The late line

An open purchase order line past its confirmed delivery date with quantity still to receive. Dynamics 365 records the date and the remaining quantity. It does not chase either.

The missing receipt

Goods on the dock, no product receipt posted. The vendor's invoice arrives, fails to match, and waits in the pending queue until a person finds out what came in.

The accrual

Receipts posted, invoices not yet matched: the GRNI balance. It is real, it ages, and at close someone has to explain every line of it.

The mechanism

How it works, in four steps

The agent runs inside Dynamics 365, the system the business already uses, so there is no new software to learn and no data copied into a separate tool. People talk to it in plain language: “Show me all overdue purchase orders.”

  1. 01

    Find

    The agent reads the open purchase orders live and picks out every order line that is past its delivery date and still waiting for goods. Lines not yet due are left out.

  2. 02

    Report

    It shows the late lines grouped by buyer, with days overdue and units still outstanding on each, and suggests who to contact first. The list a buyer used to build by hand appears in seconds.

  3. 03

    Confirm

    The plant or the buyer tells the agent what actually arrived: the quantity and the delivery note number. That delivery note number becomes the product receipt number in Dynamics 365.

  4. 04

    Record

    The agent checks the quantity against what is still outstanding, shows the exact receipt it is about to post, and waits for a yes. Only after approval does it post the product receipt, then it reads the result back so the person can see it is done.

Once the receipt is posted the order line shows as received and the vendor invoice can match and be paid. The GRNI chase and the invoice chase are the same chase, worked from the receipt side.

What changes for the team

What the buyer, the plant and finance get

Five things, each of them visible in Dynamics 365 the day the agent starts working the list.

A clear picture at any time

Overdue orders by buyer, with days overdue and quantity outstanding, in seconds instead of a manual report.

Less chasing by hand

Buyers see what to follow up first and no longer build the list themselves.

Faster invoice matching

Receipts are posted sooner, so vendor invoices three-way match and are paid on time, and the pending-invoice queue stops growing.

Control stays with people

The agent never posts anything without showing the receipt first and getting a yes. It will not receive more than the quantity still outstanding on the line.

A traceable result

Every receipt is a normal product receipt in Dynamics 365, posted under the agent's own user and security role, where finance and auditors see it in the ordinary records.

Status, stated exactly

Where it stands today, exactly

We publish a status against everything we show, because “we do that” is the sentence that wastes a buyer’s quarter.

Find and report overdue purchase order lines by buyer

Working

Runs today on test data in a demonstration environment. A short recorded demo shows the full run.

Confirm what arrived in chat and post the product receipt, with approval

Working

Same environment, same demo. Quantity check, exact receipt shown, posted on a yes, result read back.

Confirm with one click inside the tools people already use, approvers informed

Next stage

Not built yet. Moving the confirmation out of chat and into the plant’s daily tools is the next piece of work.

Vendor follow-up drafts for open GRNI, and PO or payment status answers from the records

Built to order

Engineering we do on your environment; there is no packaged app for it yet.

The boundary

What it will not do

An agent that can post to the ledger is judged on what it refuses. These are the lines the PO Receipt Chase Agent does not cross, by design rather than by instruction.

It will notBecause
Post a receipt nobody approvedEvery product receipt is shown in full, quantity and delivery note included, and posted only on an explicit yes from a person.
Receive more than is outstandingThe quantity is checked against the remaining quantity on the line before the receipt is even proposed.
Touch the purchase orderIt does not change prices, dates, quantities or vendors on the order. It records what arrived against the order that exists.
Post or approve the invoiceThe receipt is its job. Invoice matching and payment stay with accounts payable and the workflow already in Dynamics 365.
Act outside its roleIt runs under a security role you assign. What that role cannot see or do, the agent cannot see or do.
Work from a copyIt reads the open orders live from Dynamics 365, not from an export, so the list is the ERP's list.

The same approval boundary runs through everything we build on Dynamics 365. It is argued in full on the agentic ERP hub and sits beside Microsoft’s own agents in the Dynamics 365 agent catalog.

Questions people actually type

GRNI, receipts and the agent, answered plainly

What is GRNI in Dynamics 365?
GRNI stands for goods received not invoiced. In Dynamics 365 Finance & Supply Chain Management it is the accrued-purchases balance created when a product receipt is posted before the vendor invoice is matched. It is correct accounting, but it ages: every month someone has to explain which receipts are still waiting for an invoice and why. The PO Receipt Chase Agent works the other side of the same problem, goods that arrived and were never received in the system, which is what stops invoices from matching in the first place.
What is the difference between GRNI and an unposted receipt?
GRNI is a receipt without an invoice. An unposted receipt is goods without a receipt. The first shows up as an accrual on the balance sheet; the second shows up as an invoice that cannot three-way match and a vendor chasing payment. Both come from the same gap between the dock and the system, and both shrink when receipts are posted promptly against the right order line.
Does the agent post the product receipt itself?
Only after a person approves it. The agent checks the confirmed quantity against the quantity still outstanding on the purchase order line, shows the exact receipt it is about to post with the delivery note number, and waits for a yes. It then posts the product receipt in Dynamics 365 under its own user and security role, and reads the posted result back. It will not receive more than the line has outstanding.
Which Dynamics 365 products does it work with?
It is built for Dynamics 365 Finance & Supply Chain Management, where purchase orders, product receipts and three-way matching live. On Business Central the invoice side of this problem is partly covered by Microsoft’s Payables Agent, which matches incoming invoices to orders and receipts; the receipt side on Business Central is something we build to order rather than a demo we can show today.
How is this different from Microsoft’s Procurement Agent for supplier communications?
Microsoft’s agent chases the vendor: it handles procurement follow-ups with suppliers by email from rules the purchaser defines, confirmations and delivery dates among them. The PO Receipt Chase Agent chases the receipt inside the company: it finds the late lines, asks the plant what arrived, and posts the product receipt so the invoice can match. They sit on opposite sides of the dock and can run together.
Is this the same as the KPMG GRNI Chaser Agent on Microsoft Marketplace?
It addresses the same problem. KPMG’s agent asks the approver to confirm receipt of goods in Microsoft Teams so the delivery note can be recorded and the three-way match can proceed. Ours finds the overdue lines first, groups them by buyer, and posts the product receipt in Dynamics 365 behind an explicit approval and a quantity ceiling. The one-click confirmation inside Teams is the next stage on our roadmap, not something we show today.
What does it need from our environment?
A sandbox copy of your Finance & Supply Chain Management environment, a security role for the agent scoped to purchase order inquiry and product receipt posting, and the buyer groups you already maintain. We run it there first, on your orders, before anyone talks about production.
Where does it stand today?
The agent works today on test data in a demonstration environment. It finds overdue orders, groups them by buyer, records a confirmed receipt in Dynamics 365 and reads it back, and a short demo video shows the full run. The next stage moves the confirmation step from chat into the tools people use every day, so buyers confirm a delivery with one click and approvers are informed automatically.

Turning agents on in Dynamics 365, in detail

Readiness, piloting, governance and audit, and what Microsoft's own agents cover versus a build on your customized F&O.

Browse all engineering writing

See it work the list, then run it on your orders.

A short recorded run on test data first. Then a sandbox copy of your Finance & Supply Chain Management environment, your open purchase orders, and the receipt step behind your approval. If the overdue list is not where your month goes, we will say so.

AI in Dynamics 365

Talk to a Dynamics engineer

Schedule a call