> 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/integrations/native-integrations-v2/infor-ln.md).

# Infor LN / M3

Connect Riff to Infor LN or M3 to give your apps and agents live access to purchase orders, goods receipts, vendor records, and invoice data — so they can take action directly in your ERP without manual exports.

## What you connect

Riff connects to Infor LN and M3 using their REST APIs — the **ION API Gateway** for LN, and the **M3 API** for M3. You store your credentials once in Riff Secrets. Your apps and agents use them automatically.

**Credentials needed:**

| Credential                  | Where to find it                           |
| --------------------------- | ------------------------------------------ |
| ION API endpoint (base URL) | Infor OS → ION API → Services              |
| Client ID + Client Secret   | ION API → Authorised Apps                  |
| OAuth token endpoint        | Provided alongside the Client ID           |
| Tenant ID                   | Your Infor CloudSuite environment settings |

## What your apps and agents can read

| Data object                         | Common use                                                     |
| ----------------------------------- | -------------------------------------------------------------- |
| Purchase Orders                     | Chase confirmations, track delivery status, flag overdue lines |
| Goods Receipts (ReceivingAdvice)    | Match receipts against POs, flag short deliveries              |
| Vendor Master (SupplierPartyMaster) | Look up supplier contacts, payment terms, lead times           |
| Invoice Lines (SupplierInvoice)     | Three-way match: PO → GR → Invoice                             |
| Purchase Order Lines                | Line-level status, quantity, price variance tracking           |
| Production Orders                   | Link procurement demand to production schedules                |

## What your agents can do

| Action                  | Example                                                                                   |
| ----------------------- | ----------------------------------------------------------------------------------------- |
| **Read & report**       | Pull all POs with delivery date before today and no GR → build overdue delivery dashboard |
| **Chase confirmations** | Query unconfirmed POs → send Outlook email to supplier contact → log response             |
| **Flag exceptions**     | Detect quantity or price mismatches on GRs → alert buyer → log exception code in ERP      |
| **Three-way match**     | Retrieve PO, GR, and invoice line → compare quantities and prices → approve or flag       |

## App use cases

### Overdue Delivery Dashboard

Build an App that queries Infor LN for all open PO lines with a delivery date in the past and no confirmed goods receipt. Display by supplier, days overdue, and PO value. Buyers click through to the PO and send a chase email directly from the app — no ERP login required.

### Supplier Performance Portal

Pull delivery on-time rate, invoice dispute rate, and lead time accuracy from LN by supplier over a rolling period. Display as a ranked table. Drill into any supplier to see line-level detail. Exportable for supplier review meetings.

### PO Status Tracker

A live view of all open purchase orders: status, confirmation date, expected delivery, goods receipt date. Filter by site, buyer, category. One-click to chase or escalate.

## Agent use cases

### PO Confirmation Chaser

**Trigger:** Daily at 07:00\
**Input:** Open POs in LN with no supplier confirmation, older than 3 business days\
**Action:** Draft and send confirmation request to supplier email on record via Outlook\
**Output:** Log supplier confirmation back to LN; flag non-responses to buyer in Slack

### Goods Receipt Discrepancy Monitor

**Trigger:** Daily at 06:00 (or on new GR event via webhook)\
**Input:** All GRs posted in the last 24 hours\
**Action:** Compare received quantity and price against PO line\
**Output:** Flag mismatches above threshold to AP team; auto-approve clean matches

### Invoice Matching Agent

**Trigger:** New invoice received (Outlook webhook or scheduled)\
**Input:** Invoice line data from Infor LN\
**Action:** Three-way match against PO and GR → approve or escalate\
**Output:** Approved invoices posted; exceptions queued for buyer review with a match summary

## Connecting Infor LN in Riff

1. Open your app or agent in Riff and go to **Integrations**
2. Add a new custom integration — name it "Infor LN"
3. Open **Secrets** and store your ION API credentials (Client ID, Client Secret, base URL, tenant ID)
4. In your agent or app, reference the secrets to authenticate and call the ION API
5. Ask your agent: *"Read all open purchase orders from Infor LN where the delivery date is before today and no goods receipt has been posted"*

{% hint style="info" %}
**ION API vs. direct LN API:** For Infor CloudSuite customers, the ION API Gateway is the recommended integration path. It provides a stable REST interface to LN business objects (BODs) and handles authentication centrally across your Infor landscape.
{% endhint %}

{% hint style="success" %}
**No API access yet?** Ask your Infor administrator to enable ION API access for your tenant. In the meantime, your agent can work with LN CSV exports uploaded to Riff's storage, or with Outlook-forwarded order acknowledgements from suppliers.
{% endhint %}


---

# 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/integrations/native-integrations-v2/infor-ln.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.
