Skip to main content

Recovery

Windback generates 9 AI-powered recovery email variants for each churn event, each using a different psychological strategy. You can review, edit, and send variants through the API.

9 Recovery Strategies

Each churn event generates one variant per strategy:
StrategyDescriptionBest For
value_recapRemind customer of key value they receivedLong-tenure customers, competitor switchers
unused_featureHighlight features the customer never triedLow-engagement customers
downgrade_offerOffer a cheaper plan instead of cancelingPrice-sensitive customers
pause_optionSuggest pausing the subscription temporarilyTemporary budget constraints
founder_emailPersonal email from the founder/CEOHigh-MRR customers, bad experience
pain_point_fixAddress the specific issue that caused churnMissing feature, bug reports
social_proofShare success stories from similar customersUncertain customers
feedback_requestAsk for feedback with an incentive to returnNo clear reason, generic cancellations
discountOffer a time-limited discount to stayPrice-sensitive, short-tenure customers
The AI selects and ranks strategies based on the cancel reason, customer tenure, MRR, and behavioral data. All 9 variants are generated, but the recommended variant is highlighted in the dashboard.

Generate Recovery Variants

Generate 9 AI recovery email variants for a churn event.
POST /projects/:slug/churn-events/:id/generate

Example Request

curl -X POST https://api.windbackai.com/api/v1/projects/my-project/churn-events/evt_abc123/generate \
  -H "X-API-Key: sk_live_abc123..."

Example Response

{
  "data": {
    "event_id": "evt_abc123",
    "status": "variants_generated",
    "variants": [
      {
        "id": "var_001",
        "strategy": "value_recap",
        "subject": "Jane, here's what you accomplished with us",
        "body": "Hi Jane,\n\nOver the past 6 months, your team has...",
        "status": "draft",
        "recommended": true
      },
      {
        "id": "var_002",
        "strategy": "unused_feature",
        "subject": "Jane, you haven't tried our best feature yet",
        "body": "Hi Jane,\n\nDid you know that Team Pro includes...",
        "status": "draft",
        "recommended": false
      },
      {
        "id": "var_003",
        "strategy": "downgrade_offer",
        "subject": "What if we could cut your bill in half?",
        "body": "Hi Jane,\n\nI understand budget is a concern...",
        "status": "draft",
        "recommended": false
      }
    ]
  }
}
Generation typically takes 5-15 seconds. The event status changes to processing immediately and variants_generated when complete. You can poll the event endpoint or use the dashboard for real-time updates.

Send a Variant

Send a specific recovery email variant to the customer.
POST /projects/:slug/churn-events/:id/variants/:vid/send

Example Request

curl -X POST https://api.windbackai.com/api/v1/projects/my-project/churn-events/evt_abc123/variants/var_001/send \
  -H "X-API-Key: sk_live_abc123..."

Example Response

{
  "data": {
    "variant_id": "var_001",
    "status": "sent",
    "sent_at": "2025-12-01T10:30:00Z",
    "recipient": "jane@example.com"
  }
}
Each variant can only be sent once. Attempting to resend a variant returns a 409 Conflict error.

Update a Variant

Edit a variant’s subject or body before sending.
PATCH /projects/:slug/churn-events/:id/variants/:vid

Request Body

subject
string
Updated email subject line.
body
string
Updated email body (plain text or HTML).

Example Request

curl -X PATCH https://api.windbackai.com/api/v1/projects/my-project/churn-events/evt_abc123/variants/var_001 \
  -H "X-API-Key: sk_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Jane, we have a special offer for you",
    "body": "Hi Jane,\n\nAs a valued customer for 6 months..."
  }'

Example Response

{
  "data": {
    "id": "var_001",
    "strategy": "value_recap",
    "subject": "Jane, we have a special offer for you",
    "body": "Hi Jane,\n\nAs a valued customer for 6 months...",
    "status": "draft",
    "updated_at": "2025-12-01T10:15:00Z"
  }
}
Edit the AI-generated variants to add personal touches or company-specific offers. The AI provides a strong starting point; your domain knowledge makes it great.

Variant Statuses

StatusDescription
draftGenerated but not yet sent
sentEmail sent to customer
openedCustomer opened the email (tracked via pixel)
clickedCustomer clicked a link in the email
bouncedEmail bounced (invalid address)