voris_agent_readiness_check
ChatGPTThe site's most recent Agent Readiness scan — how well AI assistants and crawlers can discover and use it — read from cache. It takes no arguments; the site is bound to your key. Returns the cached result with an overall score, capability level, per-check outcomes, and category breakdown, or { status: "scoring" } when no current scan is cached yet (a fresh scan is started from the dashboard). It reads only and never begins a new scan.
voris_ask_analyst
ChatGPTAsk a plain-language question about this site's analytics and get a grounded answer with its supporting metrics and caveats. Optionally pass a from/to window as UTC YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31"; it defaults to the last 7 full days. Answers are grounded in statistically significant changes only — when nothing significant is found it says so rather than inventing numbers.
voris_detect_stack
ChatGPTIdentify a project's web framework, build tool, and consent platform from signals you provide — a parsed package.json, a list of project file paths, and any response headers. Detection is deterministic and runs on the supplied signals only; it reads no files itself. It recognizes Next.js (app or pages router), React with Vite, Google Tag Manager, and plain HTML, with a generic script-tag fallback when nothing matches. Returns the detected stack, a confidence level, and the evidence behind each decision. It takes no site identifier — the site is bound to your key.
voris_generate_consent_integration
ChatGPTGenerate consent-gating code that loads Voris only after a visitor grants consent, matched to your consent platform: Cookiebot, OneTrust, or a generic IAB TCF v2.2 gate with a manual fallback hook. Pass the CMP; the site's privacy mode is resolved server-side from your key, never taken as input. A first-party-identity (Mode C) site gets the gate; cookieless modes get an honest note that no consent gate is required. Returns the files to merge plus a docs link.
voris_generate_event_call
ChatGPTGenerate a single ready-to-paste tracking call for one event — a window.vor.track(name, properties) call using the shipped Voris browser SDK. Pass the event name and optional properties with string, number, or boolean values; values are serialized safely so a quote cannot break out of the call. Returns the call snippet plus a small file you can drop into the code path where the event fires. It takes no site identifier — the site is bound to your key.
voris_get_tracking_plan
ChatGPTThe site's tracking plan — the events and properties it intends to send. Takes no arguments. Returns the saved plan with its version and source, or a well-formed empty state with docs links when no plan has been defined yet, which is the expected state for a new site.
voris_install_sdk
ChatGPTGenerate the Voris SDK install and initialization code for a detected stack, returned as file contents you paste into your project — nothing is written for you. Pass the stack from voris_detect_stack. Output is per-framework: a Next.js component, a script tag, or a Google Tag Manager snippet. The site's privacy mode is resolved server-side from your key, never taken as input — a first-party-identity (Mode C) site always gets a consent-gated loader that defers loading until the visitor consents. Returns the files to create or merge plus a docs link.
voris_lint_tracking
ChatGPTStatically lint tracking code you provide for common mistakes, returned as structured findings — nothing is rewritten. Pass files as { path, contents }. It flags personal data passed into a track() call, the same event fired more than once in a file, and an SDK load with no consent gate on a first-party-identity (Mode C) site. Each finding carries a rule id, severity, file path, line, and category only — never the matched value or a snippet of your code. It takes no site identifier; the site and privacy mode are bound to your key.
voris_propose_tracking_plan
ChatGPTPropose a tracking plan for the site — the events and properties worth capturing — derived from the site's most recently saved plan, or a small starter set of common product events when none exists yet. It takes no arguments; the site is bound to your key. This proposes only and never saves: review the events, adjust properties to match your app, and save from the dashboard. Returns the proposed plan and a short rationale.
voris_query_ai_citations
ChatGPTWhich AI answer engines cite this site over a date range, and the traffic and conversions those citations drive. Dates are UTC calendar days as YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31". Optionally filter to one engine and include a finer per-citation downstream breakdown. Returns { available: false, reason } when the site has no live tracked queries, otherwise the top cited pages (limit up to 200) with citation counts and AI visits/conversions.
voris_query_ai_visibility
ChatGPTHow AI assistants and crawlers engage the site over a date range, grouped by operator (which AI), ai_source (referral source), or landing_page. Dates are UTC calendar days as YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31". Returns per-group session counts (plus conversions for ai_source); the landing_page group is a top list (limit up to 200). This reports bot and agent traffic, so there is no humans_only option.
voris_query_conversions
ChatGPTGoal conversions over a date range: conversion counts per goal, with revenue when a goal tracks it, and an optional breakdown by referrer, country, or device. Dates are UTC calendar days as YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31". Pass a goal_id to scope to one goal (it must belong to this site). humans_only defaults to the site's dashboard setting.
voris_query_metrics
ChatGPTSite traffic metrics over a date range: a daily pageview series plus totals for pageviews, unique visitors, bounce rate, and average session length. Dates are UTC calendar days as YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31". Optionally request a subset of metrics. Session-derived metrics return null with a reason on privacy-mode-A sites (never fabricated). humans_only defaults to the site's dashboard setting; set it to true for humans only or false to include all bot traffic.
voris_query_top
ChatGPTTop values for one traffic dimension over a date range — pages, referrers, countries, devices, utm_sources, entry_pages, or exit_pages — ranked by count. Dates are UTC calendar days as YYYY-MM-DD, e.g. from "2026-01-01" to "2026-01-31". Returns rows of { key, value } plus pagination (limit up to 200; pass the returned next_cursor to page). humans_only defaults to the site's dashboard setting.
voris_tail_events
ChatGPTLive tail of this site's development events, for debugging that events actually arrive. It takes no site identifier — the site is bound to your key — and only development-classified events are streamed; production traffic never enters the tail. A live stream cannot be returned in one call, so this returns connection details instead: a Server-Sent Events endpoint to open with your key, plus your plan's limits (concurrent streams and maximum duration). Optionally pass durationMs to cap a stream. Custom properties are scrubbed of personal data.
voris_validate_setup
ChatGPTCheck whether Voris tracking works end to end for this site and report what to fix. It takes no arguments; the site is bound to your key. It sends one signed test event server-side and confirms it arrives, checks the recorded privacy mode, and inspects the site's homepage for the tracking script, a consent platform, first-party delivery, and a Content-Security-Policy that could block it. Returns a per-check result of pass or warn with a fix hint, plus an overall status. The test event is marked as development traffic and never affects dashboards or billing.