Lightweight purchase request and order tracker for Coupa

Let employees raise a purchase request in plain English and follow it from approval to order to invoice without ever learning Coupa.

App
CoupaSlackOperationsFinanceNotifications & Alerts
PromptCreate

Build me a lightweight purchase request app for regular employees who find the full Coupa interface heavy. It is a simpler front door to the same system: people raise requests here, and those requests go into Coupa's normal approval chain. There are two views, a request form and a personal tracker.

The first view is the request form. The requester starts by searching the approved catalogue using the Coupa List Items operation, with Get Item to pull the full detail of whatever they select, so they can see the item name, supplier and price before choosing it. If nothing in the catalogue matches, they can fall back to a free-text description of what they need plus an estimated amount. Either way they then add quantity, a need-by date, a cost centre and a short business justification.

The form must block submission when the cost centre or the business justification is missing, rather than creating an incomplete requisition in Coupa. Validate before anything is written: show the missing fields inline on the form, keep the submit button disabled until they are filled, and re-check in the handler so a bad payload can never reach Coupa.

On submit, the handler calls Create Requisition and then Submit Requisition for Approval, so the request enters the normal Coupa approval chain instead of sitting as a draft the requester has to go and find later. Treat the submit step as part of the same action, and if the create succeeds but the submit fails, surface that clearly and let the user retry the submit rather than creating a second requisition. Coupa requisition create and update bodies use hyphenated attribute names. Some write endpoints also accept an on-behalf-of parameter (x-coupa-api-user-login, api_user_login or on_behalf_of) to attribute the requisition to the actual requester rather than the integration user, which matters here because this is a per-user app. There is also an Update and Submit for Approval operation if a save-then-submit flow works better.

After a successful submission, a handler posts a Slack message to the procurement channel using Send a Message, including the requester, the amount and the need-by date, so procurement sees new demand arriving without anyone having to tell them.

The second view is a personal tracker built on List My Requisitions. It shows each of my own requests in plain English and follows each one past approval into the resulting order using List Purchase Orders, and then into billing using List Invoices, matching orders back to the requisition they came from and invoices back to their order. The point is that a requester can see where their request has got to without asking procurement.

Keep the status language free of procurement jargon. A requester should read things like "waiting on your manager", "approved, being ordered", "ordered, arriving soon" or "invoiced", not raw Coupa status codes. Show the need-by date next to the current status so someone can tell at a glance whether a request is at risk of being late, and let them open a request to see the item, amount, cost centre and justification they originally submitted.

The app is per-user: everyone connects their own Coupa account and only ever sees their own requests, never the whole company's. One note on reading data: Coupa list endpoints return at most 50 records per call and use offset-based pagination, so page through with offset when a requester has a long history, and filter server-side rather than pulling everything and filtering in the browser.

What does this prompt do?

  • Gives your team a simple request form: search the approved catalogue, or just describe what you need with a rough cost, then add quantity, need-by date, cost centre and a reason.
  • Sends every request straight into your normal approval chain, so it lands with the right approver instead of sitting as an unfinished draft nobody sees.
  • Gives each person a private tracker that follows their request past approval into the resulting order and any invoice, described in plain English rather than system jargon.
  • Posts a note to your procurement channel in Slack the moment a request is submitted, showing who asked, how much and when they need it.

What do I need to use this?

  • A Coupa account with permission to raise purchase requests, connected by each person who uses the app
  • A Slack workspace and a channel your procurement team actually watches
  • Your list of cost centre codes, so requesters pick the right one
  • An approved catalogue in Coupa if you want people to order from it, though free-text requests work without one

How can I customize it?

  • Change which Slack channel gets the heads-up and what the message includes, for example adding the cost centre or the item name.
  • Adjust which fields are compulsory, such as only requiring a written justification above a certain amount.
  • Reword the status labels so they match the language your company already uses for approvals and deliveries.

FAQs

Does this replace Coupa?
No. It is a simpler front door for people who only buy something occasionally. Requests go into the same system and follow the same rules, and your procurement team carries on working in Coupa as normal.
Will requests still follow our normal approval rules?
Yes. The app submits each request into your existing approval chain, so the same approvers, thresholds and policies apply. Nothing skips a step or gets fast-tracked.
Can people see each other's requests?
No. Everyone connects their own account and the tracker only ever shows that person's own requests, so there is no visibility into colleagues' purchases or budgets.
What if the thing I need is not in the catalogue?
You can describe it in your own words and give an estimated amount instead. The request still goes through the same approval process, and procurement can sort out the supplier details later.
How will I know where my request has got to?
The tracker shows each request in plain English, following it from waiting on your manager, through to ordered and arriving, and finally to invoiced. That means no chasing procurement for a status update.
What stops someone submitting an incomplete request?
The form will not let a request through without a cost centre and a business justification. It flags what is missing before anything is created, so half-finished requests never reach your approvers.

Related templates

Browse and shortlist creators without burning audit credits

Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.

HypeAuditor
Airtable
Slack
App
Hiring funnel dashboard for every open Hireflix role

One screen showing invited, completed, and shortlisted counts for every open role, plus the stalled invites that have quietly gone nowhere.

Hireflix
Slack
App
Global operations exposure map for your sites and suppliers

Open one board each morning to see which of your facilities, suppliers and shipping lanes are sitting near trouble in the news right now.

GDELT
Airtable
Slack
App
Compare creators on post performance before you pay them

Pick creators from your saved list and see their best and worst Instagram posts side by side, so your brief is built on what actually lands.

HypeAuditor
Google Docs
Slack
App
Review every Hireflix video interview from one daily queue

One screen where your hiring team watches every unscored candidate, reads the transcript alongside each answer, and scores and shortlists on the spot.

Hireflix
Slack
App
Deal sourcing kanban board for your Harmonic saved searches

Drag every new company from your Harmonic saved searches through New, Tracking, Meeting and Passed, with a one click diligence brief on every card.

Harmonic
Airtable
Slack
App

Stop making occasional buyers learn your procurement system.

Give your team one simple screen to ask for what they need, and a tracker that answers "where is my order?" without a single email to procurement.