Catch ThriveCart refund spikes before they hurt your product
Every ThriveCart refund posts to Slack, and when refunds cluster on the same product the agent files a Linear issue with a diagnostic brief.
Build an agent workflow that treats every ThriveCart refund as a possible product-quality signal, not just an accounting event. The value of the agent is in the diagnostic write-up and the conditional escalation, so use the agent workflow type.
Trigger: a ThriveCart webhook on order.refund events. On install, use ThriveCart Create Event Subscription to subscribe the workflow's webhook URL to order.refund so the workflow fires whenever a refund happens.
Configurable inputs the user should set when they install the workflow:
- Slack channel for the per-refund ops summary (default: an ops or revenue channel).
- Linear team that owns product quality, plus an optional default assignee, priority, and project.
- Refund spike threshold: a count threshold (default 3 refunds in 14 days on the same product) and a rate threshold (default refund rate above 5 percent of recent transactions for that product). Either crossing fires an escalation.
- Lookback window in days (default 14).
- Linear label to apply (default refund-spike).
Steps the agent should take when an order.refund webhook arrives:
1. Read the refund payload. Capture the product id and name, order id, refund amount, customer email, and any customer-supplied refund note or reason.
2. Call ThriveCart Get Customer using the customer email to pull their purchase and refund history with us, so the brief can say whether this is a first-time buyer or a repeat customer.
3. Call ThriveCart List Transactions filtered to the configured lookback window (default last 14 days). Scan the results for other refunded transactions on the same product. Count them, and compute the refund rate as refunds divided by total transactions for that product in the window.
4. Always post a Slack Send a Message to the configured ops channel summarizing the single refund: product, customer (masked email if appropriate), amount, and one line on whether the threshold was crossed ("1 of 3 in 14 days" or "spike: 4 refunds, 7 percent refund rate").
5. If the threshold is crossed, write a short diagnostic brief in plain English: what's happening (refund count, refund rate, window), what the product is, the customer notes or refund reasons collected from the payload and recent transactions, and one or two suggested next steps for the product owner. Then call Linear Create Issue in the configured product team with the brief as the description, a clear title like "Refund spike: <product name> (<count> refunds in <window>)", and the refund-spike label so the product team can filter on it.
6. If the threshold is not crossed, do not file a Linear issue. The Slack message is enough.
Guardrails: do not file duplicate Linear issues for the same product within the lookback window. If an open refund-spike issue for that product already exists in the team, add a comment with the new refund instead of opening a new one. Mask or trim PII in Slack as needed. Use ThriveCart amounts in dollars even though the API returns cents.
What does this prompt do?
- Posts a short Slack summary in your ops channel every time a ThriveCart order is refunded, with the product, the customer, and the amount.
- Looks back at the last two weeks of refunds for the same product and decides whether this refund is part of a pattern or a one-off.
- When refunds cluster on one product (you choose the threshold), the agent writes a plain-English diagnostic brief and opens a Linear issue for the product owner.
- Tags every escalation with a refund-spike label so your product team can filter, triage, and close the loop.
What do I need to use this?
- A ThriveCart account where you can create an API key.
- A Slack workspace and the channel you want refund alerts posted in.
- A Linear workspace and the team you want refund-spike issues filed in.
How can I customize it?
- Set your own spike threshold, for example 3 refunds in 14 days or a refund rate above 5 percent.
- Change the Slack channel that gets the per-refund summary, or split ops alerts and escalations into two channels.
- Pick which Linear team receives refund-spike issues, and pre-fill priority, assignee, or project.
FAQs
Will my product team get pinged on every single refund?
What does a spike actually mean here?
What goes into the Linear issue?
Do I need a paid Linear plan?
Can I send the Slack summary somewhere else, like a DM or a private channel?
Related templates
Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.
Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.
A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.
See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.
A board your product marketer opens on every ship day to turn finished engineering tickets into announcements customers actually read in your Messenger.
Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.
Stop letting refund patterns hide in your inbox.
Connect ThriveCart, Slack, and Linear once, and Geni watches every refund and escalates only when there is a real product problem.