> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atllasx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating a Workflow

> Set up an always-on recovery workflow — the trigger, the offer, and the AI-written call script.

The **Workflows** page shows one recovery workflow per connected provider (Stripe, RevenueCat), each with its win-back offer, its triggers, its live status, and its results at a glance.

## The New workflow wizard

The **New workflow** button walks you through four steps:

1. **Trigger** — which event starts the workflow (a subscriber cancelling, or a trial ending without converting)
2. **Provider** — connecting or picking the billing provider; see [Connecting Stripe](/docs/revenue-recovery/setup/connecting-stripe) or [Connecting RevenueCat](/docs/revenue-recovery/setup/connecting-revenuecat)
3. **Offer** — the discount the AI may extend to save the subscription, plus the delivery & billing options; see [Win-back Offers](/docs/revenue-recovery/workflows/win-back-offers)
4. **Finalize & Launch** — the workflow goes live

The AI-written call script isn't part of the wizard — review and edit it (and preview the call to your own phone) in the full campaign editor after the workflow is created.

When you connect Stripe directly from the Integrations page, Atllas creates a **cancellation** workflow for you using your existing call settings (script tone, voice, and so on) — the wizard is then just where you review and adjust it.

## Editing a workflow

Each trigger row's edit (pencil) icon reopens the same wizard in place to change that trigger's offer, script, and delivery settings. RevenueCat's offer-code setup (App Store Connect key, code batches, inventory) lives here too, behind **Manage codes**.

## Triggers

Each moment in the customer relationship gets its own workflow trigger, with its own campaign, offer, and script — the conversation that wins someone back is different at each stage:

* **Subscriber cancels** — a customer with an active, paid subscription cancels (or schedules a cancellation)
* **Trial ends without converting** — a customer's subscription is still in its trial period when it cancels or lapses
* **Member loses access** — fires on the day the member's access actually ends, for a second recovery attempt before the relationship fully lapses. Each provider's workflow card has its own on/off row for this trigger

Each trigger row also has its own delete action, so you can remove one trigger's workflow without disconnecting the provider. The edit menu on a live trigger splits into **Offer & delivery** (reopens the in-place wizard) and **Script & voice** (opens the full campaign editor).

Each trigger has its own campaign, so its offer and script are edited separately.

<Note>
  Mapping each trigger to its own campaign is configured by the Atllas team for
  you as part of white-glove onboarding — there's no self-serve setting for this
  yet. If you only need one campaign for both, the default setup already covers
  that; just mention it if you'd like them split.
</Note>

If a cancellation event doesn't have a campaign configured for its trigger (for example, only paid cancellations were set up and a trial lapses), Atllas never dials that customer — the enrollment is marked **Parked** and shows up on your Revenue Recovery [Activity log](/docs/revenue-recovery/analytics/activity-log) instead, exactly like any other enrollment that needs a look.
