Rheo
Checklist of seven lifecycle automations for subscription mobile apps
Product

7 lifecycle automations every subscription app should run

Seven essential subscription lifecycle automations: trial nudge, onboarding incomplete, cancel save, win-back, NPS branch, payment failed, feature adoption: with triggers and channels for each.

Most subscription apps eventually send some lifecycle email. Fewer run a coherent set of automations keyed to product events: with clear entry, exit, and channel per journey. The gap shows up in trial conversion, involuntary churn, and silent lapses that neither email nor push reaches because nobody defined the trigger.

These seven automations are the baseline we see across successful mobile and web subscription teams. For each: trigger, primary channel, backup channel, and exit condition. Implement in Rheo Engage (plus Convert where the fix is in-app), or map the same logic to your lifecycle stack: the patterns matter more than the logo.

1. Trial mid-point nudge

Job: Users who started a trial but have not hit the core value action by mid-trial need a focused push toward the aha moment: not a generic "hope you're enjoying" message.

FieldDetail
Triggertrial_started + 50% of trial elapsed + no aha_event (define per product)
PrimaryPush: one sentence + deep link to feature
BackupEmail with screenshot and steps
In-appConvert tip overlay on next open
Exitaha_event fired or trial_converted / subscription_started
SuppressUser already completed onboarding checklist

Pair with step-level analytics so you know which feature to highlight (step-level funnel analytics).

2. Onboarding incomplete

Job: Finish setup before paywall fatigue sets in.

FieldDetail
Triggeronboarding_started + stall on step N for 24-48h (no onboarding_completed)
PrimaryIn-app Convert: resume journey at last step
BackupEmail "Pick up where you left off"
PushOptional if marketing consent and step < 50% complete
Exitonboarding_completed or user enters paywall trial
SuppressUsers who explicitly skipped optional steps

Remote onboarding lets you shorten the path for this segment without a release (remote onboarding flows).

3. Cancel save follow-up

Job: After voluntary cancel, one respectful save attempt: not twelve emails.

FieldDetail
Triggercancel_survey_submitted or RC CANCELLATION with voluntary flag
PrimaryIn-app Convert cancel-save flow with reason branch
BackupEmail within 24h referencing stated reason
WebhookSlack for high-MRR accounts
Exitsubscription_reactivated or 14 days
SuppressInvoluntary billing cancel (route to payment automation)

See in-app cancellation flows and eight cancellation flow examples.

4. Win-back after expire

Job: Recover lapsed subscribers with coordinated channels.

FieldDetail
Triggersubscription_status = expired + voluntary churn
PrimaryEmail day 2-3 value recap
BackupPush on app open; in-app win-back flow
WebhookCRM / ads suppression on resubscribe
ExitResubscribe or 60-day sunset
SuppressActive win-back from automation #3 overlap: dedupe

Full orchestration: event-triggered win-back.

5. NPS detractor branch

Job: Turn low scores into support loops and product signal: not ignored survey data.

FieldDetail
TriggerIn-app NPS flow submits score ≤ 6 (in-app NPS flows)
PrimaryWebhook to Zendesk/Intercom with score + comment
BackupEmail from founder template for small teams
In-appConvert follow-up "What would make this a 9?" for passives optional
ExitTicket created or user submits follow-up
SuppressPromoter upsell automations for same session

Promoters (9-10) can enter a separate review-request automation: do not mix branches.

6. Payment failed

Job: Recover involuntary churn before expire.

FieldDetail
TriggerRevenueCat BILLING_ISSUE / subscription_status = billing_retry
PrimaryEmail with update payment link (store or web)
BackupPush day 1 and 3 if consent
In-appBlocking banner on open with restore CTA
WebhookFinance queue if B2B
Exitsubscription_reactivated or expired → hand off to win-back #4

Tone is utility, not marketing: consent rules may differ; confirm with counsel.

7. Feature adoption (paid idle)

Job: Paid subscribers who pay but do not use core features churn at renewal.

FieldDetail
Triggersubscription_active + no core_feature_used in 14 days
PrimaryIn-app Convert education flow
BackupEmail with use case story
PushSingle highlight notification
ExitFeature used or 30-day cap on messages
SuppressSeasonal products with expected idle periods

Connects retention to product analytics: the same events you use for funnels should drive Engage segments (lifecycle from in-app events).

Summary table

#AutomationTrigger gistPrimary channel
1Trial mid-point nudgeMid-trial, no ahaPush
2Onboarding incompleteStall on stepIn-app
3Cancel save follow-upVoluntary cancelIn-app
4Win-backExpired subEmail
5NPS detractorScore ≤ 6Webhook
6Payment failedBilling issueEmail
7Feature adoptionPaid, idleIn-app

Lifecycle experiment

Implementation order

If you cannot ship all seven in one sprint:

  1. Payment failed: fastest involuntary churn ROI
  2. Onboarding incomplete: lifts trial starts
  3. Trial mid-point nudge: lifts conversion
  4. Cancel save: reduces voluntary churn
  5. Win-back: recovers lapses
  6. NPS detractor: quality loop
  7. Feature adoption: renewal defense

Each automation needs marketing consent where promotional, identity merge for anonymous onboarding, and exit events synced from RevenueCat.

Shared properties every automation should set

Consistent properties make segments composable and prevent contradictory journeys.

PropertySet byUsed for
subscription_statusRevenueCat webhookSuppress trial nudges when paid
marketing_consentSignup / CMPGate email and promo push
onboarding_flow_versionConvert publishBranch copy in Engage
trial_dayScheduled compute or RCMid-trial timing
last_engagement_atSDK heartbeatCooldown rules

When two automations could fire the same day (trial nudge + feature adoption), define priority: payment failed and onboarding incomplete beat promotional education.

QA script before launch

  1. Create test user; walk funnel with dev build.
  2. Force webhook fixtures for RC billing states in staging.
  3. Confirm unsubscribe link works on every email template.
  4. Verify push deep link opens correct Convert flow variant.
  5. Trigger webhook to staging endpoint; assert idempotent handling.

Repeat after every SDK bump that touches event names.

Stack reminder

Rheo Analytics defines whether triggers fire; Convert delivers in-app fixes; Engage sends email, push, and webhooks. RevenueCat remains billing truth; Superwall or native paywalls still present offers: Engage moves users to the right surface.

Start for free and enable the first two automations from your existing SDK events.