Get Instant Slack Alerts Every Time a Stripe Refund Is Issued
Automatically sends a formatted Slack message to your team whenever a refund is processed in Stripe. Catch revenue leaks and respond to customer issues faster without manually checking your Stripe dashboard.
- 1
Set up the Stripe Trigger node
Add a
Stripe Triggernode and connect your Stripe credentials (you will need a Stripe API key with webhook permissions). Set theEventsfield to listen forcharge.refunded. n8n will generate a webhook URL — copy it and paste it into your Stripe Dashboard under Developers > Webhooks > Add Endpoint. - 2
Extract the refund details with a Set node
Add a
Setnode after the Stripe Trigger. Create three fields: setamountto the expression{{$json.data.object.amount_refunded / 100}}to convert cents to dollars, setcustomer_emailto{{$json.data.object.receipt_email}}, and setrefund_reasonto{{$json.data.object.refund_reason || 'No reason provided'}}. This makes the data clean and easy to reference. - 3
Send the alert to Slack
Add a
Slacknode and connect your Slack OAuth credentials or incoming webhook URL. SetResourcetoMessageandOperationtoPost. SetChannelto the channel name where alerts should go, such as#finance-alerts. In theTextfield enter a message like:Refund issued: ${{$json.amount}} to {{$json.customer_email}} — Reason: {{$json.refund_reason}}. Save and activate the workflow.
Frequently asked questions
Do I need a paid Stripe plan to use webhooks?
No. Stripe webhooks are available on all plans including free test mode accounts. You just need to register the n8n webhook URL in your Stripe Dashboard under Developers > Webhooks.
What Slack permissions do I need?
If using Slack OAuth in n8n, your Slack app needs the `chat:write` scope. Alternatively you can create a free Slack Incoming Webhook from your Slack workspace settings and paste the URL directly into the Slack node as a credential.
Can I alert different Slack channels based on refund size?
Yes. Add an `IF` node between the Set node and the Slack node. Set the condition to check if `amount` is greater than your threshold, for example 100. Connect the true branch to a Slack node posting to `#urgent-finance` and the false branch to a Slack node posting to `#finance-alerts`.