Funnels
Analyze unsaved funnels and read or manage saved Faurya funnels through MCP.
Funnels tools
The funnels feature includes read and write tools. Read access can analyze unsaved funnels and inspect saved funnels. Write access can create, update, and permanently delete saved funnels.
Supported access levels
| Access | Supported | Allows |
|---|---|---|
| Read | Yes | faurya_analyze_funnel, faurya_list_funnels, faurya_get_funnel. |
| Write | Yes | faurya_create_funnel, faurya_update_funnel, faurya_delete_funnel. Write implies read. |
Role requirements and site scoping
Funnels tools require the matching funnels:read or funnels:write scope for the selected site. Supply siteId for multi-site connections.
Funnel step model
faurya_analyze_funnel accepts unsaved analysis steps with type (page, event, goal) and value, up to 10 steps. Saved funnel tools accept 1-8 ordered steps. A full page step can use:
{
"order": 1,
"id": "step_1",
"name": "Visits pricing",
"type": "page",
"condition": "Equals",
"value": "/pricing"
}Saved page conditions are Equals, Contains, Starts With, Ends With, Does not equal, Does not contain, and Wildcard pattern. Goal step conditions are Completes and Does not completes. Page paths are normalized to a single leading slash.
Tool summary
| Tool | Access | Purpose |
|---|---|---|
faurya_analyze_funnel | Read | Analyzes an unsaved page, event, or goal funnel. |
faurya_list_funnels | Read | Lists saved funnels with cursor pagination. |
faurya_get_funnel | Read | Reads one saved funnel and ordered steps. |
faurya_create_funnel | Write | Creates a saved dashboard funnel. |
faurya_update_funnel | Write | Updates funnel name or steps. |
faurya_delete_funnel | Write | Permanently deletes a saved funnel. |
Common errors
SITE_SCOPE_REQUIRED, INSUFFICIENT_SCOPE, VALIDATION_ERROR, INVALID_FUNNEL_STEPS, INVALID_FUNNEL_STEP, INVALID_LIMIT, INVALID_CURSOR, NOT_FOUND, and RATE_LIMITED.
faurya_analyze_funnel
What it does
Analyzes an unsaved page, event, or goal funnel over a selected period.
Permission required
Funnels: Read.
When to use it
Use for one-off funnel analysis before saving a dashboard funnel.
Example prompt
Analyze a funnel from /pricing to signup over the last 30 days.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
period | object | No | start, end, timezone. |
steps | array | Yes | 1-10 steps; each has optional type (page, event, goal) and value max 512 chars. |
dimensions | string[] | No | Up to 2 public dimensions. |
limit | integer | No | Max 200. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"period": { "start": "2026-07-01", "end": "2026-07-18" },
"steps": [
{ "type": "page", "value": "/pricing" },
{ "type": "goal", "value": "signup" }
]
}Output
data contains conversion counts, drop-off, rates, and optional breakdown rows.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"steps": [
{ "name": "/pricing", "visitors": 120 },
{ "name": "signup", "visitors": 24 }
],
"conversionRate": 0.2
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_FUNNEL_STEPS, INVALID_FUNNEL_STEP, INVALID_LIMIT.
Notes
This does not create or change a saved funnel.
faurya_list_funnels
What it does
Lists funnels saved in the selected Faurya site.
Permission required
Funnels: Read.
When to use it
Use to discover saved funnel IDs before reading, updating, or deleting one.
Example prompt
List my saved funnels.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Positive integer, max 100. |
cursor | string | No | Cursor max 512 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "limit": 20 }Output
data contains saved funnels and optional nextCursor.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"funnels": [
{ "id": "funnel_example", "name": "Pricing to signup", "steps": 2 }
],
"nextCursor": null
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INVALID_CURSOR, INSUFFICIENT_SCOPE.
Notes
This is read-only and cursor-paginated.
faurya_get_funnel
What it does
Returns one saved funnel and its ordered steps.
Permission required
Funnels: Read.
When to use it
Use to inspect a saved funnel before updating or analyzing similar behavior.
Example prompt
Show the saved funnel funnel_example.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | 1-256 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "funnelId": "funnel_example" }Output
data contains the funnel ID, name, and ordered steps.
Example output
{
"success": true,
"requestId": "req_example",
"data": {
"id": "funnel_example",
"name": "Pricing to signup",
"steps": [
{
"order": 1,
"id": "step_1",
"name": "Visits pricing",
"type": "page",
"condition": "Equals",
"value": "/pricing"
}
]
},
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
NOT_FOUND, INSUFFICIENT_SCOPE, VALIDATION_ERROR.
Notes
This does not analyze conversion performance. Use faurya_analyze_funnel for analysis.
faurya_create_funnel
What it does
Creates a saved funnel that appears in the Faurya dashboard.
Permission required
Funnels: Write.
When to use it
Use when the user clearly wants to save a reusable dashboard funnel.
Example prompt
Create a saved funnel named Pricing to signup with pricing and signup steps.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | 1-160 chars. |
steps | array | Yes | 1-8 simple or dashboard steps. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"name": "Pricing to signup",
"steps": [
{
"order": 1,
"id": "step_1",
"name": "Visits pricing",
"type": "page",
"condition": "Equals",
"value": "/pricing"
},
{
"order": 2,
"id": "step_2",
"name": "Completes signup",
"type": "goal",
"condition": "Completes",
"value": "signup"
}
]
}Output
data contains the created funnel.
Example output
{
"success": true,
"requestId": "req_example",
"data": { "id": "funnel_example", "name": "Pricing to signup", "steps": 2 },
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
INSUFFICIENT_SCOPE, INVALID_FUNNEL_STEPS, INVALID_FUNNEL_STEP, VALIDATION_ERROR.
Notes
This changes persistent Faurya configuration. Confirm with the user before calling.
faurya_update_funnel
What it does
Updates the name or ordered steps of a saved funnel.
Permission required
Funnels: Write.
When to use it
Use to rename a funnel or replace its step definition.
Example prompt
Rename funnel_example and add a docs page step.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | 1-256 chars. |
name | string | Conditional | 1-160 chars. Required if steps is omitted. |
steps | array | Conditional | 1-8 steps. Required if name is omitted. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{
"siteId": "site_example",
"funnelId": "funnel_example",
"name": "Pricing to signup v2"
}Output
data contains the updated funnel.
Example output
{
"success": true,
"requestId": "req_example",
"data": { "id": "funnel_example", "name": "Pricing to signup v2" },
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
NOT_FOUND, INSUFFICIENT_SCOPE, INVALID_FUNNEL_STEPS, VALIDATION_ERROR.
Notes
Only supplied fields are changed. Confirm intended changes before calling.
faurya_delete_funnel
What it does
Permanently deletes a saved funnel from the selected site.
Permission required
Funnels: Write.
When to use it
Use only after the user clearly confirms deletion.
Example prompt
Delete funnel_example after I confirm it is no longer needed.Input
| Parameter | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | 1-256 chars. |
siteId | string | Conditional | Required for multi-site connections. |
Example MCP input
{ "siteId": "site_example", "funnelId": "funnel_example" }Output
data confirms deletion.
Example output
{
"success": true,
"requestId": "req_example",
"data": { "deleted": true, "funnelId": "funnel_example" },
"meta": {
"warnings": [],
"pagination": { "nextCursor": null, "hasMore": false }
}
}Common errors
NOT_FOUND, INSUFFICIENT_SCOPE, VALIDATION_ERROR.
Notes
Destructive: deletion is permanent in the MCP handler description. Require explicit confirmation.