Monday morning contract renewal briefs for procurement

By General Input

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

Integrations

  • Coupa
  • Slack
  • Google Sheets

Type

Agentic Task

Categories

  • Operations
  • Finance

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats