You know users are dropping off somewhere in your onboarding, but where? Flow Analysis in Mixpanel shows you the exact paths users take through your product and where they bail. Instead of guessing, you see the data.
What Flow Analysis Does
Flow Analysis visualizes user journeys as a series of connected events. You define the starting point, add steps, and Mixpanel shows you how many users complete each step and where they drop off.
Understand the Core Concept
A flow is a sequence of events. You pick a starting event (like signup), add subsequent events (like complete_profile, create_project), and Mixpanel counts how many users move from step to step. You immediately see drop-off percentages at each stage.
// Track events that will feed into your flow
mixpanel.track('signup', { source: 'landing_page' });
mixpanel.track('complete_profile', { profile_type: 'creator' });
mixpanel.track('create_project', { project_type: 'video' });Set Up Your First Flow in the UI
Go to Home > Insights > Flows. Click Create Flow. Select your starting event (the first user action), then add 2–5 subsequent events in order. Mixpanel immediately shows you a waterfall with user counts and drop-off rates at each step.
// In the UI, you configure the flow steps visually:
// Step 1: 'signup' event
// Step 2: 'complete_profile' event
// Step 3: 'create_project' event
// Mixpanel automatically calculates drop-off % between each step
// Your SDK code just sends the events:
mixpanel.track('signup');
mixpanel.track('complete_profile');
mixpanel.track('create_project');Use Filters to Zoom In
Flows support user property filters. Click Add Segmentation and filter by region, plan, device, or any user property. This shows you if drop-off is worse for, say, mobile users or a specific cohort. You can segment the entire flow with one filter.
// Set user properties so you can filter flows by them later
mixpanel.people.set({
'plan': 'pro',
'region': 'us',
'device': 'mobile'
});
// Now in the Flows UI, add a filter like 'plan == pro' to see that segment's drop-offCommon Use Cases
Flow Analysis works best when you want to see the sequence of actions, not just conversion rates. Here's where teams actually use it.
Onboarding Flows
Track signup → email verification → profile setup → first action (like creating a project). A flow immediately shows you which step is bleeding users. If 80% sign up but only 30% verify email, you've found your problem.
// Typical onboarding flow events
mixpanel.track('signup');
mixpanel.track('verify_email');
mixpanel.track('complete_profile');
mixpanel.track('create_first_project');
// In Flows UI, you see: 100 → 80 → 35 → 30 (drop-off at each step)Subscription Upgrade Flows
Map free → upgrade button click → billing info → payment confirmation. If half your users click the upgrade button but few complete billing, your payment form is the bottleneck.
// Upgrade flow
mixpanel.track('upgrade_clicked', { plan: 'pro' });
mixpanel.track('enter_billing_info');
mixpanel.track('payment_submitted');
mixpanel.track('upgrade_confirmed');Feature Discovery Flows
See if users discover your main feature. Track home view → feature page visited → feature used. If most users see the feature but few use it, the feature itself might be confusing.
// Feature discovery flow
mixpanel.track('viewed_home');
mixpanel.track('viewed_feature_page', { feature: 'analytics_dashboard' });
mixpanel.track('feature_used', { feature: 'analytics_dashboard' });Reading and Acting on Flow Data
A flow shows you numbers, but you need to know what they mean and what to do next.
Spot the Biggest Drop-Offs
The biggest drop happens between two specific steps. Fix that step first. If drop-off is 20% (80 → 64 users), that's the constraint. Use Funnels to dig deeper into *why* users drop at that exact point—what properties do they share?
// After identifying a drop-off in the Flow, drill into it with Funnels
// Flow shows: signup (100) → verify_email (70) = 30% drop
// Use Funnel UI to filter: what do those 30 non-verifying users have in common?
// Or export flow data via the Events API:
// GET https://mixpanel.com/api/2.0/export?from_date=2025-01-01&to_date=2025-01-31Compare Segments
Add a filter to your flow: source == google_ads. Does that segment have worse drop-off? Yes? Your ad is attracting the wrong audience. Use Retention queries if you want to track whether these users come back after fixing the flow.
// Tag your signups so you can segment flows by traffic source
mixpanel.track('signup', {
source: 'google_ads',
campaign: 'summer_2025'
});
// In the Flows UI, add a filter: source == 'google_ads'
// Now you see if ad traffic has worse drop-off ratesSet Benchmarks and Watch Trends
Screenshot your flow today. Next month, run the same flow. Did drop-off improve? Use date range filters to compare week-over-week changes. Flows are a snapshot; you need to manually re-run them to track trends.
// Flows don't auto-alert you to changes, so monitor event rates with the Events API:
// GET https://mixpanel.com/api/2.0/events/unique/?event=signup&unit=day&interval=7
// Track signup counts over time to validate flow improvements
mixpanel.track('signup', { timestamp: new Date().toISOString() });Common Pitfalls
- Only events you track in your code will appear in flows. Missing an event? It won't show up—make sure your SDK is actually calling
mixpanel.track()for every step. - Flows show drop-off percentages, but not *why* users drop. A high drop-off doesn't tell you if it's a UX issue, a technical bug, or the user just losing interest. Use Funnels and Cohorts to dig deeper.
- Flows are ordered—if your user journey isn't sequential (e.g., users can complete steps in any order), a flow will mislead you. Use Cohort or Retention analysis instead.
- Flow data is real-time but only after events are tracked. If events have a long delay (e.g., batch processing), your flow will show outdated data. Keep event tracking synchronous.
Wrapping Up
Flow Analysis in Mixpanel gives you a quick visual of where users succeed and bail in a sequence of steps. Use it to spot drop-off points, then dig into those points with Funnels or Cohorts to understand the cause. Once you know where users are getting stuck, you can prioritize fixes. If you want to track user flows automatically across tools, Product Analyst can help.