# Supplier 360 workbench for procurement category reviews

> Look up any supplier and see spend, orders, agreements and locations on one screen, with badges for expiring contracts and off-contract spend.

- Workflow type: app
- Services: Coupa, Slack
- Categories: Operations, Finance
- Published: 2026-08-17

## What it does

- Search your supplier list and open any supplier to see the whole relationship on one screen: spend history, open and recently closed orders, active agreements with their terms, and every location you buy from.
- Flags two things on every supplier row: agreements expiring in the next 90 days, and suppliers you are paying without an active agreement covering that spend.
- Shares a formatted supplier brief to any Slack channel in one click, so category review prep lands straight in the thread.
- Replaces the several separate reports category managers pull before every supplier review and renewal conversation.

## What you'll need

- A Coupa account with permission to view suppliers, purchase orders, invoices and contracts
- A Slack workspace where you can post to the channels your team uses for category reviews
- Supplier, order, invoice and contract records already living in Coupa

## Prompt

Build me a supplier 360 workbench that my category managers open before every supplier review and renewal conversation. Today that prep means pulling four separate Coupa reports. I want one screen where you look up any supplier and see the whole relationship.

The landing view is a searchable supplier list backed by the Coupa List Suppliers operation. Show supplier name, supplier number, status and primary contact, with a search box that filters by name or number and a toggle to show only active suppliers. Coupa list endpoints return at most 50 records per call with offset based paging only, so the handler must loop, adding 50 to the offset, until a call returns fewer than 50 records.

Every supplier row carries two badges, and this is the part I care about most. The first is an expiring agreement badge: the supplier has at least one active contract whose end date falls within the next 90 days. The second is an off contract spend badge: the supplier has invoices in the selected spend period but no active contract covering them. Compute both in bulk rather than one call per row. One handler pulls active contracts once with List Contracts, another pulls invoices for the period once with List Invoices using a date filter such as invoice-date[gt_or_eq], then group both by supplier and join the results onto the supplier list. Make the 90 day window and the spend period configurable at the top of the view, with the spend period defaulting to the last 12 months.

Clicking a supplier opens a profile page combining five sections. Spend history from List Invoices filtered to that supplier: total spend for the period, a month by month breakdown, the most recent invoices with number, date, status and amount, and the date of the last invoice. Orders from List Purchase Orders filtered to that supplier, split into open orders and orders closed in the last 90 days, showing order number, status, order date and total. Active agreements from List Contracts, where selecting an agreement loads its full detail with Get Contract By ID and its terms with List Contract Terms, so the manager can read the actual commitment, dates and pricing terms without leaving the app. Locations from Get All Supplier Sites for Supplier, listing every site with its address and whether it is active. The profile header repeats the two badges alongside supplier name, number and status.

On Coupa API mechanics: filter lists on associations using bracket notation, for example order-lines[account][code]=A-100, and use query operators such as [gt_or_eq] and [lt_or_eq] on dates to scope the spend window. Every aggregate number in the profile has to loop through offset pages rather than reading only the first 50 records, otherwise total spend and order counts will be wrong for busy suppliers.

Put a share brief button on the supplier profile. It composes a formatted summary of the selected supplier: name and status, total spend for the period, largest recent orders, active agreements with their end dates, the state of both badges, and the supplier locations. Let the user pick a Slack channel from a list loaded with the Slack List Channels operation, show the composed text in an editable preview, then post it with the Slack Send a Message operation using Slack mrkdwn formatting so bold text and links render properly. The point is that the prep drops straight into a category review thread.

Remember per user: the last Slack channel they shared to, their chosen spend period and expiry window, and a short list of recently viewed suppliers shown on the landing view. Keep the app read only against Coupa. The only write anywhere is the Slack message the user chooses to send.

Keep the app anchored on looking up any supplier and seeing the whole relationship. Contract expiry is one badge on a browsable profile, not the purpose of the app. It should feel fast: render the supplier list quickly and load the heavier profile sections in parallel with clear loading states.

## How to customize

- Change the 90 day window on the expiring agreement badge to match your own renewal notice period
- Set the spend period the profile covers, for example the last 3, 6 or 12 months
- Adjust what goes into the shared brief before it posts, and set a default channel for each category

## FAQ

### Do I need to be a Coupa administrator to use this?

No. You need read access to suppliers, purchase orders, invoices and contracts. The app only reads from Coupa and never changes your records.

### What does the off-contract spend badge actually mean?

It means the supplier has invoices in the period you are looking at but no active agreement covering them. It is a prompt to check whether that spend should be under contract, not an accusation.

### Can I change the 90 day expiry window?

Yes. The window is a setting at the top of the supplier list, so you can match it to whatever notice period your agreements actually require.

### Does it write anything back to Coupa?

No. The only thing it sends anywhere is the supplier brief you choose to post to Slack, and you can edit that text before it goes out.

### How current are the numbers?

It reads live from Coupa each time you open a supplier, so you see the same figures as the source system rather than a stale export.

Use this prompt in General Input: https://www.generalinput.com/prompts/supplier-360-workbench-for-procurement-category-reviews