Skip to content
Automation Squad
StSTwMade to order

Notifications & alerts

Stripe failed payment → Slack #billing alert + SMS above a set amount

Know which customer's card failed, and how much, before they email you.

Stripe retries a failed charge on its own schedule; the failure sits in the dashboard until someone looks. This package posts every invoice.payment_failed event to a Slack channel with the customer's name, the amount, the attempt number and the date of the next retry. Invoices over an amount you choose also send an SMS to the owner. For subscription businesses where one lapsed account is a real number.

How it works

  1. St

    Trigger

    invoice.payment_failed event delivered to the Stripe Trigger's webhook endpoint

    Stripe

  2. St

    Step 1

    Fetch the customer behind the invoice

    The customer ID on the invoice is used to pull the name, email and any metadata you keep on the record, such as account manager or plan.

  3. if

    Step 2

    Build the alert text

    Converts amount_due from minor units, reads attempt_count and next_payment_attempt (empty once Stripe has given up), and attaches the hosted invoice link and a dashboard link.

  4. S

    Step 3

    Post to the billing channel

    One message to a channel you name (for example #billing-alerts): customer, amount, attempt number, next retry date and the two links.

  5. if

    Step 4

    Compare the amount to your threshold

    Checks the invoice amount against a figure set in one workflow variable and stops here when it is below.

  6. Tw

    Step 5

    Text the owner for large invoices

    An SMS goes to one or more numbers with the customer name, the amount and the hosted invoice link when the threshold is met.

What changes once it runs

  • Inside a minute of Stripe recording the failure, the message is in Slack.
  • Every alert names the customer and the amount, so nobody opens Stripe to find out who lapsed.
  • Large invoices reach the owner's phone as well as the channel; small ones stay in Slack.
  • Both the hosted invoice link and the dashboard link are in the message, one click from a manual retry or a note to the customer.

What you get

  • The n8n workflow export with the Stripe event, the Slack post and the threshold branch wired
  • Setup guide covering the Stripe key and its permissions, the Slack app install and the threshold variable
  • A recorded walkthrough in Stripe test mode using a test card that fails on purpose
  • One field-mapping sheet listing every Stripe field used and where it lands in the message
  • 30 days of email support for setup questions

Before you start

  • Stripe: a restricted API key that can read customers and invoices and write webhook endpoints; the Stripe Trigger registers its own endpoint
  • Slack: a workspace where you can install an app with the chat:write scope, plus the target channel
  • Twilio: an SMS-capable number for the owner text; US numbers need A2P 10DLC registration
  • n8n Cloud or self-hosted n8n with a public URL for the Stripe webhook

Built for

Questions before you buy

Does it retry the payment or email the customer?
No. Stripe's own retry schedule keeps running untouched, and the customer gets whatever emails you have enabled in Stripe. This package is the alert to your team. Chasing the card and emailing the customer is a separate package in the Invoicing, payments & bookkeeping category.
Can it alert on one-off payments as well as invoices?
Yes. Add charge.failed to the events list on the trigger and the same workflow handles it; the field-mapping sheet shows which fields differ between a charge and an invoice. Subscriptions and invoiced billing fire invoice.payment_failed, which is the default.
What if the same invoice fails again on the next retry?
Stripe sends a fresh invoice.payment_failed on each attempt, so you get a fresh message each time with the attempt count one higher. If you would rather see only the first failure, one filter on attempt_count does it and the guide marks the spot.
Will it work on Make or Zapier?
Yes. Zapier's Stripe app and Make's Stripe module can both trigger on invoice.payment_failed, so the flow is the same three apps on either. The SMS threshold branch is a filter step on both.

Nearby on the shelf

Whole catalog