Verify risky COD orders on WhatsApp before you pack them

A morning queue that ranks pending and unpaid orders by value, shows each buyer's return history, and queues WhatsApp confirmations before anything ships.

App
HeyyShopifyGoogle SheetsOperationsSalesData SyncNotifications & Alerts
PromptCreate

Build me an app my fulfilment team opens every morning to verify risky cash on delivery and unpaid Shopify orders over WhatsApp before anything gets packed. The point is to catch bad orders before we spend money shipping them, so it has to be fast to work through and it has to leave an audit trail outside the app.

The main surface is a verification queue. Build it from Shopify "List Orders" filtered to orders that are pending or unpaid, sorted biggest order value first. Each row shows the order number, the order total, the line items, the buyer's phone number, a simple read on how complete the shipping address looks (flag a missing street number, a missing postcode, or an address that is too short to be real), and how many hours the order has been waiting since it was placed.

Selecting a row opens a side panel with the buyer's past behaviour, pulled with Shopify "Get Customer Orders" for that customer and Shopify "Get Order" for detail on individual past orders. Show prior order count, how many were cancelled, how many were refunded, and the total value they actually kept. That history is what tells the team whether this is a repeat returner or a good customer.

Each row has a "Verify on WhatsApp" button. Important: Heyy has no direct send message operation, so do not try to send anything. Outreach is queued by calling Heyy "Create Contact" with the buyer's phone number, attaching the confirmation label, and writing the order number, the line items and the order total into custom contact attributes. Creating that contact with that label is what fires the pre approved WhatsApp template automation inside Heyy. Those custom fields are defined once with Heyy "Create Contact Attribute", so include a one time setup step that creates the attributes if they are missing and remembers their external ids. Attributes are referenced by external id, not by display name.

Each row should also show which template will render, read with Heyy "List Message Templates", and which connected number it will send from, read with Heyy "List Channels". The team wants to see what the buyer is about to receive before pressing the button.

Each row also has a "Check this buyer" button that kicks off a background agent. The agent reads that customer's Shopify order history with "Get Customer Orders" and "Get Order", judges address quality and repeat return risk, and writes back onto the card a short verdict, a recommended action (verify, call first, or cancel), and a one line personalisation the WhatsApp template can render. Store the agent output in the app so the card displays it and so the "Verify on WhatsApp" handler can pass the personalisation through into the contact attributes.

Every outcome (verified, still waiting, cancelled) is logged to a Google Sheet with "Append Values" and kept current with "Update Values", so ops keeps a dated audit trail outside the app. Each sheet row carries the date, order number, order total, payment method, outcome, and the agent verdict when there is one.

Rules to bake in. Orders the team already handled today must drop out of the queue, so persist per order handling state with its date in the app's own store. Heyy has no list contacts read, so anything the app shows about a person comes from Shopify or the app's own store, never from Heyy. Give the team filters for minimum order value, payment method, and whether the phone number looks valid. Put a simple daily counter at the top showing orders verified versus orders cancelled today, so the saving on returned shipments is visible.

What does this prompt do?

  • Builds a morning verification queue of every pending or unpaid order, biggest value first, with the order total, items, phone number, address quality and how long each one has been waiting
  • Shows the buyer's past behaviour beside each order, including prior cancellations and refunds, so your team can spot repeat returners before packing anything
  • Queues a WhatsApp confirmation for any order with one click, using your pre approved template and your connected business number
  • Runs a background check on any buyer that writes back a short verdict, a recommended action and a personal line for the message
  • Logs every outcome to a dated Google Sheet and keeps a running count of orders verified versus cancelled today

What do I need to use this?

  • A Shopify store with orders that need verifying before dispatch
  • A Heyy account with WhatsApp connected, a confirmation label, and a pre approved message template already set up
  • A Google account and a spreadsheet to keep the daily audit trail in

How can I customize it?

  • Change the order value threshold so only orders above a certain amount need verifying, and filter by payment method or whether the phone number looks valid
  • Adjust what counts as a risky buyer, such as how many past cancellations or refunds trigger a warning
  • Swap which message template and which connected number the confirmations go out from
  • Change what gets written to the audit sheet, or point it at a different spreadsheet per team

FAQs

Does this send the WhatsApp message itself?
Not directly. The app hands the order over to your messaging platform with the right label and details attached, and your existing pre approved WhatsApp template goes out automatically from there. That keeps every message inside the templates WhatsApp has already approved for your business.
Why is this built on pending and unpaid orders rather than abandoned carts?
Abandoned carts are people who never ordered. This is about orders you already have and are about to spend money shipping, which is where cash on delivery losses actually happen. The queue pulls orders that are still pending or unpaid so you confirm real buyer intent before packing.
Will an order I already dealt with show up again tomorrow?
No. Once you mark an order verified, still waiting, or cancelled, it drops out of the queue for the day and the outcome is written to your audit sheet with the date.
Can the whole team use it at once?
Yes. It is a shared queue, so anyone on fulfilment can open it in the morning and work through the same list, and the daily counter at the top shows the team's combined progress.
What does the buyer check actually look at?
It reads that customer's order history in your store, judges how complete and plausible the shipping address is, weighs how often they have cancelled or returned before, then writes a short verdict and a recommended action onto the order card.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App
Morning repricing console for Shopify with margin-safe rules

Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.

Hyperbrowser
Shopify
Google Sheets
App
Pre-flight bounce check before you launch a cold email sequence

See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.

Hunter
Google Sheets
App
Per-device electricity cost explorer for your smart home

Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.

Home Assistant
Google Sheets
App
Build a PR media list from real worldwide news coverage

Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.

GDELT
Google Sheets
Gmail
App

Stop shipping orders that were never going to be accepted.

Verify risky cash on delivery and unpaid orders over WhatsApp in one morning pass, and watch your returned shipments drop.