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.

Agentic Task
Adobe Commerce (Magento)SlackGoogle SheetsFinanceOperationsDaily DigestsAI Reports
PromptCreate

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?
Yes. This uses the standard REST endpoints that ship with both Magento Open Source and Adobe Commerce, so any store on either edition works.
How does it figure out the reason for a refund?
It reads the credit memo comments and the adjustment notes attached to each refund, then classifies the reason into buckets like damaged, wrong item, size, quality, chargeback, or other. You can rename or extend the buckets in the prompt.
What counts as 'yesterday'?
By default it uses your store's business day, not UTC, so an evening order refunded overnight still lands on the right day. You can adjust the cutoff time when you customize the workflow.
Can I get alerted about big refunds separately?
Yes. Any refund above the dollar threshold you set is called out as an outlier at the top of the Slack digest, so finance sees the largest hits without scanning the whole list.
Will this leave a paper trail I can audit later?
Every credit memo becomes one row in the Google Sheet, including order number, customer, amount, products, and the classified reason, so finance always has a running record independent of Slack.

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.