5 min read

How to Set Up Funnel Analysis in Amplitude

Funnels show where users drop off in your product flow. Without them, you're guessing whether your signup→activation→payment sequence is broken at the second step or the third. In Amplitude, funnels are built from the events you're already tracking—you just need to wire them together the right way.

Instrument Your Funnel Events

Funnels are chains of events. Before you build a funnel in Amplitude, each step of your user journey needs to be tracked as its own event.

Identify Your Funnel Steps

Define what each step represents. A typical flow is: signup → email verified → subscription activated → first report generated. Be specific with event names; user_signed_up is clearer than signup. Write these down—you'll use them to build the funnel in Amplitude.

Track Each Step with the SDK

Call amplitude.track() for every step in your funnel. Pass a descriptive event name and optional properties that help you segment later (signup method, plan type, etc.). Make sure your user ID is set so Amplitude can chain events to the same user.

javascript
import * as amplitude from '@amplitude/analytics-browser';
amplitude.init('API_KEY', { userId: user.id });

// Track funnel steps
amplitude.track('user_signed_up', { method: 'email' });
amplitude.track('email_verified', { timestamp: Date.now() });
amplitude.track('subscription_activated', { plan: 'pro', price: 99 });
amplitude.track('first_report_generated', { template: 'revenue' });
Track each funnel step as a separate event with the Amplitude SDK.

Verify Events Are Being Received

Go to Chart in Amplitude and select one of your events. Look for recent activity in the Event Details pane. If you don't see data, check that the SDK is initialized, your API key is correct, and user IDs are being set before tracking calls.

Tip: Use a consistent naming convention across your codebase. Avoid mixing "signup" with "SignUp" or "user_signup"—Amplitude treats these as separate events and will fragment your funnel.

Build Your Funnel in Amplitude

Once events are flowing into Amplitude, link them together to form a funnel sequence.

Navigate to Funnels

Click Funnels in the left sidebar. Click + Create to start a new funnel. You'll see the funnel builder where you can add steps.

Add Funnel Steps in Sequence

Click Add a step and search for your first event (e.g., user_signed_up). Add your second step (email_verified), then third (subscription_activated), and so on. The order matters—Amplitude only counts users who complete step 1, then step 2, then step 3. Adjust the conversion window (default: 30 days) to match your expected user flow timing.

javascript
// Funnel steps are evaluated in sequence within a conversion window
// Example funnel with 30-day conversion window:
// Step 1: user_signed_up
// Step 2: email_verified (users must verify within 30 days of signup)
// Step 3: subscription_activated (must activate within 30 days of first event)
// Step 4: first_report_generated

// Amplitude calculates conversion rates at each step:
// 1000 signups → 750 verified (75%) → 600 activated (80%) → 480 report generated (80%)
// Total: 48% from signup to report
Funnel steps are chained in sequence; only users completing all prior steps are counted.

Add Filters to Target Specific Users

Click Add filter to restrict the funnel to specific cohorts (new users only, specific regions, etc.). For example, filter by is first_touch to isolate new user onboarding, or country is US to analyze a specific market separately.

Watch out: Keep funnels under 5 steps. More steps make it harder to pinpoint where the real drop-off happens. Build a core funnel first (signup → activation → conversion), then create separate funnels for downstream behavior if needed.

Read and Act on Funnel Results

Once your funnel runs, Amplitude shows conversion rates at each step and identifies where users are dropping off.

Analyze Step-by-Step Conversion Rates

The funnel table shows Count (users who reached that step) and Conversion Rate (percentage of users from the prior step). A 75% conversion from signup to email verified is strong. A 40% drop from verified to activated suggests a pricing, payment, or value communication problem.

Break Down by User Properties

Click Breakdowns and select a dimension like $os (iOS vs Android) or a custom property (trial vs paid user). This splits the funnel to show separate conversion rates. You'll spot whether drop-off is platform-specific or tied to user type.

javascript
// Set user properties to enable segmentation in Amplitude
amplitude.setUserProperties({
  platform: 'web',
  signup_source: 'organic',
  account_type: 'trial'
});

// In Amplitude UI, use Breakdowns to compare funnels by these properties
// This reveals if conversion rates differ by platform or user type
User properties enable funnel segmentation in Amplitude's Breakdown view.

Export Results for Tracking Over Time

Click Export to download funnel results as CSV. Track this weekly or monthly to spot trends. Did a deployment cause a drop? Did your email redesign fix the verification rate? Export data makes it easy to correlate product changes with funnel performance.

Tip: A sudden drop in conversion at a specific step usually signals a product issue, A/B test effect, or infrastructure problem. Cross-reference the drop date with your deployment timeline and feature flags to find the cause.

Common Pitfalls

  • Tracking event name variations ("signup", "SignUp", "user_signup") as separate events, which fragments your funnel across multiple disconnected flows. Pick one naming convention and enforce it across your codebase.
  • Including too many funnel steps (7+), which masks where the real drop-off is happening and makes optimization unclear. Stick to your critical path and create separate funnels for secondary flows.
  • Ignoring time-based behavior. A user who verifies 30 days after signup isn't the same as one who does it same-day. Adjust conversion window and use cohort start dates to match your actual onboarding timeline.
  • Mixing new and returning users in the same funnel, which dilutes your signal. Use is first_touch or a signup date filter to isolate new user funnels from power-user behavior.

Wrapping Up

You now have visibility into where users drop off in your core flow. The next step is to act—test a faster email verification, simplify checkout, or surface your value proposition earlier in onboarding. If you want to track this automatically across tools and benchmark against industry standards, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free