Expansion & upsell
Nudge upgrades at exactly the right moment. Surface the right offer when a user hits a limit or shows intent — with targeted modals and banners that meet them in the flow.
How teams use Wakeline for this.
Catch the moment
Trigger an offer when a user hits a plan limit or uses a premium feature.
Target by usage
Show upgrade nudges only to users whose traits say they're ready.
Make the offer clear
A focused modal or banner with one obvious call to action.
Live in three steps.
Define the trigger
A limit, an event, or a trait.
Craft the offer
A modal or banner with a clear CTA.
Measure conversion
Track clicks and completion.
An upgrade nudge at the moment of hitting the wall.
The best upsell moment is the user colliding with the value boundary — not a random Tuesday. Here is the limit-triggered play, built politely.
Instrument the boundary
Your identify() call sends projects_count and plan; your app fires a limit_reached event when a free user tries to create a fourth project. The traits define who; the event defines when.
Make the moment helpful
A modal on limit_reached: "You've filled the free plan." It names what Pro unlocks (unlimited projects, 25k MAU), shows the price plainly, and offers two honest buttons — "Upgrade" and "Not now".
Add the ambient path
For users at 80% of a limit, a once-shown banner: "You're near your project limit." No modal, no urgency theater — an early, dismissible heads-up that makes the later wall unsurprising.
Measure to revenue
Click actions count upgrade clicks; your billing data counts conversions. Segment the results by plan and usage to learn which boundary actually converts — it is rarely the one sales guessed.
What to expect: Upgrade prompts that read as service, not pressure — users hit a real boundary and the product explains the door. Conversion concentrated at genuine moments of intent, with zero cold upsell blasts.
When not to use this play.
No pattern fits every job. Here’s where we’d point you at something else — sometimes ours, sometimes not.
Upselling users who are not succeeding
A struggling user reading an upgrade prompt hears "pay us to fix it". Gate expansion plays on health signals — activation complete, usage growing — and route the strugglers to onboarding guides instead.
Interrupting the core workflow
Never modal a user mid-task for revenue. Limit collisions are legitimate interrupts (the task literally cannot continue); everything else should be a banner or slideout at a natural pause.
Dark-pattern pressure
Fake countdowns, guilt-trip copy on the decline button, reappearing dismissed offers — every one converts a few and poisons the rest. "Not now" must mean not now; don't-show-again must mean never.
Replacing a sales motion for enterprise
Six-figure expansions close in conversations, not modals. Use in-app plays to surface intent — who hit which limits — and hand that signal to humans for the deals that need them.
When is the right moment for an upgrade prompt?
At the value boundary: hitting a plan limit, touching a premium feature, or crossing a usage threshold that predicts need. Trigger on the event, target on the traits (plan, role — decision-makers see pricing), and the prompt reads as help rather than ambush.
How do I avoid annoying users with upsells?
Frequency once per prompt, real dismissal that sticks, the 80%-warning pattern so walls never surprise, and health-gated targeting so struggling users are exempt. The global rate limits cap the worst case automatically.
Can I measure actual revenue from these prompts?
Wakeline measures the guide side — who saw, who clicked upgrade. Join those events against your billing system for closed revenue; the click actions carry user identity precisely so that join is easy.
What converts better — modals or banners?
Different jobs: limit-collision modals convert best per impression (the intent is maximal); ambient banners convert less per view but compound by making the eventual collision expected. Run both; A/B the copy on whichever carries your volume.
Put this to work.
Ship your first guide in minutes. Free to start — no credit card.