Step types
Every sequence is an ordered list of typed steps. The dunning engine runs them in position order when a customer enters the flow.
| Type | Role |
|---|---|
| trigger | Entry point when the monitored event fires |
| wait | Delay before the next step (minutes) |
| Send a recovery email (template on the step) | |
| sms | Send a recovery SMS |
| incentive | Attach an active incentive to the attempt |
| payment_retry | Ask the provider to retry the card on file |
| action | Internal notification or external HTTP request (with optional gates) |
| extract | Parse named variables from a prior response (JSON, CSS, XPath, between) |
| script | Vanilla JS computation (params → outputs; no network) |
| end | Terminal step — sequence completes |
Templates
Email and SMS content live in per-step templates. Merge variables such as {{customer_name}} and {{amount}} are rendered at send time from the recovery attempt context.