Back to Coupa in Google Sheets
SheetXAI logo
Coupa logo
Coupa · Google Sheets Guide

Cancel Stale Coupa Purchase Orders Identified in a Sheet

2026-05-13
4 min read
See the Excel version →

The Scenario

You are a procurement manager. It is mid-year and your team has identified 25 open external purchase orders that have been sitting with no receipt activity for more than 180 days. Suppliers have moved on, the goods were never received, and the open POs are inflating your committed spend report.

Your controller wants them cancelled before the next board presentation. You have a Google Sheet with all 25 PO IDs in column A and their ages in column B.

The slow version:

  • You open Coupa, search for the first PO ID
  • You navigate to the PO, click Cancel, confirm
  • You go back to the sheet, mark row one as done
  • You repeat this twenty-five times
  • At PO number nineteen you cancel the wrong PO because two IDs look similar and you read the wrong row
  • You realize the mistake two days later when a supplier calls asking why their active order was cancelled
  • You spend an afternoon reinstating the PO, apologizing to the supplier, and explaining to your controller why committed spend just went up again.

The fast version is one prompt.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent inside your spreadsheet that reads each PO ID and cancels the Coupa records for you.

Open the SheetXAI sidebar and type:

Cancel each Coupa external PO whose ID is listed in column A of this sheet. After each cancellation, write "Cancelled" into column C. If any PO cannot be cancelled because it has recent receipt activity or is already closed, write the reason into column C instead and do not cancel it.

SheetXAI reads all twenty-five rows, cancels each eligible PO in Coupa, and writes the outcome back into column C. POs that cannot be cancelled because they have receipt activity or are already in a closed state get explained rather than silently skipped.

What You Get

Twenty-five Coupa purchase orders cancelled from a single prompt:

  • Cancellation per row — each stale PO ID in column A gets processed against Coupa
  • Outcome written back — column C shows "Cancelled" for successes and the reason for any failures
  • Safety check — POs with recent activity are preserved and explained rather than cancelled by mistake
  • Committed spend corrected — your board presentation reflects accurate open commitments

The safety check is what protects active relationships. SheetXAI does not blindly cancel every PO in the list. It checks eligibility and reports back on the exceptions.

If column B holds a note or reason for cancellation that should be logged on the PO in Coupa, tell SheetXAI to include it in the cancellation call.

What If the Data Is Not Quite Ready

Stale PO lists from procurement systems are often messier than a clean column of IDs. SheetXAI filters, validates, and cancels in the same prompt.

When the sheet has a mix of stale and active POs flagged by a status column

Column C has values: Stale, Active, Under Review. You only want to cancel the Stale ones.

Filter this sheet to rows where column C says Stale. Cancel the Coupa external PO for each of those rows using the PO ID in column A. Write "Cancelled" into column D for successful cancellations and the failure reason for any that could not be cancelled.

When PO ages need to be calculated before deciding which ones to cancel

Your sheet has PO IDs in column A and last receipt dates in column B. You want to cancel any PO where the last receipt was more than 180 days ago, calculated from today.

For each row in this sheet, calculate how many days have passed since the date in column B. Write the number of days into column C. For rows where column C is greater than 180, cancel the Coupa external PO in column A. Write "Cancelled" into column D for successes and the failure reason for any that could not be processed.

When you want to notify the relevant buyer before cancelling

Each PO has a buyer assigned in Coupa. Before cancelling, you want a summary of which buyers are affected.

For each PO ID in column A, look up the assigned buyer name and email in Coupa and write them into columns C and D. Then list in column E any POs where the buyer's email does not match the internal domain. Pause before cancelling and show me the summary so I can review.

When you need the full stale PO cleanup: calculate ages, filter, check receipt activity, cancel, confirm

Your sheet has PO IDs, order dates, and buyer names, and you want to calculate ages, confirm no recent receipt activity, cancel the eligible ones, and produce a summary for the controller.

Calculate days since order date for each PO in column A using the date in column B and write into column C. Filter to rows where column C is greater than 180. For each of those POs, check Coupa for any receipt activity in the last 30 days. If receipt activity exists, mark column D as Active - Skip. If none, cancel the PO and mark column D as Cancelled. Write a summary at the bottom of the sheet showing how many POs were cancelled, how many were skipped due to recent activity, and the total cancelled committed spend.

The pattern: describe the full cleanup in one prompt. SheetXAI handles the age calculation, the activity check, the cancellation, and the summary.

Try It

Get the 7-day free trial of SheetXAI and open your stale PO list, then ask it to cancel the eligible Coupa purchase orders and write the outcomes back. The Coupa integration is included in every SheetXAI plan. For related workflows, see how to bulk-create purchase orders from approved requisitions or the Coupa in Google Sheets overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more