Daily Adobe Commerce refunds digest for finance
Every weekday at 9am, group yesterday's Adobe Commerce refunds by likely reason, spot outliers, post the digest to Slack, and log every credit memo to a Google Sheet.
Every weekday at 9am, post a daily refunds digest to our finance team so they can see what drove refund dollars yesterday without opening Adobe Commerce.
Pull yesterday's Adobe Commerce credit memos using List Credit Memos, filtered by created_at with a from/to range that matches the store's business day (not UTC). If a business-day cutoff is not configured, default to the store's local midnight-to-midnight window from the store configuration. For each credit memo, fetch the parent order with Get Order (so you have the customer, order total, SKUs, and category info) and any refund notes with List Credit Memo Comments.
Then classify each refund into one of these reason buckets: damaged, wrong item, size, quality, chargeback, or other. Use the credit memo comments plus adjustment_positive / adjustment_negative fields and any free-text notes as the signal. If a comment is ambiguous, prefer the more specific bucket and only fall back to 'other' when nothing fits.
Group the results and compute: total refund dollars for the day, total number of credit memos, a breakdown by reason (count and dollars), the top refunded SKUs (by dollars), the top refunded categories (by dollars), and any single credit memo above a configurable outlier dollar threshold (default $250). Call outliers out at the top of the digest with the order number, customer, amount, and the classified reason.
Post the digest to a configurable finance Slack channel using Slack's Send a Message. Write it in plain English with a short headline (totals), an outlier section if any, a reason breakdown, top SKUs, and top categories. Keep it scannable, not a wall of numbers.
In parallel, append one row per credit memo to a configurable Google Sheets refunds ledger using Append Values. Each row should include: date, credit memo id, order number, customer email, refund amount, adjustment amount, classified reason, top SKU, top category, and a short excerpt from the comments. This is finance's running record, so keep the column order stable across runs.
If there were no credit memos yesterday, still post a one-line 'no refunds yesterday' message to Slack and skip the sheet append. If Adobe Commerce returns no comments for a credit memo, classify from the adjustment fields alone rather than skipping the record.
Configurable inputs: the finance Slack channel, the Google Sheet id and tab name, the outlier dollar threshold, the reason bucket list, and the business-day cutoff hour.
Additional information
What does this prompt do?
- Pulls yesterday's credit memos from your Adobe Commerce store and reads each one alongside its parent order and any refund notes so nothing is missed.
- Groups refunds into plain-English reasons (damaged, wrong item, size, quality, chargeback, other) so finance can see what's really driving the cost.
- Surfaces totals, the top refunded products and categories, and flags any single refund above a dollar threshold you set as an outlier.
- Posts a readable morning digest to your finance Slack channel and appends one row per credit memo to a Google Sheets ledger for a running record.
What do I need to use this?
- An Adobe Commerce (Magento) store you can connect to General Input
- A Slack workspace and the finance channel you want the digest posted to
- A Google Sheets file to use as your running refunds ledger
- A dollar threshold you consider an outlier refund (for example $250)
How can I customize it?
- Change the send time, the days it runs, or the store's business-day cutoff so 'yesterday' matches your reporting window.
- Adjust the outlier dollar threshold and the list of reason buckets to match how your team already talks about refunds.
- Point it at a different Slack channel or Google Sheet, or add columns to the ledger (region, store view, refund method) as your finance workflow evolves.
Frequently asked questions
Does this work with Magento Open Source as well as Adobe Commerce?
How does it figure out the reason for a refund?
What counts as 'yesterday'?
Can I get alerted about big refunds separately?
Will this leave a paper trail I can audit later?
Related templates
Stop chasing refunds across tabs every morning.
Get a daily read on what's driving refund dollars in one Slack message, with a full ledger already updated in Sheets.