Monday morning contract renewal briefs for procurement

Every Monday at 7am, your procurement team gets a written brief on each contract expiring soon, with spend versus commitment and a clear recommendation.

Agentic Task
CoupaSlackGoogle SheetsOperationsFinanceAI ReportsNotifications & Alerts
PromptCreate

Every Monday at 7am, prepare renewal negotiation briefs for the Coupa contracts coming up for expiry, so my procurement team walks into supplier conversations with leverage instead of rubber-stamping renewals. Use a cron trigger set to every Monday at 7am. Coupa does not expose outgoing webhooks through this integration and is not available as a poll source, so cron is the only valid trigger here.

Start with Coupa's List Contracts operation to find every contract whose end date falls inside the next 90 days. Filter on the end date using Coupa's documented query operators, for example end_date[lt_or_eq] with a URL-encoded ISO 8601 value, and bound the lower end at today so already-expired contracts are excluded. Coupa list endpoints return at most 50 records per call and paginate by offset only, with no cursor and no way to raise the page size, so loop with offset increments of 50 until a call returns fewer than 50 records.

For each contract in scope, pull the committed terms with List Contract Terms so you know the minimum commitment, the contract value, and any tiering or rebate language that matters in a negotiation. Look up the vendor with List Suppliers so each brief names the supplier and carries basic vendor context.

Then measure what we actually bought against what we committed to. For each contract's supplier, pull activity over the contract period with List Purchase Orders and List Invoices, and compute a utilization figure such as actual spend versus minimum commitment. Treat invoiced spend as the primary measure of what we actually consumed, and use purchase order volume to show committed and in-flight demand. Look at the trend across the lookback period rather than only a single total, so the brief can say whether spend is accelerating, flat, or falling away.

Write a short brief per contract covering current utilization as a percentage of the minimum commitment, the spend trend over the period, whether we are tracking under or over commitment, and a clear recommendation to renew, renegotiate, consolidate, or let it lapse. Always state the reasoning behind the recommendation and cite the numbers it rests on. Keep each brief short enough to read in the channel without opening anything else.

Bake in this rule: contracts running well under their minimum commitment should be flagged loudest, because those are the strongest renegotiation candidates. If we committed to a minimum and are nowhere near hitting it, that is leverage to cut the commitment, consolidate the spend into another agreement, or walk away. Contracts running over their commitment are worth flagging too, as candidates for better tiered pricing at renewal.

Post the briefs to our procurement Slack channel using Slack's Send a Message operation, ordered by contract value and by urgency of the expiry date, so the largest and soonest-expiring contracts land at the top. Then append a summary row per contract to our Google Sheets renewal pipeline using Append Values, capturing at least the supplier name, contract value, end date, minimum commitment, actual spend, utilization percentage, and the recommendation.

Make the expiry window and the spend lookback period easy to adjust, exposed as inputs at the top of the workflow rather than buried in the logic. Default the expiry window to 90 days and the lookback to the contract period. If no contracts are expiring inside the window, post a short note saying so rather than staying silent. If a contract has no minimum commitment recorded, still brief it, report utilization as not applicable, and base the recommendation on spend volume and trend instead.

Additional information

What does this prompt do?
  • Finds every contract coming up for expiry inside your chosen window, so nothing quietly renews by default
  • Compares what you actually spent with that supplier against what you committed to, and turns it into a simple utilization figure
  • Writes a short brief per contract covering utilization, spend trend, and a clear recommendation to renew, renegotiate, consolidate, or let it lapse
  • Posts the briefs to your procurement channel ordered by value and urgency, and logs a summary row per contract to your renewal pipeline spreadsheet
What do I need to use this?
  • A Coupa account that can see your contracts, suppliers, purchase orders, and invoices
  • A Slack workspace and the channel where your procurement team works
  • A Google Sheets spreadsheet to act as your renewal pipeline tracker
How can I customize it?
  • Change how far ahead it looks for expiring contracts, and how far back it measures spend
  • Change the day and time it runs, and which Slack channel receives the briefs
  • Adjust the utilization level that decides which contracts get flagged loudest as renegotiation candidates

FAQs

How is this different from a contract expiry reminder?
A reminder tells you a date is approaching. This tells you what to do about it. Each brief combines your committed terms with what you actually bought over the contract period, works out how much of your commitment you really used, and recommends whether to renew, renegotiate, consolidate, or let the contract lapse, with the reasoning spelled out.
What if a contract does not have a minimum commitment?
It still gets a brief. Utilization is reported as not applicable, and the recommendation is based on your spend volume and trend with that supplier instead.
How far ahead does it look?
Ninety days by default, which gives most teams enough runway to open a negotiation before auto-renewal kicks in. You can shorten or lengthen that window, and the spend lookback period, without touching the rest of the workflow.
Does this change anything in our procurement system?
No. It only reads your contracts, suppliers, purchase orders, and invoices. The only things it writes are the Slack messages and the rows added to your renewal pipeline spreadsheet.
What happens when a lot of contracts expire at once?
The briefs are ordered by contract value and how soon the contract expires, so the biggest and most urgent ones sit at the top of the channel. Contracts running well under their minimum commitment are flagged the loudest, since those are usually where you have the most leverage.

Related templates

Turn website roof inspection requests into JobNimbus leads

New roof inspection requests from your website form land in JobNimbus within a minute, with no duplicate records and nothing retyped by your team.

JobNimbus
Google Forms
Slack
Agentic Task
Flag at-risk students in Canvas before they fall behind

Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.

Canvas
Google Sheets
Slack Bot
Agentic Task
Triage new Jira Service Management requests before anyone opens them

Every new customer request gets a priority, triage labels, a friendly reply with the right help article, and a Slack ping only when it is truly urgent.

Jira Service Management
Jira
Slack
Agentic Task
Weekly Canvas grading backlog report in Slack and Sheets

Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.

Canvas
Slack Bot
Google Sheets
Deterministic Code
Risk-check every dependency upgrade pull request in GitHub

When a bot opens a version bump pull request, we read the real documentation for that exact version and tell you whether it is safe to merge.

Context7
GitHub
Slack
Agentic Task
Launch an Ironclad contract when a HubSpot deal is won

The moment a deal hits Closed Won, the right contract starts in Ironclad, the link lands on the deal, and your sales channel hears who owns the next step.

Ironclad
HubSpot
Slack
Agentic Task

Stop rubber-stamping supplier renewals.

Walk into every renewal conversation knowing exactly what you bought, what you committed to, and where your leverage actually is.