Pushlane: Freemium-to-Paid Push Notifications
Use behavior-led push to help qualified freemium users reach premium value, revisit a paywall and convert without treating every free user as a lead.
A free user is not automatically waiting for a discount. They may be evaluating the product, using the free tier exactly as intended, blocked before value, or uninterested in the premium job. A freemium-to-paid push should respond to one of those states rather than treating the entire free audience as unfinished revenue.
Pushlane can enter flows from product events and receive verified subscription state from RevenueCat. The useful work is deciding when a notification helps a person complete a premium-relevant job and when silence is better.
This playbook builds that decision from behavior, not from a universal day-three blast or an invented conversion benchmark.
Separate activation from monetization
First define two events:
- Activation event: the person experiences the core free product value.
- Premium intent event: the person encounters or requests a job that the paid plan solves.
Examples of premium intent include trying to export a second report, selecting an advanced training plan, attempting offline access or viewing a comparison of premium features. paywall_viewed alone can be useful context, but it does not reveal why the person left.
An unactivated user needs product help before a payment reminder. Sending "Unlock Pro" when the person never completed setup asks them to buy a promise they could not evaluate. Use the onboarding push sequence for activation and keep the paid-conversion flow separate.
RevenueCat subscription events should remain the source of truth for purchases, trials, renewals and expiration. Product intent events can be sent by the app because the app directly observes them.
Define eligible moments, not a permanent segment
The strongest entry is an event that opens a short window where a push can continue the person's work.
Premium feature attempt
The person deliberately selected a feature behind the paywall and then left before starting a trial or purchasing.
premium_feature_attempted
-> wait until the current session is over
-> stop if verified purchase or trial starts
-> send: explain the feature outcome and return to that screen
Copy example:
Your advanced plan is ready to review
Compare what it includes before deciding whether to upgrade.
Do not claim the plan was generated if it was not. Preserve work only when the product actually saved it.
Paywall exit after demonstrated value
The user viewed the paywall after completing a premium-relevant action, then returned to the free product without purchasing.
paywall_viewed
-> branch: activation completed and no subscription event followed
-> wait for a natural revisit moment
-> send: connect one paid capability to the completed job
The branch matters. A paywall shown automatically during onboarding does not carry the same intent as one opened from a feature the person selected.
Usage threshold near a real limit
The person is approaching a documented free-plan limit and the paid plan changes that constraint.
Two exports remain this month
Review unlimited export options before your next report.
Only use exact quantities when your current state is reliable at send time. If the count can change between scheduling and delivery, use a state check or less specific copy.
Build a state-safe Pushlane flow
Start with one intent event and one message.
premium_feature_attempted
-> branch: activated, reachable iOS user, not paid
-> wait until after the active session
-> stop on revenuecat.initial_purchase, trial start or renewal
-> send: return to the attempted feature or accurate plan comparison
-> exit on purchase, opt-out or completed alternative
The delay should avoid interrupting someone who is still using the app. Use a product event such as session end or a short post-session delay supported by observed behavior. Do not invent a fixed multi-day cadence and call it a best practice.
Use an exact deep link to the feature preview or paywall placement that matches the trigger. Landing on the home screen breaks the continuity that justified the push.
Add is_production to any branch that reads a RevenueCat event. Sandbox purchases can enter Pushlane flows, so a production guard is required before customer delivery.
Match copy to the unanswered question
Freemium users usually need one of three things: clarity, proof or timing.
Clarity: What changes if I pay?
See the full weekly analysis
Premium adds category trends and a downloadable report to the summary you created.
Proof: Will this solve my job?
Preview the advanced workout plan
Review the sessions and progression before starting a trial.
Timing: Is this useful now?
Your month-end report is ready to build
Upgrade if you want the full export before you close the month.
Do not use false urgency, undefined savings or a countdown that the destination cannot verify. If the offer differs by store, country or eligibility, the landing screen must resolve those terms accurately.
Avoid generic social pressure such as "Join thousands of Pro users" unless the number is current, sourced and meaningful. The product value should carry the message.
Keep trial conversion in its own flow
Once a free user begins a trial, the freemium conversion flow has finished its job. Exit immediately and let the trial flow take over.
The trial sequence has different responsibilities: help the person experience paid value, disclose the actual expiration date and stop on conversion, cancellation or expiration. It should not continue repeating the paywall promise that started the trial. Use the Pushlane trial-to-paid sequence for that state.
Similarly, a verified paid purchase should transfer the user into post-purchase activation. Sending an upgrade reminder after purchase is one of the clearest signs that lifecycle flows are not connected.
Use audiences for eligibility, events for timing
Pushlane audiences are dynamically evaluated filters over user attributes, event properties and event history. Use them for durable eligibility such as:
- activated free users;
- users who completed a premium-adjacent action;
- users with a relevant goal or product configuration;
- reachable iOS users, when represented in the campaign's delivery filters;
- users outside a recent contact window.
Use an event entry for the moment that starts the journey. "Premium feature attempted" tells the flow when to act. "Activated free user" tells it who can benefit.
Do not create a broad recurring segment blast when the message refers to a recent action. By the time a schedule runs, the state may be stale or the user may already have solved the job.
The Pushlane audience documentation explains event predicates, property clauses and dynamic membership.
Design the non-conversion outcome
A person can decline the offer and continue as a healthy free user. Your flow should support that state without escalating pressure.
Stop after one or two genuinely different messages. Suppress further conversion pushes for a documented period after an explicit dismissal. If a user repeatedly hits the same free limit, fix the in-product explanation before adding more push.
Keep essential account and product notifications distinct from promotional conversion messaging. An opt-out from marketing should not make the product unusable, and a system-level iOS permission does not automatically grant permission for every promotional category.
Measure the funnel without claiming every purchase
Use a sequence of observed events:
- eligible premium-intent event;
- message sent or suppressed;
- notification interaction;
- destination viewed;
- trial started or paid purchase verified by RevenueCat;
- activation inside the paid experience;
- retained paid state at a defined later point.
The primary outcome depends on the flow's job. A feature-preview message may aim for a qualified paywall revisit. A direct plan comparison may aim for a trial start. Keep paid retention downstream rather than implying a single push owns it.
Purchases can happen without a notification tap, and people can tap without buying. Use a preassigned eligible holdout to estimate incremental change when traffic supports it. Keep the assignment stable and report notification opt-outs as a guardrail.
Do not compare today's highly qualified intent cohort with last month's entire free population. Define the audience and observation window before launch.
Test truth before testing persuasion
Before activation, prove:
- the entry event fires only after the intended action;
- activation is complete for every eligible user;
- a trial or purchase during the delay stops the push;
- the deep link restores the correct feature context;
- the price and terms on the destination match current store eligibility;
- a denied permission or missing device records a suppression;
- logout prevents the previous account from receiving the message;
- the sequence stops after its cap.
Then test a single meaningful hypothesis, such as feature proof versus plan comparison. Do not begin with punctuation or emoji variants when the underlying value proposition is still uncertain.
Help the right free user make a decision
Freemium conversion push works when it continues a job the person already chose. It does not need to chase every free account or invent urgency.
Instrument one premium-intent event, exclude unactivated users, stop on verified RevenueCat state and deep link back to the exact decision. That narrow flow gives you something interpretable to improve, while healthy free users can keep using the product in peace.