Conversion Funnels
A funnel shows how many visitors go through the steps that matter to you, in order, and where they stop. Use it to find the step that loses the most people and to see why.
Where funnels live
Open Domains → your site → Journeys → Funnels. The Journeys tab has four sub-tabs: Goals, Funnels, Flows and Users.
- Funnels need the Pro plan or higher. Pro includes 5 funnels; Scale and Enterprise are unlimited.
- Goals and Funnels share one period selector: Last 24 hours, 7, 14, 30 and 90 days, 6 months and 12 months. Longer periods depend on your plan's history window.
- Every number is for the selected period and is compared with the period before.
- Your dashboard filters and saved segments apply to funnels too.
- Every open funnel and drop-off view is a link: you can share it, and it survives a reload.
How funnels count
- A funnel has 2 to 10 steps that visitors take in this order.
- There are three step types: Page (an address and a match type), Event (a custom event name) and Goal (an existing goal).
- One page view can never fill two consecutive steps. A funnel "pricing → pricing" needs two separate views of the pricing page.
- Funnels are calculated from your recorded data when you look at them, for exactly the selected period. A new funnel shows its history immediately, editing a funnel recalculates the past, and every period works.
Time window
Each funnel has a time window (conversion window) that decides how long visitors have to finish:
| Time window | Counted per | Meaning |
|---|---|---|
| Same visit (default) | Visit | All steps happen in one visit |
| Within 1 day | Visitor | The same visitor may finish on a later visit within 1 day |
| Within 7 days | Visitor | The same visitor may finish on a later visit within 7 days |
| Within 30 days | Visitor | The same visitor may finish on a later visit within 30 days |
You can switch the time window in the report to compare. Editors can keep the new choice with Save as default.
On cookieless sites, a returning visitor gets a new anonymous ID every day, so the 7-day and 30-day windows undercount there. The dashboard shows a note when this applies. Same visit and Within 1 day work as expected. See Visitor Identification.
Create a funnel
Open Journeys → Funnels and click New funnel. In the builder you set:
- Name
- Steps: add and remove steps, and reorder them with the up and down buttons.
- Page steps have a Pick button that opens the page picker with your real pages, and a live check that shows whether the address matches.
- Event steps take the name of a custom event.
- Goal steps let you choose one of your existing goals.
- Time window
- An optional description
While you edit, a live preview shows the funnel for the selected period, so you can see the result before you save.
Other ways to start a funnel:
- Funnel ideas on the Funnels tab (see below)
- Flows → Top user paths: the button Create a funnel from this path
- A goal's detail panel: the button Build a funnel to this goal
Step types
Page steps
A page step is reached when a visit opens a page whose address matches. Page steps use the same address rules and match types as page goals, including Matches a pattern with *, ** and {locale}. See Address matching on the Goals page.
Event steps
An event step is reached when your site sends the custom event:
// Track the event in your code
zenovay('track', 'add_to_cart', {
product_id: 'sku-123',
quantity: 2
});Event names are matched without regard to upper/lower case, and spaces count as underscores.
Goal steps
A goal step is reached when the visit completes one of your existing goals. A goal that is used in a funnel cannot be deleted until you remove it from the funnel.
Example funnels
E-commerce checkout
Step 1: Product viewed → Page starts with '/product/'
Step 2: Add to cart → Event 'add_to_cart'
Step 3: View cart → Page is exactly '/cart'
Step 4: Begin checkout → Page is exactly '/checkout'
Step 5: Payment details → Page is exactly '/checkout/payment'
Step 6: Order complete → Goal 'Purchases'SaaS onboarding
Step 1: Signup complete → Page is exactly '/welcome'
Step 2: Profile setup → Event 'profile_completed'
Step 3: First project → Event 'project_created'
Step 4: Team invite → Event 'team_member_invited'
Step 5: Integration → Event 'integration_connected'Content engagement
Step 1: Blog visit → Page matches the pattern '/blog/**'
Step 2: Newsletter CTA → Event 'cta_clicked'
Step 3: Form submission → Event 'newsletter_signup'Reading the report
Your funnels are shown as cards at the top of the Funnels tab, each with its number of steps and the share that finishes. Click a card to open its report. With more than five funnels (more than four on phones), one row of cards is shown and Show all N funnels lists every funnel; Show fewer folds the list again. The funnel you have selected always stays visible.
For the selected funnel and period you first see four numbers:
| Number | Meaning |
|---|---|
| Started | Visits (or visitors, with a longer time window) that reached step 1, with the change against the previous period |
| Finished | Those that reached the last step, with the change against the previous period |
| Conversion | Finished divided by Started |
| Median time to finish | The typical time from the first to the last step |
Funnel chart
Below the numbers, the funnel is drawn as a flowing ribbon: one column per step, as high as that step's share of the start, with the drop in percent between two steps. Under each column you see the step's visits (or visitors), its name and its share of the start. The funnel's conversion rate for the period is shown above the chart.
Hover a step, or move to it with the keyboard, to see its details:
- How many reached the previous step, the Drop off and how many reached this step
- The Conversion from the previous step and, from the third step on, the share from start
- How long it usually takes from the previous step, for example "Usually T after the previous step"
- The step's Top channels and Top countries
On phones, and in narrow windows when a funnel has many steps, the ribbon runs from top to bottom, so nothing is cut off and nothing scrolls sideways.
Steps and drop-offs
Click a step in the chart, or Show steps and drop-offs under it, to open the step list. It shows each step's count, its share of the start and its share of the previous step. Between two steps it says, for example, "N stopped here (x%) · usually T to the next step · See why". Hide steps closes the list again.
Drop-off panel
See why opens the drop-off panel for that step:
- How many did not reach the next step
- Where they went instead: the next page they opened, or "Left the site"
- Who stops most often, by device, channel and country
- The latest visits that stopped, each with a link to the visitor's timeline
- Explain this drop-off: a short AI explanation in plain words, based only on these numbers
Compare by
Compare by splits the funnel by device, country, channel, host or entry page, with started, finished and conversion for each row.
Funnel ideas
Funnel ideas are suggestions built from the paths your visitors really took in the last 30 days, including paths that end in a goal. Click Use to open the builder pre-filled with the idea. Nothing is created automatically.
Manage funnels
Every funnel has a … menu with Edit, Rename, Duplicate, Pause / Resume and Delete. Deleting a funnel does not affect your visits or goals.
Funnels from your code
You can still define a funnel from code. defineFunnel creates the funnel the first time it is called:
zenovay('defineFunnel', 'checkout_flow', [
{ name: 'Cart viewed', url: '/cart' },
{ name: 'Checkout started', event: 'checkout_started' },
{ name: 'Purchase complete', event: 'purchase' }
]);Each step is either { name, url } for a page or { name, event } for a custom event.
The old zenovay('track', 'funnel_step', ...) call no longer feeds funnels. It is recorded as a normal custom event named funnel_step. Use page or event steps instead.
React integration
Page steps need no code. For an event step, send the event when the step happens:
import { useEffect } from 'react';
function CheckoutPage() {
useEffect(() => {
// Use the global zenovay object from the tracking script
if (window.zenovay) {
window.zenovay('track', 'checkout_started');
}
}, []);
return <div>Checkout</div>;
}Best practices
- 3 to 5 steps are easiest to read. You can use up to 10.
- Start where visitors enter the flow and end with the conversion. A goal works well as the last step.
- Pick the time window that fits the decision. Same visit suits flows people finish in one sitting; 7 or 30 days suit longer decisions, especially on sites in cookie mode.
- Name steps clearly, in words your team uses.
- Check each page step with Pick so it matches real pages.
Troubleshooting
Nobody finishes the funnel
- Step order matters. Steps only count in the order you defined.
- Check every page step. The live check in the builder shows whether the address matches real pages.
- One page view fills one step. "pricing → pricing" needs two separate views.
- Check the time window. With Same visit, all steps must happen in one visit. Switch to 7 days in the report to see visitors who finish later.
- Install the tracking script on every page. With the same tracking code, a visit continues across subdomains, for example from
example.comtodocs.example.com.
API and MCP
- MCP:
manage_funnelcreates and updates funnels, andget_funnel_analysisreturns the report. See MCP Tools. - Public API:
GET /api/v1/analytics/conversionsreturns your funnels (entries, completions, steps) and goals for the period. - For analytics summaries, see the Analytics Overview API.
On this page