Dunning
The automated nag sequence after a payment fails: retries, emails, and in-app banners chasing a working card before you cut access.
See it
What it is
Dunning is the scheduled campaign that runs after a recurring charge fails: retry the card, email the customer, show an in-app banner, escalate the tone, and eventually suspend or cancel. The word is old debt-collection vocabulary, but in SaaS it mostly means 'a polite robot asking someone to fix their expired Visa'.
A workable sequence looks like: day 0 a quiet notice with a one-click link into the billing portal, day 3 and day 5 retries with follow-up emails, day 7 an in-app banner, day 10 a final warning naming the cancellation date, day 14 downgrade or suspend. Copy matters more than people expect: lead with 'your card was declined' rather than 'action required', link straight to a prefilled card-update page, and never make them log in through a password reset to pay you.
Two traps. First, dunning mail is transactional but looks promotional to filters, so it quietly lands in the Promotions tab and your recovery rate craters for reasons that have nothing to do with billing. Second, the email schedule and the retry schedule must share state, or you will send 'your payment failed' fifteen minutes after the retry succeeded, which is how you turn a recovered customer into a cancelled one.
Ask AI for it
Build a dunning flow for our subscription product. On a failed recurring charge, create a dunning campaign record and run this schedule: day 0 email, day 3 retry plus email, day 5 retry plus email, day 7 in-app banner, day 10 final-warning email naming the exact cancellation date, day 14 suspend access. Every email should say the card was declined in the subject, show the last 4 digits and the amount, and link to a signed one-click URL that opens the billing portal card-update form with no login required. Cancel the whole campaign the moment any payment succeeds or the card is updated, and skip straight to the 'update your card' branch on a hard decline instead of retrying. Log every send and attempt so support can see the full timeline on the customer record.