6 min read

What Is Flow Analysis in Mixpanel

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.

javascript
// 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' });
Events tracked in order become the steps in your flow

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.

javascript
// 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');
The UI handles step configuration; the SDK sends events

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.

javascript
// 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-off
User properties enable filtering flows without re-tracking
Tip: Keep flows to 3–5 steps. A 10-step flow becomes hard to read and often reveals that you should break it into two separate flows instead.

Common 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.

javascript
// 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)
Events in the order users trigger them

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.

javascript
// Upgrade flow
mixpanel.track('upgrade_clicked', { plan: 'pro' });
mixpanel.track('enter_billing_info');
mixpanel.track('payment_submitted');
mixpanel.track('upgrade_confirmed');
Each event represents a user action in the upgrade journey

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.

javascript
// Feature discovery flow
mixpanel.track('viewed_home');
mixpanel.track('viewed_feature_page', { feature: 'analytics_dashboard' });
mixpanel.track('feature_used', { feature: 'analytics_dashboard' });
Track visibility, access, and actual usage separately
Watch out: Flow Analysis is for ordered sequences. If your steps can happen in any order, use Cohort Analysis or Insights instead.

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?

javascript
// 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-31
Flow shows the overview; use Funnels or Cohorts to understand why

Compare 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.

javascript
// 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 rates
Event properties enable segmentation in the UI

Set 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.

javascript
// 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() });
Use the Events API to monitor individual event volume trends
Tip: Flows are best for one-time analysis. If you're tracking the same flow every week, automate it—use Scheduled Insights or export the flow to a dashboard.

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.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free