惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
The Last Watchdog
The Last Watchdog
TaoSecurity Blog
TaoSecurity Blog
Schneier on Security
Schneier on Security
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
O
OpenAI News
W
WeLiveSecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
P
Privacy & Cybersecurity Law Blog
K
Kaspersky official blog
S
Security @ Cisco Blogs
Latest news
Latest news
AWS News Blog
AWS News Blog
U
Unit 42
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Scott Helme
Scott Helme
博客园 - 司徒正美
B
Blog RSS Feed
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker
Google Online Security Blog
Google Online Security Blog
Jina AI
Jina AI
aimingoo的专栏
aimingoo的专栏
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Last Week in AI
Last Week in AI
月光博客
月光博客
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
小众软件
小众软件

PostHog's RSS Feed

Training our own AI models - PostHog From 270GB RAM to 5GB: Moving local flag evaluation from Django to Rust The best analytics stack for vibe-coded apps The do's and don'ts of minimum viable product marketing - PostHog The best MCP servers for startups, by workflow 4,063 errors closed without a human opening PostHog – here's what we learned - PostHog PostHog Code and the self-driving product - PostHog Why attacking your competitors online is dumb - PostHog The best real-time analytics platforms for developers, compared DuckDB vs ClickHouse: Why we use both at PostHog - PostHog PostHog's next chapter - PostHog Making Claude Cowork actually useful - PostHog PostHog vs Matomo in-depth tool comparison You're doing lifecycle emails wrong Untangling Tokio and Rayon in production: From 2s latency spikes to 94ms flat The best HIPAA-compliant A/B testing tools - PostHog A beginner's guide to testing AI agents - PostHog I hate the standup bot (so I built an agent to do it for me) - PostHog The best CDPs for developers, compared The best error tracking tools for developers, compared The best feature flag software for developers, compared 7 best session replay tools for mobile apps 7 best free open source business intelligence tools right now 7 best free and open source LLM observability tools PostHog vs LogRocket in-depth tool comparison The most popular PostHog alternatives, compared Open source (and self-hosted) session replay tools - PostHog The 9 best GA4 alternatives for apps and websites - PostHog PostHog vs Google Analytics 4 in-depth tool comparison How we built automatic clustering for LLM traces - PostHog The 7 best HIPAA-compliant analytics tools 8 best open source analytics tools you can self-host - PostHog The best product analytics tools for startups, compared PostHog vs FullStory in-depth tool comparison The best in-app survey tools for product teams, compared The 7 best mobile app analytics tools PostHog vs Hotjar in-depth tool comparison The 8 best free and open-source feature flag services - PostHog The 5 best free and open-source A/B testing tools - PostHog The best mobile app A/B testing tools, compared What is a feature flag? Feature Flags vs Remote Config vs A/B Testing PostHog is now available in Vercel’s v0 The best Heap alternatives & competitors, compared PostHog vs Heap in-depth tool comparison PostHog vs Pendo in-depth tool comparison PostHog × Vercel: feature flags, minus the plumbing Your logs' final destination is in GA. You always end up here anyway Behind the scenes of a PostHog hackathon - PostHog The most popular Mixpanel alternatives & competitors, compared PostHog vs Mixpanel in-depth tool comparison The 9 best GDPR-compliant analytics tools How we use Logs at PostHog The best web analytics tools for developers, compared Stop AI slop: Run evals with LLM-as-a-Judge - PostHog You product data just got a job: Workflows is now out Meet Logs (beta) – logs with all the tools you’re already using Why small teams crush tiger teams How we built user behavior analysis with multi-modal LLMs (in 5 not-so-easy steps) - PostHog The best Contentsquare alternatives & competitors, compared 8 learnings from 1 year of agents – PostHog AI - PostHog Why we killed our AI product assistant Workflows graduate to beta! Product data, meet automation The best Rollbar alternatives & competitors, compared Workflows are now in Alpha and I already broke mine - PostHog I've consistently underestimated how important communication is as a CEO - PostHog How we made feature flags even faster and more reliable The best session replay tools for developers, compared What I learned attending my first ever hackathon - PostHog Did you know AI is answering our community questions? - PostHog How not to be boring - PostHog We built an internal tool to generate changelog images for social media - PostHog What we built at our windswept Mykonos hackathon - PostHog How we built our onboarding email flow (with actual performance data) - PostHog We're building a better PostHog community by closing our public Slack - PostHog Introducing Notebooks for PostHog - PostHog Why we've launched PostHog user surveys - PostHog How we made feature flags faster and more reliable - PostHog In-depth: ClickHouse vs Redshift - PostHog Introducing HouseWatch: An open-source toolkit for ClickHouse - PostHog Introducing HogQL: Direct SQL access for PostHog - PostHog What we built at our sun-kissed Aruba hackathon - PostHog In-depth: ClickHouse vs BigQuery - PostHog In-depth: ClickHouse vs Elasticsearch - PostHog HogMail #22: Why do companies over-hire?" - PostHog Our simpler goal: Help engineers to be better at product - PostHog In-depth: ClickHouse vs Snowflake - PostHog HogMail #21: Avoiding the "Product Death Cycle" - PostHog Sunsetting Kubernetes support for PostHog - PostHog Why 'Product Engineer' is the most fun role I've had in tech - PostHog HogMail #20: Why do startups fail? - PostHog The best Google Optimize alternatives for apps and websites - PostHog Array 1.43.0: Massive performance improvements! - PostHog In-depth: ClickHouse vs Druid - PostHog HogMail #19: Which meetings should you kill? - PostHog CEO diary: The things I learned in 2022 - PostHog The essential tools used by product engineers - PostHog HogMail #18: What can SaaS learn from the New York Times? - PostHog What is a product engineer? - Product Engineer Handbook - PostHog Array 1.42.0: Get beta features via our roadmap! - PostHog HogMail #17: The personal traits that can't be taught - PostHog
App onboarding: How to fix drop-off points
Natalia Amor · 2025-12-29 · via PostHog's RSS Feed

A PostHog recipe for people whose users keep leaving the table.

Prep time~30 minutes setup, ~1 week of data
DifficultyBeginner-friendly
YieldsOne less broken onboarding flow
Best forProduct engineers, technical founders, growth teams
OutcomeBetter onboarding conversion boosts all downstream metrics from activation to retention to revenue.

Jump to recipe


Seeing your onboarding stats drop or stall can be discouraging, but here's the good news: it doesn't mean your product sucks (phew!)

Onboarding drop-offs are usually an indication of friction, not rejection. Users don't rage-quit because they hate your product, they quit because something didn't make sense, didn't work, or asked for too much too soon.

It's like attempting a beef wellington, realizing you're in over your head somewhere around the "wrap the beef in mushroom duxelles" step, and bailing to order pizza instead. Ask me how I know.

Even better news: onboarding friction is measurable, debuggable, and fixable.

App onboarding drop off recipe card

Ingredients

You don't need a massive stack for this recipe.

Required:

Optional, but recommended:

Autocapture (for skipping manual event setup)

Surveys (for getting direct feedback from users)


Substitutions

No session replay tool? You can interview users directly instead, but you'll be relying on their memory of what happened rather than what actually happened. It works, it's just slower and less reliable. Here's our guide to running effective user interviews if you go this route.

No surveys? It's okay, replays will get you 80% of the way there; the other 20% is context you'll have to infer.

No feature flags? You can ship straight to production. We won't judge. (...we will judge a little.) If something breaks, you'll just have to roll back manually. Here's why we think feature flags are worth it.

No cohorts or segmentation? You can still run this recipe, you'll just be looking at all users as one group. If your drop-off is consistent across everyone, that's fine. If it's not, you'll have a harder time figuring out who's actually struggling.

You'll also need:

  • A clear definition of what "successful onboarding" looks like. This is your activation event – the moment a user has gotten enough value to stick around (more on this below).
  • Events firing & at least a few hundred users going through your flow. You need enough data to spot patterns. If you're at an earlier stage, you can still follow this recipe; just watch more replays and lean harder on qualitative signals until your numbers catch up.

Want to cook with PostHog? Great choice.

If you haven't set it up yet, start here. Make sure you're capturing the key events in your onboarding flow (signups, form completions, button clicks, etc.). If you have autocapture enabled, you're probably already covered.

We highly recommend calling posthog.identify() when users sign up or log in; you'll be able to track them across sessions and devices, which makes your funnel data much more reliable.

Cook with PostHog – it's free!

Before you can fix your onboarding, you need to define what a successful onboarding flow actually means. This is your activation event, the foundation of your activation metrics and the thing you'll measure everything against.

Ask yourself: What's the moment when a user has gotten enough value that they're likely to stick around? What you're looking for is a value-producing action.

Some examples:

  • For an e-commerce app: Added item to cart and completed checkout
  • For a streaming service: Watched their first video or listened to their first song
  • For a project management tool: Created their first project and invited a teammate
  • For a fintech app: Linked their bank account or made their first transaction
  • For a social app: Followed their first account or posted their first content
  • For an analytics product: Sent their first event and created an insight
  • For a CRM: Added their first contact and sent an email

Not sure what yours is? Try looking at your retention data – what do retained users do that churned users don't? That should give you a starting point.

Here's how we figured out our activation metric at PostHog (spoiler: it took a few iterations).

Pick one. Be opinionated. You can always adjust later.

👨‍🍳 Chef's tipDon't confuse the appetizer for the main course; signing up or landing on a dashboard aren't meaningful enough steps to be considered product activations, for example. Also, your activation event might change over time – what predicted retention two years ago might not be the best signal today, so revisit it if needed.

You're ready for the next step when....

You can complete the sentence: "A user has successfully onboarded when they ____."


Now you're ready to cook.

In your analytics tool, create a funnel with the steps a user must complete to reach your activation event.

A simple example:

  1. $pageview on /signup/success (or a custom signed_up event)
  2. profile_completed
  3. first_project_created
  4. teammate_invited (the last step is your activation event)

A few tips:

  • Start with 3-5 steps max. Too many steps and you'll have trouble identifying the real problem areas.
  • Use sequential order (the default) so users must complete steps in the order you've defined.
  • Set a reasonable conversion window (7 to 14 days is a good starting point).

If using PostHog:

Head to Product AnalyticsNew insightFunnel. If you have autocapture enabled, many of these events may already be tracked for you; check your activity to see what's coming in.

👨‍🍳 Chef's tipStart with your core flow. Once it's optimized, create separate funnels for specific segments. Don't forget to name your funnel something specific (e.g., "Self-serve onboarding Q1 2025") so future-you knows what it's measuring when you have 47 funnels.

You're ready for the next step when....

Your funnel is prepped, ending with your activation event, saved, and ready to collect data.


Save your funnel and let data collect for at least a week. You need enough users going through the flow to see meaningful patterns; looking too early is how you end up "fixing" problems that don't exist.

As a rough guideline:

While you wait, you can:

👨‍🍳 Chef's tipResist the urge to peek daily. Set a calendar reminder for one week out – watching the pot won't make it boil faster.

You're ready for the next step when...

Your data has had time to marinate – at least a few hundred users through the funnel with clear conversion rates at each step. Undercooked data leads to undercooked fixes.


Now that your funnel is showing you where users are falling off, look for:

  • The step with the lowest relative conversion rate – this is usually your biggest opportunity
  • Absolute numbers – sometimes a step has decent conversion but is still losing you thousands of users

If everyone drops off at the same step, it's probably a UX problem. Something about that step is broken or confusing for all users.

If only some users drop off, it's a context problem. Something about who they are or how they got there is causing friction.

If it's a context problem, try segmenting your funnel to find a clearer diagnosis:

  • New users vs. returning users
  • Invited users vs. self-serve signups
  • Browser, device, or OS
  • Plan type or pricing tier

If using PostHog:

Click on the drop-off number in your funnel to see the actual users who didn't make it. Use breakdowns to slice your funnel by user properties, device, or any event property. If you have many steps or breakdown values, you can also sort for poor performers in terms of number of conversions, conversion percentage, and even time in the Detailed results section.

👨‍🍳 Chef's tipYou can export your cohort of dropped-off users and use it to target them with win-back marketing campaigns or surveys later.

You're ready for the next step when...

You're able to say: "Users drop off most at [this step]" and "It affects [these users] more than others." If you can't say both, don't move on yet.


You know where users drop off, now you need to find out why.

Watch 10–15 recordings. You're looking for patterns:

  • Are users getting confused at a specific UI element?
  • Are they rage-clicking something that doesn't work?
  • Are they abandoning after seeing a specific screen (pricing, permissions request, etc.)?
  • Are they hitting errors? (Check the console logs in the replay; PostHog captures these too.)
  • Is something failing quietly? Look at network requests if you have network recording enabled.

If recordings are looking wildly different from one user to the next, go back to Step 4 and segment further; you're probably mixing multiple problems together.

If using PostHog:

  • Fastest way: Click directly on the drop-off in your funnel – PostHog will pull up recordings for those users automatically. (This is one of the nice things about having replay and analytics in one tool!)

  • Manual way: In Session Replay, click Show filtersFilter for events or actions → select the last event users completed before dropping off. See our session replay filtering guide for more.

If you saved a cohort in Step 4, you can filter replays by that cohort directly.

👨‍🍳 Chef's tipDon't just watch drop-offs. Sometimes successful users struggled through the same friction – they just pushed through anyway. Watch both to taste the difference.

You're ready for the next step when...

You're able to say "Users drop off here because [this thing] keeps happening."


This step isn't required, but it can be the difference between a good fix and the right fix.

Exit survey (for users who drop off)

Trigger this when users are about to abandon your onboarding flow:

  • Question: "What's stopping you from finishing setup?" (open text)
  • Display conditions: Show on your onboarding URL + after 30–60 seconds of inactivity, or on exit intent

You likely won't get a ton of responses, but the ones you do get can be really useful signals.

Completion survey (for users who made it)

Survey users who did complete onboarding to understand what almost stopped them:

  • "What was the hardest part of getting started?"
  • "What, if anything, almost made you give up?"

Trigger this right after your activation event fires; they'll remember while it's fresh.

If using PostHog:

Go to SurveysNew survey.

You can set display conditions based on URL, user properties, or events. For the completion survey, trigger it when your activation event fires.

👨‍🍳 Chef's tipKeep surveys short. One or two open-ended questions max. Users will give you more when you ask for less. Also, remember survey responses are seasoning, not the main dish; it's okay to just have a handful of responses. A few strong signals beat hundreds of vague ones.

You're ready for the next step when...

You've seasoned your data with user feedback that confirms, refines, or challenges what you saw in replays.


By now you should have:

  • Quantitative data on where users drop off (funnel)
  • Behavioral data on what they were doing (replays)
  • Direct feedback on what they were thinking (surveys)

Mix these into a hypothesis: "[These] Users are dropping off at [step] because [reason]."

Some common fixes:

  • Simplify your flow – reduce fields, remove friction, break it into smaller steps, make a required field optional
  • Add guidance – tooltips, progress indicators, inline help
  • Squash any bugs – if replays showed errors, fix them
  • Reorder the flow – maybe you're asking for too much too soon
👨‍🍳 Chef's tipOne ingredient at a time. If you change five things at once, you won't know what fixed it (or broke it). Also, write down your hypothesis before you ship. It's easy to retrofit a narrative after you see results – having it on record keeps you honest.

You're ready for the next step when...

You've got one fix in the oven, designed to address your hypothesis.


Whatever the change, don't dump it straight into production, roll it out gradually if you can using feature flags.

Feature flags let you:

  • Release to 10–20% of users first, then ramp up
  • Target specific user segments (e.g., new users only)
  • Kill the change instantly if something goes wrong

Want statistical proof it worked? Run an A/B experiment. This is optional, not every fix needs one. But it's worth it when:

  • The change is significant (like a full flow redesign)
  • You're debating between multiple solutions
  • You need to convince stakeholders with data

While step isn't mandatory, it helps avoid "we think this worked" decisions.

If using PostHog:

Use feature flags to roll out your fix to a percentage of users first.

To run an experiment, go to ExperimentsNew experiment. Use your feature flag as the basis – PostHog will split users into control and test groups and track your funnel as the goal metric.

👨‍🍳 Chef's tipIf you're nervous about a big change, start at 5% rollout. You can always ramp up, but you can't un-serve a burnt dish. Also, not every fix needs a full experiment – but if it's a big change, or you need to convince stakeholders, statistical proof is worth the extra time.

You're ready for the next step when...

Your fix is out of the kitchen, live (ideally behind a feature flag) and collecting data.


After your fix has been live for a bit:

  • Go back to your funnel
  • Compare conversion rates before and after your change (most analytics tools let you view trends over time)
  • Watch a few new replays to confirm the friction is gone

Things to check:

  • Did funnel completion improve?
  • Did drop-off move to a different step?
  • Do replays show smoother behavior?

If using PostHog:

Set your funnel's Graph type to Historical trends to see conversion over time.

If you used a feature flag or experiment, check the results in Experiments to see the impact with statistical significance. For another perspective on your funnel, you can also break it by whether that feature flag was enabled for that user.

👨‍🍳 Chef's tipScreenshot your before/after funnels. They make great artifacts for retros, stakeholder updates, and convincing your team that this stuff actually works.

You can see a lift in activation rates after deploying your fix.

If it didn't work as expected, that's okay. Go back to Step 4 with a new hypothesis. Onboarding optimization is iterative, you're rarely done after one fix.


Why this recipe works especially well with PostHog

Most teams piece this workflow together across 3–4 different tools: analytics in one place, replays in another, surveys or feature flags somewhere else. It works, but it's slow and you lose context switching between tabs.

With PostHog, everything's connected in one place:

  • Funnels show you where users drop off
  • Breakdowns show you who's struggling
  • Session replay shows you why
  • Surveys tell you what users were thinking
  • Feature flags let you ship fixes safely
  • Experiments confirm whether the fix actually worked

Get started free with 1M events, 5K recordings, and 1M feature flag requests free every month!

Want to just try it already?

(Sorry for the shameless CTA.)

FAQ

What is product activation?

Product activation is the moment a user experiences enough value to stick around. It's the bridge between signing up and becoming an engaged user, and it's one of the most important metrics for product-led growth.

The key product activation metrics to keep an eye out for are activation rate (% of signups who activate), time to activate (how long it takes), and onboarding completion rate (% who finish your onboarding flow). Track all three to get the full picture.

What's the difference between app onboarding and product activation?

Onboarding is the flow — the steps you guide users through. Activation is the outcome — the moment they get value. Good onboarding leads to activation, but they're not the same thing.

What is onboarding drop-off?

Onboarding drop-off is when users start your onboarding flow but leave before completing it. They signed up and showed intent, but never reached the point where they experienced real value from your product (your activation event).

Onboarding drop-off is not the same as churn – these users never really started using your product in the first place.

What's the difference between onboarding drop-off and churn?

Onboarding drop-off happens before users get value. They never activate.

Churn happens after activation. Users got value, used the product for some time, and then stopped.

Drop-off is usually caused by UX friction or broken flows. Churn is more often driven by value, habit, pricing, or competition.

What causes users to drop off during onboarding?

The most common causes are:

  • Asking for too much information too soon
  • Confusing or unclear UI
  • Unclear next steps or lack of guidance
  • Broken flows, errors, or silent failures
  • Required steps that don't feel required
  • Onboarding that takes too long to complete
What's a good onboarding completion rate?

There's no universal benchmark.

For self-serve SaaS, 20–40% onboarding completion is common. Higher-touch products with sales involvement often see higher rates.

More important than benchmarks is tracking your own completion rate over time and improving it incrementally.

What's the biggest mistake teams make with onboarding analytics?

Optimizing the wrong metric.

Teams often track signups, pageviews, or dashboard loads instead of the action that actually predicts retention. If your activation event is wrong, everything downstream will be misleading.

How do I reduce onboarding drop-off?

Start by diagnosing the problem.

Identify where users drop off, then look at what actually happens at that step. Fix one thing at a time by simplifying the flow, adding guidance, removing unnecessary fields, fixing bugs, or reordering steps.

Roll out changes gradually so you can measure impact and roll back if needed.

What tools do I need to track and fix onboarding drop-offs?

At a minimum, you need:

You can assemble this with separate tools (for example, analytics, replay, feature flags, and experiments), but that usually means more setup, more context switching, and slower iteration.

Or you can use a unified platform like PostHog to do all of this in one place.

Can I do this without a unified analytics tool?

Yes, but it's harder.

Most teams end up stitching together funnels, replays, surveys, and experiments across multiple tools, which slows analysis and makes it harder to connect cause and effect.

A unified stack makes it much easier to move from “where users drop off” to “why” to “did this fix work?”


Pairs well with

...hungry for more?

Subscribe to our newsletter

Product for Engineers

Read by 100,000+ founders and builders

We'll share your email with Substack

Did you make this recipe?

Share your before-and-after funnel below.

⭐⭐⭐⭐⭐ "Finally fixed our onboarding. Down to only 3 existential crises per quarter." – Actual user, probably