Daily Clover refund and discount exception report in Slack
Every morning, find out which of yesterday's refunds, credits, and discounts actually deserve a second look, ranked by employee.
Every morning at 7am, review yesterday's refund, credit, and discount activity in my Clover point of sale and flag only the transactions that genuinely deserve a manager's attention. This is an exception report, not a sales recap, so keep it tightly scoped to refunds, manual credits, comps, and discounts. Do not restate general sales metrics like total revenue or top selling items.
Pull yesterday's exceptions from Clover using List Refunds for card refunds, List Credits for manual unreferenced refunds, List Orders for the orders those refunds and discounts belong to, and List Order Discounts for comps and discounts applied at the order level. Manual unreferenced refunds are returned by the credits endpoint and not by the refunds endpoint, so pull both. Manual credits are the single most important category here, and a report built on refunds alone would silently miss them.
Call List Employees once to build an employee id to name lookup, then attribute every exception to a staff member by name so the summary is readable without anyone having to decode an id. When reading orders, use the expand parameter to inline associated objects such as line items and payments, so you are not making a separate follow up call for every order.
Rather than dumping every refund, compare each employee against their own trailing baseline over the past few weeks, roughly the last 30 days. Fetch that baseline window in batched list calls scoped with filter expressions on the time field, for example filter=modifiedTime>1600000000000, rather than making one call per employee per day. Clover allows 16 requests per second per access token with a concurrent cap, and returns 429 with a retry-after header when you exceed it, so honor that header and back off rather than retrying immediately.
Flag an employee when something stands out against their own history, not against a global average, since a busy bartender and a quiet weekday cashier will never look alike. Specifically look for: someone issuing far more manual credits than they normally do, by count or by dollar value; repeated refunds clustered just under a typical manager approval amount, which suggests refunds are being sized to avoid a second signature; unusually heavy comp and discount use relative to that person's own sales volume; and any single unusually high value refund. Rank the flagged items so the most unusual one is first.
Clover wraps list results in an elements array, and returns all monetary amounts as integers in the merchant's smallest currency unit, which is cents for USD, so divide by 100 before showing any dollar figure. Paginate with limit and offset, where limit defaults to 100 and maxes at 1000, and keep advancing the offset until a page returns fewer elements than the limit.
Post a short ranked summary to Slack using the Slack Bot Send a Message action. For each flagged exception, give the employee name, one plain sentence on what stood out and how it compares to their own norm, the dollar amount, and the order or payment reference so a manager can look it up in Clover in seconds. Keep the whole message short enough to read on a phone without opening anything else.
Append one row per flagged exception to a Google Sheets log using Append Values, so there is a running audit trail that builds into a pattern over time. Each row should carry the date, employee name, exception type, dollar amount, the order or payment reference, and a one line reason it was flagged.
If nothing looks unusual, post a single reassuring line to Slack instead of an empty report, and append nothing to the sheet. Write everything in a neutral, non accusatory tone. These are patterns worth a look, not allegations, and most flagged items turn out to be training gaps or honest mistakes, so word each line so a manager can comfortably ask a normal question about it.
What does this prompt do?
- Each morning it reviews yesterday's refunds, manual credits, comps, and discounts in your Clover point of sale, and attributes every one of them to the staff member who rang it.
- Instead of listing every refund, it compares each employee against their own normal pattern over the past few weeks, so you only hear about genuine outliers rather than a wall of noise.
- Posts a short ranked summary to Slack naming the person, what stood out, the dollar amount, and the order or payment reference, so a manager can pull it up in Clover in seconds.
- Appends one row per flagged item to a Google Sheet, so you build a running audit trail that turns one-off oddities into a visible pattern over time.
What do I need to use this?
- A Clover account with permission to view orders, payments, discounts, and staff records
- A Slack workspace where the bot can post into your managers channel
- A Google account and a spreadsheet to hold the running audit log
- A few weeks of Clover history, so each employee has enough of a baseline to be compared against themselves
How can I customize it?
- Change the 7am timing, or send it to a private manager channel instead of a shared one
- Tune how sensitive the flags are, including the approval amount that refunds tend to get sized just underneath
- Widen or narrow the trailing comparison window, or exclude managers and owners who are expected to issue refunds
FAQs
Does this accuse my staff of stealing?
Will it catch refunds where there was no original card sale?
What if my team is small or my Clover history is new?
Do I get a message every single day, even when everything is fine?
Why does it log to a spreadsheet as well as posting to Slack?
Related templates
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.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
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.
Stop finding refund problems a month too late.
Get a short, ranked exception report every morning, plus an audit trail you can actually look back through.