Win Back Lost Subscribers

Win back churned and cancelled subscribers with an automated push + promo-offer screen. Strategy, setup, and ready-to-use campaign recipes.

Win Back Lost Subscribers is a Rules template that automatically re-engages users the moment they cancel — sending a push notification and presenting an in-app screen with a personalized promotional offer (discount) to keep them subscribed.

It targets the cheapest revenue you can grow: people who already know your product. Reactivating a churned subscriber costs nothing in acquisition — you're recovering revenue you already earned once.

Find it under Templates on the Rules page → Win back lost subscribers.

Apphud - Win back lost subscribers Rule template

Why win-back works

  • A cancellation isn't a goodbye — yet. When a user turns off auto-renew, their subscription stays active until the end of the period. That gap is your window to intervene while they still have access to lose.
  • Loss aversion is on your side. Reminding someone what they're about to lose, paired with a discount, converts better than a cold "we miss you" weeks later.
  • It's near-zero cost. No ad spend, no new install.
📘

Promotional offers are the right tool here

A win-back discount is delivered as an Apple promotional offer (iOS 12.2+), which is eligible only for users with a current or past active subscription — exactly your cancellers and lapsed users. Set up your offers in App Store Connect first, then attach the offer screen to the rule. See Promo Offers.

Pick the right trigger

A cancellation reaches Apphud as a specific event, and which one tells you whether the user was on a trial or paying — so you can tailor the offer.

EventWho it isUse it for
trial_canceledCancelled during a free trial (never paid)Trial rescue — usually price anxiety or "haven't seen the value yet"
subscription_canceledA paying subscriber turned off auto-renewPaid win-back — more deliberate; respond with a discount or a better-value plan

Triggering on these two events is the recommended setup — they split trial vs. paying cancellers for you, and they're where cancellation volume actually flows.

🚧

autorenew_disabled is the legacy trigger

The template historically defaults to autorenew_disabled, which fires for both trial and paid cancellations. It's deprecated (and now fires for only a small fraction of cancellations) — prefer trial_canceled / subscription_canceled. If you do use autorenew_disabled, split the groups with an audience (see below).

Splitting trial vs. paying cancellers

The cleanest split is the trigger event itselftrial_canceled (never paid) vs. subscription_canceled (paying). Use those two and you don't need anything else.

If you trigger on the broad autorenew_disabled instead, separate the groups with a custom audience (built on the Users & Audiences page) and run the rule on it. Audiences can be defined by criteria such as:

  • Is Customer = Yes → the user has at least one payment (paying canceller); No → trial-only.
  • Subscription status — e.g. trial vs. a paid status.
  • Autorenewal = Disabled — they just turned it off.
📘

These are audience criteria, not rule filters

An event-triggered rule's own + Add filter only offers Permission Group and Product ID. The trial/paid criteria above live in the audience definition — you build the audience, then target the rule at it. (Scheduled rules have no inline filters either; they simply sweep their audience.)

How the template works

PieceDefault
TriggerA cancel event (use trial_canceled / subscription_canceled).
TimingImmediate — push at cancellation, in-app offer screen on next app launch.
PushA default English push you can edit per locale.
In-app actionA Paywall model screen carrying the promotional offer.
LimitOnce per user.

For the shared mechanics — Configuration / Push / In-app action tabs, lifecycle, Test — see Rules.

Set it up

  1. Open the Templates tab on the Rules page and click Add rule on Win back lost subscribers.
  2. Configuration — set the trigger to trial_canceled and/or subscription_canceled (add an audience to narrow it), and set timing/limit.
  3. Push notification — write the Title and Text for your default locale (and translate to others).
  4. In-app action — choose Paywall model and select the paywall that carries your promotional offer.
  5. Save, then Enable.
❗️

Match the offer to the product the user cancelled

If you have several permission groups, add the Permission group filter so each cancelled user sees a promo offer from the same group they cancelled — not an irrelevant one. (This was called "Product group" previously.)

📘

Make sure users are eligible

Promotional offers only apply to subscriptions the user has previously purchased. Confirm the offer shown targets a product the user is actually eligible for, or the purchase will fail.

Strategy: trial vs. paid cancellers

The single biggest lever is treating these two groups differently — they cancel for different reasons and respond to different offers.

  • Trial cancellers usually bail out of price anxiety or because they haven't seen the value yet — and most cancel quickly to avoid the charge. Lead with a trial extension or a deep first offer, and point them at the premium feature that drives conversion.
  • Paid cancellers are more deliberate. Offer a time-limited personalized discount, or upsell a longer (annual) plan at a better effective price.

Campaign recipes

A — Trial-cancel rescue (most urgent)

  • Trigger: trial_canceled
  • Timing: immediate (catch them before the trial actually ends)
  • Offer: trial extension or a deep promo (extended free period / steep first-term discount)
  • Message angle: "Still deciding? Here's a few more days free to finish what you started." Low-risk, value-first.

B — Paid-cancel "don't lose access" (loss aversion)

  • Trigger: subscription_canceled
  • Timing: immediate push, screen on next launch — while access is still active
  • Offer: a modest first promo (e.g. a reduced next term)
  • Message angle: "You'll lose [the feature they actually used] on [date]. Keep it for less." Name the specific benefit.

C — Re-engage lapsed users (scheduled)

For users who already expired without renewing, run a separate Scheduled rule over a custom audience of lapsed users (Subscription status = Expired, or the predefined Subscription expired audience).

  • Offer: a stronger discount — they've lost access, so the incentive needs to be bigger.
  • Message angle: "Come back — here's our best offer."
📘

What this can and can't do

Users who re-subscribe automatically drop out of the lapsed audience (their status is no longer Expired), so you're only re-engaging people who didn't come back. Apphud does not track which users already received an earlier win-back push, so you can't exclude "already-messaged" users beyond setting Just once per user and relying on subscription status. Keep the cadence sane and don't stack overlapping win-back rules on the same users.

📘

Going beyond 6 hours

A single rule's delay maxes out at 6 hours. For multi-day sequences, use a Scheduled rule plus a custom audience of users in the right subscription state. See Use Cases.

Best practices

  • Don't bombard. Once-per-user is the safe default; for sequences, add delays and keep frequency low.
  • Don't discount to everyone equally. Reserve the deepest offers for high-intent segments; a blanket discount erodes margin and trains users to cancel-for-a-deal.
  • Fix the cause, not just the symptom. A flood of instant trial cancellations usually points to weak onboarding — an offer won't fix a broken first run.
  • Segment by state: cancelled-but-active, expired, cancelled trial, expired trial each deserve different messaging.

FAQ

Which event should I trigger on?

Use trial_canceled for trial cancellers and subscription_canceled for paying cancellers — they split the two groups and capture the bulk of cancellation volume. autorenew_disabled is the deprecated legacy signal; avoid relying on it alone.

How do I tell trial cancellers from paying ones?

Trigger on the specific event — trial_canceled (never paid) vs. subscription_canceled (paying). If you must trigger on the broad autorenew_disabled, target the rule at a custom audience built with Is Customer = Yes (has paid before) or by Subscription status. An event-triggered rule's inline + Add filter only offers Permission Group and Product ID, so the trial/paid criteria belong to the audience, not the rule.

What's the difference between this and Apple's Win-Back Offers?

Apple's Win-Back Offers (iOS 18+) are configured in App Store Connect and auto-promoted by the App Store to lapsed users. This template uses Apphud Rules + a promotional offer via push + in-app screen — you control the trigger, timing, audience, and message. They're complementary; you can run both.

Why isn't the promo offer showing for some users?

Promotional offers require iOS 12.2+ and apply only to products the user has previously subscribed to. A user with no prior purchase of that product, or on an older iOS, won't see it. See Promo Offers.

Can I win back users who already fully expired?

Yes — see Recipe C: a Scheduled rule over a lapsed-user audience (Subscription status = Expired). Expired users have lost access, so a stronger offer usually performs better.

How do I measure if it's working?

Use the Rule filter/segment on revenue charts in Reports, plus the rule's own Analytics tab (performed / push sent / opened).

Learn more



Did this page help you?