Stripe and Slack: AI Dispute-Reason Classifier Template

Spojit runs a scheduled check of recent Stripe charges and disputes, sorts each dispute into a reason category, and posts a tidy digest to Slack.

What It Builds

This template uses a Schedule trigger to wake the workflow on a cron interval, a Connector node on the stripe connector to list recent charges and surface the disputes attached to them, and an Agent-mode Connector node that reads each dispute and classifies it into a single reason category with structured output. A final Connector node on the slack connector posts a digest grouping the disputes by category to your chosen channel, so your team sees the shape of incoming chargebacks without opening the Stripe dashboard.

The Prompt

Paste this into Miraxa and it builds the workflow, connecting the tools for you:

Build a workflow that runs every weekday at 9am Australia/Sydney time. List recent Stripe charges and pull any disputes on them, then use an Agent-mode Connector node with structured output to classify each dispute into one reason category (fraudulent, product not received, product unacceptable, duplicate, subscription canceled, or other). Group the results by category and post a digest to the #payments Slack channel showing each category, the count, and the dispute amounts.

Connectors Used

  • Schedule trigger - fires the run on a 5-field cron expression and IANA timezone, for example 0 9 * * 1-5 in Australia/Sydney.
  • stripe - lists charges and the disputes on them so the workflow has the raw chargeback data to classify (list-charges, list-customers).
  • slack - posts the grouped digest to a channel with send-message.

Customize It

Change the cron expression and timezone in the prompt to run hourly or once a day instead of weekday mornings. Swap #payments for your own channel, and adjust the reason categories in the prompt to match the labels your finance team already uses. You can also widen or narrow the lookback window by telling Miraxa how far back to list charges, and add a Condition node so the Slack post only fires when at least one dispute is found.

Tips

  • Use Agent mode with a Response Schema for the classification step so every dispute returns one category in a predictable shape. Keep the deterministic calls (listing charges, posting to Slack) in Direct mode to avoid spending AI credits where you do not need judgement.
  • Make sure your stripe connection has read access to charges and disputes, and that the target Slack channel is added through your slack connection before the first run.
  • If you have a busy account, classify in batches: have the agent process the day's disputes in one structured pass rather than one node per dispute, which keeps the run fast and cheap.

Related

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.