Skip to main content

Conversion

A conversion is the transition from one stage to the next. Because there are four stages, there are exactly three conversions — the slices you care about most when you look at your funnel.

AWARENESS ● CONSIDERATION ● TRIAL ● CUSTOMER
│ position 0 position 1 position 2

Each conversion position has a method that defines what counts as a conversion. The defaults cover 90% of cases; you can override any of them.

The three positions

Position 0: AWARENESS → CONSIDERATION

Default method: Site visit (via tracking code).

This is the easiest one: anyone who lands on your site with the tracking script installed converts. There's no work to do beyond installing tracking.

Alternative methods:

  • Email signup form — a form post with an email field on your marketing site (bypasses the site visit requirement, useful if you have a form-first landing page).

Position 1: CONSIDERATION → TRIAL

Default method: Stripe trial (status = "trialing" on a subscription).

Works out of the box once you've connected Stripe and mapped your product.

Alternative methods:

  • Custom signup event (HOBBY+) — call funnelfizz('event', 'signup') from your app or site. Useful if your product has self-serve signup without Stripe (free plan signups, "book a demo" flows, email gated downloads).
  • Email signup form — form post with an email field on a deeper page (not your landing).

Position 2: TRIAL → CUSTOMER

Default method: Stripe paid (status = "active").

Works automatically after Stripe connect.

Alternative methods:

  • App Store / Play Store download (HOBBY+) — uses a referral parameter on the store link to attribute mobile downloads. Good if your conversion event is "installed the mobile app" instead of "started a paid subscription."

Configuring a conversion

On the canvas, click the round conversion bubble between any two stages. A drawer opens with:

  • Label — how it shows up in the dashboard ("Signup", "Started trial", "Paid").
  • Method — pick from the available options for that position.
  • Configuration — method-specific fields (Stripe product ID, form ID, event name).

Method reference

Site visit (tracking code)

Fields: tracking site ID (auto-filled if you have one), domain.

What it counts: any pageview event from a unique visitor. No extra config needed.

Email signup form

Fields: form ID (any identifier you want), email field name (the name attribute of the email input — defaults to email).

What it counts: a form_submit event where the form contains an email-shaped value in the named field. The tracking script auto-fires form_submit on every form on your site; you pick which form counts by ID.

Stripe trial

Fields: Stripe integration (auto-filled), product ID, price ID.

What it counts: subscription with status = "trialing" on the specified product/price.

Config tip: if you have multiple trial tiers, point each conversion at the specific price ID you care about. If you just want "any trial counts," leave price ID blank.

Stripe paid

Fields: Stripe integration, source product IDs (what they came from — optional), target product IDs (what counts as paid).

What it counts: subscription with status = "active" on one of the target products, at any price.

Config tip: the "source" filter is for funnel chaining — "only count people who upgraded from the Hobby tier." Leave it empty to count anyone who becomes a paying customer regardless of prior history.

Custom signup event

Fields: event name, optional expected properties.

What it counts: a matching call to funnelfizz('event', '<event name>', {...}) from a unique visitor. Properties let you filter further — e.g., only count events where plan: 'pro'.

Example:

// Fires from your app's signup success handler
funnelfizz('event', 'signup', {
plan: 'pro',
source: 'pricing_page'
});

Then configure the conversion with event name signup and (optionally) expected property plan: pro.

App Store / Play Store download

Fields: store (app_store, play_store, or both), referral parameter name.

What it counts: a redirect from your site to a store link with the tracked referral param present. We record the click-out; the store attribution happens on your side via the referral parameter decoding in your onboarding analytics (Branch, AppsFlyer, Adjust, or native store referrer APIs).

Conversion rates

For each position, FunnelFizz computes:

  • Count — how many unique profiles made the transition in the period.
  • Rate — count divided by the source-stage count, expressed as a percentage.
  • Trend — period-over-period delta (up/down arrow, % change).

Rates are computed after split filters are applied, so each split branch has its own conversion rates separate from the main funnel.

Under the hood

Every successful conversion writes a journey event with eventType = "converted" and metadata about the method. Journey events have unique constraints per (funnel, visitor, stage, eventType) so a visitor can't be double-counted.

This means: if the same user comes back next month and converts again, they don't get double-counted in that funnel. But they do get counted in a different funnel if you run multiple funnels for the same workspace.


Next: Full funnel tracking → — how anonymous visitors get stitched together into identified customer journeys.