> For the complete documentation index, see [llms.txt](https://docs.riff.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.riff.ai/playbooks/procurement/chase-supplier-confirmations.md).

# Chase supplier confirmations

**Best fit:** Agent **ERP systems:** Infor LN / M3, SAP S/4HANA, Oracle ERP Cloud, Microsoft Dynamics 365 **Time to build:** \~30 minutes

***

## What you're building

You're configuring a Riff agent that monitors your open purchase orders, identifies lines that haven't received a supplier confirmation by a defined deadline, and automatically sends a follow-up message to the supplier. When a confirmation arrives, the agent updates your ERP and closes the loop. When a supplier is unresponsive, the agent escalates to your buyer.

This replaces the daily task of manually pulling an open PO report, filtering for unconfirmed lines, and sending chase emails one by one.

***

## What you need

* A Riff workspace with your ERP connected (see [Integrations](https://github.com/ElleNealAI/riff-docs/blob/main/integrations/README.md))
* Read access to purchase orders in your ERP
* Write access to update order status or add notes (for the confirmation step)
* Supplier email addresses stored in your ERP or reachable through your ERP's vendor master
* The agent's inbox enabled (Settings → General → Agent inbox)

***

## Step 1: Define the job

Before you open Riff, write down:

* **Which PO lines to chase** — e.g. lines with status "Sent to supplier" and no confirmation after 48 hours
* **What a confirmation looks like** — an email reply, a portal acknowledgement, a status change in the ERP
* **What to do when confirmed** — update a status field, add a note, notify the buyer
* **What to do when unresponsive** — escalate after how many chase attempts?

This is the agent's brief. You'll enter it in plain language in the Agent Profile.

***

## Step 2: Create the agent

1. In your Riff workspace, click **+ New** → **Agent**
2. Name the agent — e.g. "PO Confirmation Chaser"
3. You're now in the agent workspace. Open the **Profile** tab

***

## Step 3: Write the agent's brief

In the **Profile** tab, describe the job in plain language. For example:

> You monitor open purchase orders in \[your ERP]. Every morning, you check for PO lines that have been sent to a supplier but haven't received a confirmation within 48 hours. For each unconfirmed line, you send a follow-up email to the supplier's contact. If a supplier hasn't responded after three chase attempts, you escalate to the buyer assigned to that PO.
>
> When a confirmation arrives, you update the PO status in \[your ERP] to "Confirmed" and add a note with the confirmation date and the supplier contact who replied.

Keep it specific. The agent uses this brief to decide what actions to take and when to escalate.

***

## Step 4: Connect your ERP

1. Open the **Integrations** tab in the agent workspace
2. Select your ERP system — Infor LN/M3, SAP, Oracle, or Dynamics
3. Authenticate with your ERP credentials (or use a service account — recommended for production agents)
4. Test the connection — Riff will confirm it can reach your ERP

For specific connection steps by ERP, see:

* [Infor LN / M3](/integrations/native-integrations-v2/infor-ln.md)
* [SAP S/4HANA](/integrations/native-integrations-v2/sap.md)
* [Oracle ERP Cloud](/integrations/native-integrations-v2/oracle-erp.md)
* [Microsoft Dynamics 365](/integrations/native-integrations-v2/dynamics-365.md)

***

## Step 5: Set the trigger

1. Open the **Triggers** tab
2. Click **+ Add trigger** → **Schedule**
3. Set the schedule — e.g. every day at 07:00 local time
4. Optionally add a second trigger: **Incoming email** — so the agent can process supplier replies as they arrive, not just on the morning run

***

## Step 6: Test the agent

1. Open the **Chat** tab
2. Type: `Show me the open PO lines that are overdue for confirmation`
3. The agent will query your ERP and return a list. Check it matches what you'd expect from your ERP's own open PO report.
4. If the list looks right, type: `Send a chase email to the supplier on PO [number]`
5. Review the draft email in the chat before the agent sends it

The first run should always be supervised. Watch the **Activity** tab to see every action the agent takes and confirm it matches your expectations.

***

## Step 7: Go live

Once you're happy with the agent's behaviour in test:

1. Open **Settings** → **Deployment**
2. Enable the agent
3. The trigger will fire on schedule

From this point, the agent runs unattended. It will send chase emails, update your ERP when confirmations arrive, and escalate to buyers when suppliers are unresponsive.

***

## What good looks like

* Your open PO report shows fewer unconfirmed lines over time
* Buyers are only contacted when a supplier is genuinely unresponsive (not as a first step)
* Your ERP reflects confirmation status without manual updates
* The agent's Activity log shows every action, so you have a full audit trail

***

## Variations

**If your suppliers confirm via a portal, not email:** Adjust the agent brief to check the portal's confirmation status rather than waiting for an email reply. You'll need to add the portal as a data source in the Integrations tab.

**If you want a human to approve each chase email before it sends:** Change the agent's escalation setting to "Draft and ask" rather than "Act directly." The agent will draft the email and put it in your review queue instead of sending automatically.

**If PO lines are spread across multiple ERP systems:** Connect both ERP systems in the Integrations tab. Brief the agent on which system to use for which supplier or entity.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.riff.ai/playbooks/procurement/chase-supplier-confirmations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
