subscription-push-lifecycle

The Trial-to-Paid Push Sequence That Converts (Timing + Copy)

A day by day push notification sequence for 7 day trials: welcome, value moment, mid trial nudge, expiry pushes, with copy examples and Pushlane setup.

Most subscription apps pour effort into the paywall, then go quiet for the seven days that actually decide the outcome. The trial is where conversion happens or does not. Once someone closes your app on day one, push is the channel you have left to bring them back before the trial ends.

This article lays out a concrete trial to paid push notification sequence for a typical 7 day trial: what to send on each day, why the timing works, what job each push does, and short copy you can adapt. Then it walks through building the whole thing in Pushlane, with RevenueCat's trial_started event as the trigger and an automatic exit the moment the user converts.

Two disclaimers up front, because they matter. The day offsets below assume a 7 day trial: if yours is 3 days or 14, scale the gaps, not the structure. And every claim about "what works" here is a hypothesis for you to measure in your own app. You will not find a single conversion percentage in this article, on purpose.

What each push in the sequence is for

A trial sequence is not a drip campaign where you fire generic messages on a schedule and hope. Each push has one of four jobs:

  • Activation: get the user to the action that makes your app's value obvious.
  • Habit: bring them back during the quiet middle of the trial, before it goes cold.
  • Transparency: tell them clearly when the trial ends and what happens next.
  • Recovery: give non-converters a respectful path back after expiry.

If a push does not map to one of those jobs, cut it. Six pushes in seven days is already assertive, and every one has to earn its place.

There is also an obvious dependency: none of this happens without notification permission. On iOS you request it through the UserNotifications framework, and the best moment to ask is usually right after the user has seen why notifications would help them, not on first launch. No permission, no sequence, so treat the permission prompt as step zero of your trial funnel.

The day by day sequence for a 7 day trial

Day 0: welcome and activation

Send this a few hours after trial_started fires. Not instantly: the user is probably still inside the app, and a push that lands while they are mid-onboarding is noise. A few hours later, intent is still high but attention has moved on, which is exactly when a nudge is useful.

The job is activation. Every subscription app has one action that separates users who get it from users who churn: the first routine created, the first scan saved, the first project exported. This push points at that action and nothing else.

Copy examples:

"Your Pro trial is on. Set up your first routine now, it takes about two minutes, and tomorrow's reminder will already be working for you."

"Welcome to Pro. Start with the feature people upgrade for: unlimited exports. Try one on your latest photo."

One action, one benefit, no feature tour.

Day 1 to 2: the value moment push, split by behavior

This is where the sequence stops being a broadcast. Branch on whether the user completed the key action from day 0.

If they did, the job is to deepen usage. Acknowledge what they did and hand them the next step:

"Nice, your first scan is saved. Pro keeps your full history, so try scanning the rest of the shelf while you are at it."

If they did not, the job is friction removal. Do not repeat the welcome push. Name the gap, shrink the task, and give one reason to care:

"You have not set up a routine yet. It is one screen, and it is the whole point of your trial. Two minutes now sets up the rest of the week."

Why this timing: day 1 or 2 is early enough that a stalled trial can still be turned around. If someone reaches the midpoint without touching the core feature, the expiry pushes later in the sequence will land on a user who never saw the value, and no amount of copy fixes that.

Day 3 or 4: the mid trial nudge

The middle of a trial is silent by default. The novelty is gone, the expiry is not close enough to feel urgent, and this is where trials quietly die.

The job is habit: give the user a second reason to open the app, distinct from the first. Show a feature they have not touched, or reflect their own usage back at them.

"You are halfway through your trial. One thing you have not tried yet: offline packs. Download one before your commute."

"Day 4 of 7. Your streak page already shows the week so far. Keep it going through the weekend."

Resist the urge to pitch the subscription here. A mid trial push that reads like an invoice teaches users to ignore the rest of the sequence.

Day 5 or 6: the pre-expiry heads-up

The job flips to transparency. Tell the user exactly when the trial ends and what happens on both paths. This is the push that builds trust with people who are on the fence, and it is also basic decency if the trial auto-converts into a charge.

"Heads up: your trial ends Thursday. Keep Pro and nothing changes. Skip it and your projects stay safe, but exports go back to the free limit."

"Two days left on your trial. Want to decide now instead of on the deadline? The upgrade and the cancel switch are both in Settings."

Being explicit about the cancel path feels counterintuitive and is worth testing anyway. Users who feel trapped refund; users who feel informed decide. The pre-expiry and expiry pushes are a deep topic on their own, and we cover them in more detail in trial expiry push notifications.

Day 7: expiry day

The decision push. By now the user knows what your app does and knows the trial is ending, so the copy should be short, direct, and free of tricks.

"Your trial ends today. Keep unlimited exports and your edit history with Pro, or stay on the free plan. Your call."

"Last day of your trial. If Pro earned its keep this week, this is the moment."

Send it in the morning of expiry day relative to the user's trial start time, not at 11pm when the decision window is effectively closed.

Day 8 to 10: the post-expiry follow-up

This step only fires for users who reached the end without converting. Its job is recovery plus learning, and it is deliberately soft:

"Your trial ended, but your data did not go anywhere. If one thing was missing for you, tell us on the feedback screen. We read every note."

"Pro is here when you need it. Your projects, history, and settings are all saved."

One push, at most two, then stop. A lapsed trial user who keeps getting pitched will opt out of notifications entirely, and that costs you the re-engagement channel forever.

Building the sequence in Pushlane

Here is how the sequence maps onto Pushlane, step by step.

The trigger. Pushlane's RevenueCat integration receives subscription lifecycle events through RevenueCat webhooks: trial started, trial converted, billing issue, cancellation, expiration. Events are matched to devices through the shared app user id, so there is no client side purchase tracking code to write. Set the flow's trigger to the trial_started event and every new trial enters the sequence automatically. The full setup walkthrough lives in our RevenueCat integration guide.

The steps. In the visual flow builder, the sequence is an alternation of push steps and delay steps: the day 0 push, a one day delay, the day 1 to 2 push, a two day delay, and so on. The delays are what encode the timing logic above, so when you adapt the sequence to a 3 day or 14 day trial, the delays are the only thing you change.

The behavior branch. The day 1 to 2 split depends on an event from your own app, like routine_created or first_export. Track it as a regular Pushlane event and branch the flow on whether it fired. If you have not instrumented that event yet, do it before launching the sequence: the branch is the highest leverage part of the whole flow.

The exit. This is the part that keeps the sequence honest. Add an exit condition on trial_converted: the moment RevenueCat reports the conversion, the user leaves the flow and never sees the mid trial pitch, the expiry countdown, or the win-back push. Nothing erodes trust faster than a "your trial ends tomorrow" push sent to someone who paid three days ago. Handle billing_issue and cancellation in their own dedicated flows rather than overloading this one; we sketch that larger architecture in subscription push notification flows.

The copy tests. Every step in the sequence can carry an A/B test inside the flow, so you can run two variants of the expiry push against each other on live traffic. Test one variable at a time (urgency framing versus benefit framing is a good first experiment) and let your own numbers decide. There is a full methodology in push notification A/B testing for subscription apps.

The shortcut. You do not have to build this from a blank canvas: start from a flow template and edit the steps, and use AI generated push copy to draft variants you then rewrite in your app's voice.

One honesty note on delivery. Pushlane's iOS delivery through APNs is proven end to end (see the APNs setup guide). On Android, the drop-in client registers FCM tokens, but we do not claim proven end to end Android delivery today. If your trial audience is Android-first, verify delivery on your own devices before you lean on this sequence.

Caveats worth taking seriously

Trial length changes the shape. On a 3 day trial, compress to three or four touches: welcome, one value push, and a combined pre-expiry plus expiry pair. On a 14 day trial, do not send twelve pushes; keep roughly the same five or six touchpoints and widen the gaps. The structure (activate, deepen, warn, decide, recover) survives; the offsets do not.

Measure in your own app. Define what conversion means, decide the window you attribute it to, and compare against a control before believing the sequence works. Any benchmark you read elsewhere was measured on someone else's app, audience, and paywall.

Respect consent. Pushlane is consent-aware and honors opt-outs automatically. Treat that as a feature, not an obstacle: the users you cannot push are telling you something about frequency and relevance.

Watch for flow overlap. If the same user is also inside an onboarding flow or a win-back flow, audit the combined send frequency. Six well-reasoned pushes become spam when three other flows are firing in parallel.

Ship the first version this week

The whole sequence is one trigger, six pushes, a branch, and an exit condition. In Pushlane that is an afternoon of work, most of it spent writing copy, and the free tier is enough to launch it and start measuring. Start free at https://pushlane.io.

The Trial-to-Paid Push Sequence That Converts (Timing + Copy) | Pushlane