Funnels Pro
Multi-step conversion paths in Clamp. Filter by cohort, country, device, or UTM. Create via MCP.
Creating a funnel
A funnel is a sequence of steps. Each step is either a pageview (prefixed with pageview:) or a custom event name.
"Create a funnel from pricing page to signup to checkout"
→ create_funnel({
project_id: "proj_xxx",
name: "pricing-to-checkout",
steps: [
"pageview:/pricing",
"signup",
"checkout_completed"
]
})Conversion rates are calculated immediately. You don't need to wait for data to accumulate.
Step syntax
| Format | What it matches |
|---|---|
pageview:/pricing | A pageview on the /pricing path |
pageview:/blog/* | A pageview on any path under /blog/ |
signup | A custom event named "signup" |
checkout_completed | A custom event named "checkout_completed" |
Steps are evaluated in order. A visitor must complete step 1 before step 2 counts, and so on. The funnel shows the drop-off between each step.
Cohort filtering
Once a funnel exists, you can query it with cohort filters to compare conversion across segments.
| Filter | Example |
|---|---|
country | "US", "DE" (ISO 3166-1 alpha-2) |
channel | "organic_search", "paid", "direct" |
device_type | "mobile", "desktop", "tablet" |
utm_source | "google", "newsletter" |
utm_campaign | "spring-launch" |
Comparing segments
To compare conversion between two cohorts, query the same funnel twice with different filters.
"Compare funnel conversion for US vs Germany"
→ get_funnel({ name: "pricing-to-checkout", country: "US" })
→ get_funnel({ name: "pricing-to-checkout", country: "DE" })Device and channel segmentation
"How does the pricing-to-signup funnel convert on mobile?"
→ get_funnel({ name: "pricing-to-signup", device_type: "mobile" })
"What's the funnel conversion for visitors from Google?"
→ get_funnel({ name: "pricing-to-signup", channel: "organic_search" })Single-event funnels
You can create a funnel with a single step to use cohort filtering on any event. This answers questions like "how many mobile users from Germany signed up?" without needing a multi-step funnel.
"How many mobile users from Germany signed up?"
→ create_funnel({
name: "signup-cohort",
steps: ["signup"]
})
→ get_funnel({
name: "signup-cohort",
country: "DE",
device_type: "mobile"
})Funnel response
Each funnel query returns step-by-step results:
{
"name": "pricing-to-checkout",
"steps": [
{ "step": "pageview:/pricing", "visitors": 1200 },
{ "step": "signup", "visitors": 240 },
{ "step": "checkout_completed", "visitors": 48 }
],
"overall_conversion": 4.0
}overall_conversion is the percentage of step 1 visitors who completed the final step.