# Coupa approvals console for clearing your queue in one pass

> Open one screen every morning, see every request waiting on you with full context, and approve, reject or hold in a single pass.

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

## What it does

- Lists every request currently waiting on you personally, oldest first, so the longest stuck items get dealt with first
- Shows the full story on each row: who asked, which supplier, how much, which cost centre, the line items, and how many days it has been sitting
- Lets you approve, reject or hold straight from the row, with a required reason on anything you reject or put on hold
- Flags anything above your amount limit or past your aging limit at the top, and lets you tick a batch of small routine items and clear them all at once

## What you'll need

- A Coupa account you sign in to, with permission to approve requests
- Permission for the app to read your approvals, requisitions, purchase orders and invoices, and to act on approvals on your behalf
- A Slack account, so requesters hear back when something is rejected or put on hold
- Each approver connects their own Coupa login, so everyone only ever sees their own queue

## Prompt

Build me a Coupa approvals console that my managers open every morning instead of chasing statuses. It is a single screen listing every approval currently waiting on the signed in person, and the whole point is that they can act on the queue and empty it, not just read a summary of what is stuck.

This is per user. Each approver connects their own Coupa login, and the app only ever shows the approvals routed to that person, fetched through their own connected credentials. Nobody sees anybody else's queue.

Load the queue with List Approvals, filtered to approvals pending the signed in user. Two Coupa mechanics matter here: list endpoints return at most 50 records per call and support offset based pagination only, so page by adding 50 to the offset and keep going until a call returns fewer than 50 records. Append .json to the resource path to get JSON responses.

Each approval points at an underlying document, so hydrate the rows using List Requisitions, List Purchase Orders and List Invoices to pull the detail behind the pending approvals. Batch those lookups by id rather than firing one request per row. Every row should show the requester, the supplier, the amount, the cost centre, the line items, and how many days the approval has been sitting.

Default the sort to oldest first. At the top of the screen, show a flagged section for anything that breaks a threshold: any request above a configurable amount, or any request aging past a configurable number of days. Both thresholds are user editable settings that persist per approver.

Every row has Approve, Reject and Hold buttons wired to the Approve Approval, Reject Approval and Hold Approval operations. Reject and Hold both require a comment, so open a small dialog with a required reason box and keep the submit button disabled while it is empty. Approve goes through in one click. When an action succeeds, drop that row out of the queue and leave the rest of the list in place instead of reloading the whole screen. If Coupa refuses an action because the approval already moved on, for example another approver got there first, surface that clearly on the row and refresh it rather than failing silently.

Add multi select checkboxes so an approver can tick a batch of small routine items and clear them in one pass. Bulk approve runs Approve Approval across the whole selection. Bulk reject and bulk hold ask for one shared reason and apply it to every selected item. Show progress while the batch runs, then report anything that failed and leave those rows in the queue.

When a request is rejected or put on hold, a handler notifies the requester in Slack so they are not left guessing. Match the Coupa requester to their Slack account by email using List Users, open a direct message with Open a Conversation, then post it with Send a Message. The message should say what was rejected or held, include the reason the approver typed, and link back to the document in Coupa.

Keep the emphasis on acting and bulk clearing. This is not a digest or a report, it is the surface where an approver actually works their queue down to zero.

## How to customize

- Set the amount above which a request gets flagged for a closer look
- Set how many days a request can sit before it is flagged as aging
- Change the default sort order, or reword the Slack note that goes to the requester

## FAQ

### Will other managers see my approval queue?

No. Each person connects their own Coupa login, and the console only ever shows the approvals routed to that person. Your queue is yours alone.

### Does approving here really approve it in Coupa?

Yes. Every decision is written straight back into Coupa against the same approval record, so the request moves on exactly as it would if you had actioned it in Coupa itself.

### Can I clear several requests at once?

Yes. Tick the checkboxes on a batch of small routine items and approve them in one pass. Rejecting or holding a batch still asks you for a reason first, which then applies to everything you selected.

### What does the requester see when I reject something?

They get a Slack message that names the request, includes the reason you typed, and links back to the document in Coupa, so nobody is left guessing why something stopped.

### Do I have to leave a comment every time?

Only when you reject or hold. Approving is a single click. The comment box is required on reject and hold so the requester always gets a reason.

Use this prompt in General Input: https://www.generalinput.com/prompts/coupa-approvals-console-for-clearing-your-queue-in-one-pass