Daily Paddle refund and chargeback review in Slack and Sheets
Every weekday morning, yesterday's refunds and chargebacks are checked against each customer's history so only the unusual ones reach your team.
Every weekday at 7am, review the previous day's Paddle refunds, credits and chargebacks, and tell me only about the ones that genuinely look unusual. Run this on a schedule rather than on individual refund events, because the value here comes from comparing each refund against that customer's payment history and against the rest of the day, which needs the whole day's picture rather than one event at a time.
Start with Paddle List Adjustments to pull every adjustment created during the previous calendar day, covering refunds, credits and chargebacks. Adjustments are paginated and default to only 10 per page with a maximum of 50, so request the largest page size and keep following meta.pagination.next until has_more is false. If you stop after the first page you will silently review only the first handful of refunds, which defeats the entire purpose of the check.
For each adjustment, use Paddle Get Transaction on the linked transaction to get the amount, the currency and the product or price that was refunded, and Paddle Get Customer to get the customer's name and email. Then use Paddle List Transactions filtered to that same customer to pull their payment history, so you can see how much they have paid overall, when their first payment was, and whether they have been refunded before.
Paddle returns monetary amounts as strings in the currency's smallest unit, so "5000" means $50.00 USD. Convert every amount into normal major units before comparing it to any threshold or writing it into a report, otherwise a $50 threshold gets compared against 5000 and almost everything looks like a large refund. Watch for zero-decimal currencies such as JPY, where the smallest unit is already the major unit and no division is needed.
Flag a case only when it meets at least one of these criteria: a single refund above a threshold I can set, defaulting to $200 and easy for me to change; any chargeback at all, regardless of size; any customer with more than one refund in the trailing ninety days; and any customer who refunded within fourteen days of their very first payment. Everything else is normal business and should not be flagged. Be strict about this, since a report that flags everything is one I will stop reading.
Post the flagged cases to my finance channel using the Slack Bot Send a Message operation, as one line per case containing the refund amount, the customer, the product, the reason stated on the adjustment, and the specific reason it was flagged, for example "flagged: chargeback" or "flagged: second refund in 90 days" or "flagged: refunded 3 days after first payment". Keep it scannable rather than writing a long narrative, and group chargebacks at the top since those are the most urgent.
Separately, append every adjustment from the day, flagged or not, to a tab in my Google Sheet using Google Sheets Append Values, one row each with the date, the adjustment type, the amount in major units, the currency, the customer name and email, the product, the stated reason, and whether it was flagged along with why. This gives me a running record I can audit later and use to spot slower patterns that a single day would never reveal.
If nothing met the flag criteria, still post a single line to the finance channel saying the review ran and found nothing unusual, including how many adjustments were reviewed. Staying silent is not acceptable, because I would have no way to tell the difference between a clean day and a workflow that failed to run. Append the day's adjustments to the sheet even when nothing is flagged.
What does this prompt do?
- Collects every refund, credit and chargeback from the previous day, including on busy days when there are far more than a handful, so nothing slips past unreviewed.
- Looks up the amount, product and customer behind each one, then compares it against what that customer has paid you in the past.
- Flags only the cases that genuinely matter: unusually large refunds, any chargeback, customers refunding repeatedly, and refunds that land just days after a first payment.
- Posts the flagged cases to your finance channel one line at a time, and logs every adjustment from the day to a spreadsheet tab so you have a record to audit later.
What do I need to use this?
- A Paddle account you can read billing and customer data from
- A Slack workspace and the finance channel you want the alerts posted to
- A Google account and a spreadsheet with a tab set aside for the running log
- A refund amount you consider big enough to be worth a second look
How can I customize it?
- Change when it runs, for example earlier than 7am or every day rather than weekdays only
- Set your own flag rules: the refund amount that counts as large, the ninety day repeat window, and how soon after a first payment a refund looks suspicious
- Point it at a different Slack channel or a different spreadsheet tab, or have it mention a specific person when a chargeback appears
FAQs
What counts as unusual enough to get flagged?
Will it tell me anything when nothing is wrong?
What happens on a day with a lot of refunds?
Does it work if we sell in more than one currency?
Can I keep the spreadsheet log but turn off the Slack alerts?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop finding out about refund problems weeks later.
Get a short, honest read on yesterday's refunds and chargebacks every weekday morning, with a full record kept in the background.