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
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.
Every weekday morning, every appointment that fell through yesterday gets a personal text or email inviting them to rebook, plus a task for the right rep.
Pick any date range up to 120 days and see return volume, refund versus exchange mix, and the products behind every number, recalculated each time you open it.
Every newsletter gets read, checked and signed off in one place, so nothing goes out with a broken link or a half-filled greeting.
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.