Rheo CLI is live. Let your agents be your growth engine.

Learn more
Rheo experiments dashboard showing win-back flow variants and conversion lift
Product

In-app win-back flows after subscription churn

Reactivate lapsed subscribers with in-app win-back journeys, complementary to email, using churn reason and Apple win-back offers where available.

Email win-back sequences are table stakes. Every subscription app sends "We miss you" three days after churn. Inboxes are crowded. Push opt-out rates climb. The users who already canceled are often the least likely to open marketing email.

In-app win-back flows meet lapsed subscribers where they still show up: inside your app. A returning user opens the product, and instead of a dead paywall or empty state, they see a journey built from their cancel reason, tenure, and platform eligibility. This post covers churn types, trigger timing, how in-app compares to email, and how to pair Apple win-back offers with native flows you can ship without an app update.

Two churn types, two responses

Not all churn is voluntary. Your win-back logic should branch on why the subscription ended.

Voluntary churn: user canceled through settings or your in-app cancel flow. They made a decision. Win-back needs a credible new reason to return: price, feature, or timing.

Involuntary churn: payment failed, card expired, billing retry exhausted. The user may not know they lost access. Win-back here is often a payment update flow, not a discount story.

Churn typeTypical signalWin-back emphasis
VoluntaryCancel in App Store, survey reasonValue recap, offer, feature news
InvoluntaryBilling retry failed, grace period endedUpdate payment method
Expired trialTrial ended without convertDifferent onboarding replay
Lapsed annualRenewal declinedAnnual vs monthly repositioning

App Store Server Notifications (and RevenueCat's event stream) give you the hooks: DID_CHANGE_RENEWAL_STATUS, EXPIRED, BILLING_RETRY, and related events. Route voluntary expirations to growth-owned flows; route billing failures to a shorter payment recovery path.

In-app vs email: complementary, not either/or

ChannelStrengthWeakness
EmailReach users who uninstalledLow open rates post-churn
PushTimely, short copyEasy to disable
In-appHigh intent, rich UI, native purchaseOnly if they open the app
Paid retargetingBroad reachExpensive, privacy limits

The winning pattern combines all three with shared segmentation. Cancel reason "too expensive" might get: in-app annual offer on next open, email day 3, push day 7 if still lapsed. Same audience definition, different surfaces.

In-app wins on creative velocity. You can test full-screen story flows, social proof screens, and personalized headlines without shipping a binary. Email creative still helps, but it cannot show your actual product UI or one-tap restore purchase as smoothly as a native screen inside the app.

Personalization by cancel reason

Generic "Come back for 50% off" trains users to churn and return on a schedule. Reason-aware win-back respects why they left.

Too expensive: lead with annual plan math, pause offer, or a time-limited win-back price tied to Apple promotional offers where eligible.

Not using enough: replay onboarding highlights, show what's new since they left, offer a guided session not a discount.

Missing feature: if you shipped what they asked for, say so explicitly. "You wanted offline mode. It's here." Feature win-backs outperform blind discounts when the gap was real.

Temporary need: seasonal apps (tax, fitness January) win on timing. A 90-day win-back for users who canceled in April beats a generic July blast.

Store cancel reason from your in-app cancellation flow (see our guide on cancellation surveys) as a user trait. When the same user returns, the win-back channel resolves a flow variant from that trait.

Apple win-back offers: what they are and how to use them

Apple introduced win-back offers so developers can present discounted resubscriptions to lapsed subscribers through App Store surfaces. Eligibility, setup in App Store Connect, and presentation rules evolve; always check current Apple documentation before launch.

At a high level:

  • Offers target subscribers who previously had an active subscription
  • Promotional pricing is configured in App Store Connect
  • Users may see offers in App Store subscription management or in-app when you surface them correctly
  • Your billing provider (RevenueCat, etc.) must support the offer identifiers you attach at purchase time

In-app presentation is where Rheo fits. Your win-back flow is a native multi-step journey: welcome back screen → value recap → offer presentation → purchase through RevenueCat. The flow canvas lets growth teams change copy, order, and branches while engineering keeps purchase wiring stable.

Do not treat Apple win-back offers as a substitute for product value. They are a lever for users who already know your app and need a nudge on price or timing.

Timing: 7, 30, and 90 days

One blast on day 3 is not a strategy. Test cadence by category and churn type.

WindowUser mindsetFlow pattern
Day 0-7Fresh decision, high emotionShort, respectful, one clear CTA
Day 8-30Habit broken, may have alternativesWhat's new, social proof
Day 31-90Cold but retargetableStronger offer, seasonal hook
90+Long lapseRe-onboard as quasi-new user

Throttle frequency. Showing the same win-back modal every launch annoys free users and hurts brand. Use traits: lapsed_days, win_back_shown_count, last_win_back_result.

Holdout a percentage of lapsed users to measure true lift. Without a holdout, you cannot separate "they would have returned anyway" from "the flow worked."

Rheo experiments dashboard showing A/B test variants and step-level funnel analytics

Rheo win-back channel pattern

Architecturally, win-back is a channel: an entry point in your app that resolves to a published flow.

  1. Integrate once: SDK identifies user, subscription status, and traits (cancel reason, plan, lapse date)
  2. Define channel: e.g. win_back_lapsed triggered when subscription_status = expired and days_since_expire < 30
  3. Design flow on canvas: branches for reason, platform, offer eligibility
  4. Publish OTA: no App Store review for screen changes
  5. Experiment: variant A value-first, variant B offer-first; read trial restarts and paid conversions per step

Purchase steps still go through RevenueCat or your billing SDK. Rheo renders the journey and attributes which screens drove restore vs bounce.

Native UI keeps restore purchase and offer redemption inside familiar platform patterns. WebView win-back pages that redirect out of the app lose users at the handoff.

Metrics and guardrails

MetricNotes
Win-back show rateLapsed users who saw flow / eligible lapsed
Step completionPer-screen funnel like onboarding
Restore / resubscribe ratePrimary success metric
Revenue per lapsed userInclude offer cost
Uninstall after win-backNegative signal if offer feels spammy

Set a maximum impressions per user per month. If three shows produced no conversion, move them to email-only or a longer cooldown.

Example win-back flow (anonymized pattern)

A fitness app with monthly and annual plans saw 22% of voluntary churn cite "not using enough." Their win-back flow on return:

  1. Welcome back (no guilt copy): "Good to see you again."
  2. What's new: three bullets on features shipped since lapse
  3. Branch: if cancel_reason = not_using → offer 7-day free restart, not 50% off
  4. Purchase: annual plan with Apple win-back offer where eligible
  5. Decline: single screen "We'll check in next month" with no modal on every launch

Variant B led with discount first. Variant A (value-first) won on resubscribe rate and 60-day retention despite lower day-0 convert. Flow-level analytics showed discount-first won the paywall step but lost on D30.

That insight only appears when you measure past the first tap.

Email still matters

This post argues for in-app, not against email. Best practice is coordinated sequencing:

DayIn-appEmail
0Flow on next openReceipt-style "subscription ended"
3Skip (email only)Value recap with deep link
7Second flow variant if ignoredSocial proof
30Stronger offer or re-onboardLast chance with unsubscribe respect

Deep links from email should open the app into the same Rheo win-back channel so creative is consistent. If email promises an offer the in-app flow does not show, trust breaks.

Push notifications: short copy with deep link into win-back channel works when users still allow push. Respect frequency caps. A push without in-app offer parity feels bait-and-switch.

Platform notes (iOS and Android)

Store policies differ on promotional offers and subscription management deep links. Test on both platforms before global rollout. Android Play billing offers have their own eligibility rules separate from Apple win-back.

Document which offers are iOS-only in flow targeting so Android users do not see broken purchase buttons.

Putting it together

Churn is inevitable. Win-back is optional work that compounds when you treat it as a product surface, not a Mailchimp template.

  • Segment voluntary vs billing churn
  • Capture cancel reasons in-app before users leave
  • Trigger win-back flows on return, timed email, and eligible platform offers
  • Personalize by reason and tenure
  • Test creative and timing over the air
  • Measure with holdouts and step-level analytics

Email will always be part of the stack. In-app win-back is the piece most teams underinvest in because it used to require an release for every copy change. Remote native flows remove that bottleneck.

Start for free. Design win-back journeys on the canvas and reach lapsed subscribers the next time they open your app.