# 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.

- Workflow type: agent
- Services: Paddle, Slack Bot, Google Sheets
- Categories: Finance, Operations
- Published: 2026-08-09

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## FAQ

### What counts as unusual enough to get flagged?

Four things: a single refund above an amount you choose, any chargeback at all no matter the size, a customer who has refunded more than once in the last ninety days, and a customer who refunded within days of their very first payment. Ordinary one-off refunds are logged to the spreadsheet but do not interrupt anyone.

### Will it tell me anything when nothing is wrong?

Yes. On a clean day it posts a single line saying the review ran and found nothing unusual, along with how many refunds it looked at. That way you can always tell the difference between a quiet day and a check that silently failed.

### What happens on a day with a lot of refunds?

It reads through the entire day rather than stopping at the first few, so a busy refund day gets the same complete review as a quiet one.

### Does it work if we sell in more than one currency?

Yes. Amounts are converted to normal currency values before anything is compared to your threshold or written into the report, so a refund in euros or yen is judged correctly rather than by its raw value.

### Can I keep the spreadsheet log but turn off the Slack alerts?

Yes. The daily log and the flagged alerts are separate steps, so you can keep the running record, change which channel gets notified, or adjust how much detail each alert line carries.

Use this prompt in General Input: https://www.generalinput.com/prompts/daily-paddle-refund-and-chargeback-review-in-slack-and-sheets