Your agent report
Install the tag, change nothing for your users, and Telltale shows you, account by account, where AI agents are already working in your signed-in app. This is Your agent report, free on every plan: the first thing a new site sees in the dashboard once activity arrives.
Telltale detects AI agents, not several people sharing one login. Two people taking turns in one account look like people, and are reported that way. If you want to know about shared passwords, this report will not tell you.
What the report shows
For a window you choose (the last 14 UTC days unless you pick another, up to 90):
- Accounts using agents: customer accounts your server confirmed with at least one agent minute or one AI agent call through your MCP server or API in the period. This is the same number as "Accounts using agents" on Home and All accounts, and it matches Charge › Usage. Account IDs sent only by the page are not counted: they show beside it as "+N sent only by the page". Accounts come from the
accountIdyour server sends with identify. - Accounts with AI agent activity, ranked by agent activity (agent minutes plus agent calls through your MCP server and API, one call counting as one, the same order as Home and All accounts), each with its users and sessions: how many of the account's users and sessions had agent activity, out of all of them. An account whose agents only use your MCP server or API has a row with its calls. An account ID sent only by the page is marked "sent by the page, unconfirmed".
- One row per customer: minutes your server confirmed and minutes the page sent for the same account ID are one row, with the page's part shown apart (
pageOnlyAgentMinutes) and never charged. An ID only the page sent is its own row, marked unconfirmed. - Agent minutes per account: minutes with agent evidence, counted once per session and minute. They are not elapsed, worked or chargeable time on their own. (The JSON also carries
agentHours, the same minutes divided by 60.) - Which agents, and how we know. An agent is named only with evidence, always with how we know it and how strong that is:
| How we know | Strength | What it means |
|---|---|---|
| Verified | strong | The operator signed its requests (Web Bot Auth), or its network address is on the operator's published list. |
| Unconfirmed | weak | Named from something its tool leaves on the page, which anyone can rename. |
| Self-reported | weak | The agent named itself. Never counted as named. |
| Not named | none | Automation evidence, but nothing names the agent. |
| Behaviour | none | Classed AI agent from how the pages were used alone (medium confidence). |
"AI agent" is a category, not a claim about which model is involved.
- The Unknown share, overall and per account: the activity minutes that stayed Unknown. Unknown is not human: it means there was not enough evidence either way, and it is never counted as a person.
- Agent minutes: chargeable or not. Chargeable means what Charge › Usage counts: High confidence, from an account your server confirmed, in an agent type marked chargeable. The rest of the High-confidence minutes are free (agent type marked free) or not charged (no account your server confirmed). Medium-confidence agent time (behaviour patterns alone) is still AI agent activity, and is never charged. Each agent row also splits its minutes by confidence (
byConfidence: high, medium, low, unknown). In the JSON,agentMinutes.billable(shown as chargeable in the dashboard) is every High-confidence minute (the same figure as Usage'sbillable, and agent minutes recorded before the split was stamped count there too), andchargesplits it intochargeable,freeandnotCharged, so the report and Charge › Usage agree for the same days. Medium-confidence time also includes interactions classed AI agent that wrote no agent minute. - The verdict chart and agent minutes. The chart's AI agent slice counts minutes with only an AI agent in them. Agent minutes also count the Mixed minutes with an agent in them (a Mixed minute is one in which activity with more than one verdict arrived for the same account, for example a person and an AI agent): agent minutes = AI agent alone +
mixedWithAgent. - Visitors not signed in, apart from the accounts.
Your team: known humans
Mark your own people as known humans, and the report shows how Telltale classified them. Ideally none of them is classed AI agent; the report also shows how much of their activity stayed Unknown. If one of your own sessions was classed AI agent, the report lists it so you can look at it.
This is a trust check, never a training signal. Marking known humans never changes a verdict, a protected action or billing, and Telltale never learns or tunes from it.
Three ways to mark your team, in Your agent report › Your team:
- By user ID: the
userIdyour server sends with identify. By email domain: everyone whose identify carried an email at that domain. Send it from your server with
userTraits(needsuserId):HTTPPOST /api/v1/identify {"sessionToken": "…", "userId": "u_123", "accountId": "acct_9", "userTraits": {"email": "pat@yourcompany.com"}}Only the domain after
@is kept, lower-cased (yourcompany.com); the address is never stored.{"emailDomain": "yourcompany.com"}works too, andnullforgets it. The browser SDK cannot send it.- This is me: on one of your own sessions in Sessions, press "This is me". Its user ID is marked; a session with no user ID is marked by itself.
Only workspace owners and admins can change the list. Every change is in the audit log (it says what kind of entry changed, never the user ID or domain). Remove an entry, or clear the whole list, at any time. Erasing a user in Settings › Data & privacy also removes them from the list and forgets their email domain. Deleting the site deletes both.
One account's report
Open an account in Accounts and choose Share this account's report (Overview tab). It opens the same report for that one customer account, read-only: agent sessions (website, MCP server and API), the agents seen with how we know each, the top goals its agents worked on, with how often each worked (while AI summaries are on and named this account's sessions, the goals carry their names and the label "AI summary"; how often each worked is still measured), the issues its agents ran into (up to the last 28 days, as Issues keeps them), its checks held for review and decided, and what is chargeable in the period and this calendar month so far (UTC, from the agent-usage ledger). Only an account your server confirmed has checks and chargeable use; an account only the page named is shown by its ID and marked so.
It is shared exactly as this report is: Copy link copies a dashboard link that opens only for people signed in to your workspace, and Download (HTML) saves one self-contained page to send or print. There is no public link. Shapes and counts only: no session or user IDs, typed content, target IDs, error text or call content. When your server sends a CRM account ID, segment or owner domain on identify (Associate identity), they appear under the account's name.
Before your first report
A site with no activity yet shows "Collecting" and when the first report is ready: one day after the first activity arrives. The numbers so far are shown in the meantime.
Download, print or email
- Download (HTML) saves the report as one self-contained page that prints cleanly (or saves as PDF from the print dialog). It has no scripts, no session evidence and no typed content. Accounts appear by the name your server gave them, or their account ID.
- Copy last week’s summary copies an email-ready summary of the last complete week (Monday to Sunday, UTC): a subject line, a plain-text body and the numbers behind it, with at most five accounts and five agents. Telltale does not send it; it names accounts, so send it only to your own people.
API
These are dashboard routes: signed in, or on the loopback address in local mode. There is no server-key (/api/v1) version of the report yet; for a scheduled job, use the weekly agent report webhook or the usage API.
| Route | What it returns |
|---|---|
GET /api/admin/diagnostic-report?site=<siteId>&days=14 | The report as JSON. days 1–90, or from and to (ISO dates, to exclusive). |
GET /api/admin/diagnostic-report.html?site=<siteId>&days=14 | The report as a downloadable, printable HTML page. |
GET /api/admin/diagnostic-report/weekly?site=<siteId> | The email-ready summary of the last complete week (or days). Nothing is sent. |
GET /api/admin/account-report?site=<siteId>&account=<accountId>&source=server&days=14 | One account's report as JSON. source is server (an account your server confirmed, the default) or page (an ID only the page sent). account, agentSessions, agentMinutes, agentCalls, charge, agents, goals (with goalsSource: ai or measured), issues, approvals (null for page), chargeableThisMonth (units and calls; null for page). |
GET /api/admin/account-report.html?… | The same as a downloadable, printable HTML page. |
GET /api/admin/known-humans?site=<siteId> | The known-human list. |
POST /api/admin/known-humans | Owners and admins: {"siteId": "…", "add": {"userId": "…"}}, {"add": {"emailDomain": "…"}}, {"add": {"sessionId": "…"}} (This is me), the same with remove, or {"clear": true}. |
The JSON report's main fields: status (not-installed, collecting or ready) and firstReportAt; period; headline; totals (accounts, users and sessions with and without agents, activity minutes by verdict, unknownShare, mixedWithAgent, agentMinutes and agentHours split into billable and behaviourOnly, charge splitting billable into chargeable, free and notCharged, confirmedAccounts and confirmedAccountsWithAgents (the figures on the page), pageOnlyAccountsWithAgents (beside them), accountsWithAgents (every ID with agent evidence, the page's included, kept for API consumers); notYetSplit is kept for compatibility and is always 0); accounts (one row per account with agent activity, with its agents and how we know each); signedOut; agents; knownHumans (sessionsByClass, unknownShare, result: not-set-up, none-seen, clean or check, and the agentSessions to look at); billing; notes.