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.

Agentic Task
CloverSlack BotGoogle SheetsOperationsFinanceDaily DigestsNotifications & AlertsAI Reports
PromptCreate

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?
No, and it is deliberately not written that way. It surfaces activity that looks different from a person's own normal pattern, which is usually explained by a training gap, an honest mistake, a genuinely rough shift, or a customer situation that needed a comp. The point is to give a manager a specific, checkable question to ask early, not to make an accusation.
Will it catch refunds where there was no original card sale?
Yes. Clover records those manual refunds separately from ordinary card refunds, and this workflow pulls both. That matters because manual refunds with no matching original sale are exactly the category most worth reviewing, and a report that only looked at standard refunds would miss them entirely.
What if my team is small or my Clover history is new?
It still runs, but it works best once there are a few weeks of activity to compare against. Until each person has their own baseline, it leans on plain dollar thresholds and volume instead, and you can tighten those while the history builds up.
Do I get a message every single day, even when everything is fine?
Yes, but a very short one. On a clean day it posts a single reassuring line rather than an empty report, so you always know the review actually ran and you are never left wondering whether the silence means good news or a broken workflow.
Why does it log to a spreadsheet as well as posting to Slack?
Slack is great for catching something this morning and terrible for spotting a slow drift over three months. The spreadsheet row gives you a searchable history, so a pattern that would never stand out on any single day becomes obvious when you look back across a quarter.

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
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
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

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.