invoice.payment_failed → wait an hour for card retries to settle → email the customer a payment-update nudge → count failures and escalate to finance on the 3rd. Recovered revenue, zero dunning SaaS.
Stripe failed-payment recovery (dunning-lite)
How this workflow works
1. Stripe webhook
triggerStarts the workflow — from an inbound HTTP request or on a schedule.
2. Verify Stripe signature
webhook-verifyRejects requests whose HMAC signature does not match your secret.
3. Failed invoice payments
filterStops the run unless the payload matches your conditions.
4. Wait 1 hour (card retries settle)
delayPauses the run for a fixed duration.
5. Nudge the customer
emailSends an email through your own SMTP account (single or bulk).
6. Count failures
state-storePersists a value across runs — get, set, or increment a counter.
7. Every 3rd failure
filterStops the run unless the payload matches your conditions.
8. Escalate to finance
slackPosts a message to a Slack channel via an incoming webhook.
Run it without writing any code
Every step above is a visual node in the Requex workflow builder. Clone this template, fill in your own credentials where a step needs them, and it runs in the cloud — no server, no cron box, no npm install. Webhook-triggered workflows get an always-on URL; scheduled ones run on your cron expression.
Open this template in the builder