Website analytics

See where people drop off

analytics_funnel · Reads only · Markdown

How many visitors did each step of a path in order, and how many dropped out at each one.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

Of the people who look at a bike, how many put it in the cart, and how many actually pay?

Your agent callsanalytics_funnelFree*

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "site": "halversoncycle.example",
  "steps": [
    "/bikes/*",
    "/cart",
    "/checkout",
    "Purchase"
  ],
  "period": "30d"
}
What comes back
{
  "site": "halversoncycle.example",
  "period": {
    "from": "2026-09-15",
    "to": "2026-10-14"
  },
  "visitors_in_period": 4,
  "steps": [
    {
      "step": 1,
      "name": "/bikes/*",
      "page": "/bikes/*",
      "visitors": 4,
      "percent_of_first": 100
    },
    {
      "step": 2,
      "name": "/cart",
      "page": "/cart",
      "visitors": 2,
      "percent_of_first": 50,
      "percent_of_previous": 50,
      "dropped": 2,
      "median_seconds_from_previous": 0
    }
  ],
  "conversion_percent": 25
}

Use it when

Someone asks where visitors give up on the way to an order, a sign-up or a booking.

What it does

How many visitors did each step in order (pages and events, 2 to 8), the share kept at each step, how many dropped, and the median time between steps. Steps happen in order on the same day; anything may happen between them.

What comes back

Each step with the visitors who reached it, the share of the first step and of the step before, how many dropped and the median time from the step before, and the overall conversion rate. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
siteRequiredstringThe site's domain (e.g. halversoncycle.example) or its site_id. 4 to 253 characters.
stepsRequiredarray of strings or objectsEach a page ("/pricing", * for any part), an event name ("Signup"), or {"page"|"event", "props", "name"}. 2 to 8 items.
steps[].namestringUp to 60 characters.
steps[].pagestringA page reached, like /thanks or /order/*/done. Up to 500 characters.
steps[].eventstringA custom event, like Signup, or one analytics_define_events made. Up to 60 characters.
steps[].propsobjectOnly events with these props, like {"plan": "pro"}.
steps[].notifybooleanSend analytics.goal_completed the moment a visitor reaches it, with where they came from and what they saw.
periodstringOne of: today,yesterday,7d,30d,90d,month,last_month,12mo,custom. Default: 30d.
fromstringWith period custom: the first day, 2026-10-01. Up to 10 characters.
tostringWith period custom: the last day. Up to 10 characters.
filtersobjectNarrow the stats: page and entry_page ("/blog/*", * for any part), goal (a goal's name), event, channel (Direct, Organic search, Paid search, Organic social, Paid social, AI assistants, Email, Referral, Affiliates, Display, Paid other, Other campaigns), source ("Google", "Direct"), referrer, campaign, medium, term, content, country ("DE"), device (desktop, tablet, mobile), browser, os. Example: {"channel": "Organic search", "device": "mobile"}.

The call

Over MCP, call analytics_funnel on https://api.conecto.chat/mcp/analytics. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/analytics_funnel \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"site":"halversoncycle.example","steps":["/bikes/*","/cart","/checkout","Purchase"],"period":"30d"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No site the business counts has that domain or site_id.Call analytics_list_sites and use a domain from it.
invalid_input400The funnel has fewer than 2 or more than 8 steps, a step is not a page or an event, or the period or a filter is not valid.Send 2 to 8 steps, each a page like /cart or an event name like Purchase, and fix what the message names.
rate_limited429The business ran more analytics reports this minute than its limit allows.Wait a minute, then call again.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md