Skip to main content

Splitting & extensions

A single funnel shows you the overall picture: total traffic in, total customers out. That's usually not enough. What you really want to know is "which slice of traffic is actually converting?" — which is what splits answer.

After the main funnel, you often want to track what happens next — do customers upgrade? That's what extensions answer.

Splits

A split inserts a filter node between two stages. Everything downstream of the split only shows traffic matching that filter.

Eight split conditions

ConditionFilters byExample
Traffic sourceReferrer domain"only traffic from reddit.com"
UTM parameterutm_source, utm_medium, utm_campaign, utm_content, utm_term"only utm_campaign=summer-launch"
ChannelAuto-categorized channel"only organic search"
Device typeDesktop, mobile, tablet"only mobile"
CountryISO country code"only US and Canada"
Custom eventA goal you define with data-fn-goal or funnelfizz('event', ...)"only users who clicked pricing"
A/B variantThe ?ab= URL parameter"only ?ab=frog"
Stripe productSpecific Stripe product ID (TRIAL/CUSTOMER only)"only Pro tier subscribers"

All conditions combine with AND — a visitor must match every condition in the chain to appear in that split branch.

Auto-categorized channels

The Channel condition uses a server-side categorizer that bucketizes your traffic from referrer + UTM combinations. Buckets:

  • direct — no referrer, no UTM
  • organic_search — Google, Bing, DuckDuckGo, etc.
  • social — X, LinkedIn, Reddit, TikTok, Instagram, YouTube, Facebook
  • paidutm_medium=cpc/paid/ads or recognized ad networks
  • emailutm_medium=email or email-client referrers
  • ai_llm — chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com
  • referral — everything else with a referrer

Visualizing a split

On the canvas, splits look like this:

┌─ [split: mobile] ─▶ CONSIDERATION (mobile) ─▶ TRIAL ─▶ CUSTOMER

AWARENESS ─▶ CONSIDERATION

└─ [split: desktop] ─▶ CONSIDERATION (desktop) ─▶ TRIAL ─▶ CUSTOMER

Each branch is independent — you can chain further splits down a branch, connect different providers, even send different emails to each cohort.

Nested splits

You can split a split. "Mobile visitors from the US who came via YouTube" is a three-level nested split that will compute correctly. The canvas auto-lays-out nested branches so they don't overlap.

There's no fixed depth limit, but in practice three levels is about as deep as is readable.

Adding a split in the UI

  1. Click the + button between any two stages on the canvas.
  2. Pick a split condition.
  3. Fill in the value (e.g., country = "US", UTM source = "reddit").
  4. Name the branch (e.g., "US mobile traffic").
  5. Save.

That's it. The branch fills in automatically using the same data sources as the parent funnel.

→ Full details and per-condition configuration: Features → Splitting.

Extensions

Extensions are an optional second-stage pipeline that sits after CUSTOMER, tracking what happens to paying customers — specifically, do they upgrade?

The analogy: your main funnel is "get from stranger to paying customer." Your extension is "get from paying customer to higher-paying customer."

Extension stages

Extensions mirror the main funnel's structure (minus Awareness, because by definition these are people you already have):

  • Extension Consideration — your paying customers who are active on your product in the reporting window (fired a pageview or an event).
  • Extension Trial — Extension-Consideration users who started a trial at a higher-priced tier.
  • Extension Customer — users paying at a higher tier than their anchor product.

The anchor product

When you enable extensions for a funnel, you pick an anchor product — typically your entry-level paid plan (e.g., "Hobby — $9/mo"). The extension then tracks the cohort of customers who bought the anchor, and measures how many of them end up paying for a higher tier.

If a customer:

  • Still has the anchor subscription → counted in Retained.
  • Has no anchor but a higher-tier sub → counted in Upgraded (and shows up in Extension).
  • Has nothing → counted in Churned.

Canvas layout

On the canvas, extensions render to the right of the CUSTOMER stage with a double-line edge (visually distinct from main-funnel edges). They inherit the tint color of the main funnel.

... ─▶ CUSTOMER ═══▶ Ext CONSIDERATION ═══▶ Ext TRIAL ═══▶ Ext CUSTOMER

When to use extensions

  • Freemium products — you want to know what % of free users convert to paid. Set the free tier as the anchor.
  • SaaS with multiple tiers — how often do Hobby customers upgrade to Pro? Set Hobby as the anchor.
  • Lifecycle marketing — use extension stages as triggers for upgrade automations.

When NOT to use extensions

  • Single-tier products (Stripe has one price → nothing to upgrade to).
  • Products where upsell isn't the growth lever (e.g., one-time purchases, usage-based billing where everyone's on the same plan and just pays more).

Next: Email →Automations →Conversion →Full funnel tracking →