Skip to main content
A report is a written analysis of your voice AI operation — the kind of thing a business analyst would put together in a real BPO. Where a finding is the durable record of one recurring problem and a change is the record of a fix, a report answers an open-ended question about how the operation is running: “Why did our conversion go up in May?”, “How are we handling the after-hours scenario?”, or “What’s different between agent A and agent B in the A/B test?” Reports live under Reports in the sidebar, scoped to your organization (not to a single agent). Transfer analysis and Cost report are live reports with dates and exact company call scope. See operational workflows for setup, API access and interpretation. Saved written reports below are organization-wide snapshots. Their list and content are hidden while a company is selected; return to All agents to read them.

Saved monitor reports

Open Reports → Monitor reports to group up to 20 monitors. Owners and admins choose a name, company, metadata filters and timezone. All filters intersect each monitor’s configured scope. A saved report uses its own scope, independent of the sidebar company filter; it does not change which calls a monitor evaluates. The default period is the previous complete Monday–Sunday in the report timezone. Choose up to 31 calendar days and download all selected monitors together as CSV or JSON. The table separates calls in scope, evaluated calls, unscored results and calls without a result. Affected rate uses evaluated calls as its denominator, without extrapolating sampling. No evaluations means “No data”. Only the current monitor version counts. Enable Send this report every week and enter a public HTTPS webhook URL and a signing secret of at least 16 characters. Reports run Mondays at 09:00 in the saved timezone and arrive within the scheduler’s 15-minute interval. Delivery history shows retries, failures and downloadable snapshots. Retries preserve the snapshot and delivery ID; your receiver should deduplicate that ID. The webhook includes Idempotency-Key, X-Zelto-Delivery-Id, X-Zelto-Timestamp and X-Zelto-Signature. Verify v1= plus the hexadecimal HMAC-SHA256 of timestamp + "." + rawBody using your signing secret. Acknowledge with 2xx. The body is { "type": "monitor_report.weekly", "deliveryId": "...", "report": { ... } } and contains aggregate counts, not transcripts or call evidence. You can also pull GET https://api.zelto.ai/v1/reports/monitors/REPORT_ID?from=2026-09-07&to=2026-09-13 with your organization’s API key in Authorization: Bearer YOUR_API_KEY. Find REPORT_ID in the saved view’s id URL parameter. Add format=csv for a spreadsheet export or deliveryId=DELIVERY_ID for a frozen historical snapshot. Omit both dates to use the previous complete week. The Reports feature must be included in your plan.

Requesting a report

Press Request report and describe what you want to understand: The report is created immediately and opens to its own page. The body starts empty — you (or, later, an automated job) fill in the analysis.

Generation status

Every report carries a generation status shown as a badge on the list and detail pages: Automated, AI-generated reports are not available yet, so a requested report sits in Waiting for generation. You can write the analysis by hand in the editor in the meantime — the body is fully editable regardless of status.

Creating and editing from chat or the API

You don’t have to use the Request report button. Ask Zelto in chat — “create a report titled … about …” — and it proposes the report for you to confirm before it’s saved. The same actions are available to scripts and external agents over the MCP server as the create_report and update_report tools (with list_reports / get_report to find and read existing ones), so an automated workflow can file a report or update its title, request, body, or status programmatically.

Anatomy of a report

Data widgets

A data widget turns a report from a static write-up into a live dashboard. It runs a query against your analytics store and renders the result as a table or chart that re-runs every time the report is opened, so the numbers stay current as new calls come in. In the report editor, type / and choose Data widget, then fill in: Press Run to execute it. Use the refresh button in the widget header to re-run on demand, the pencil to change the query, and the chart/table toggle to switch views. Results are capped at the first 1,000 rows. Data widgets are read-only and scoped to your organization: every query is automatically restricted to your org’s rows on the analytics tables, and only SELECT / WITH / DESCRIBE / EXPLAIN / SHOW statements are allowed — writes and cross-organization access are rejected. The same querying capability is available conversationally through Ask Zelto and over the MCP server.
  • Findings — the recurring problems a report often explains.
  • Changes — the fixes that follow from what a report uncovers.
  • Agents — the agents whose behavior a report analyzes.
Monitor reports also support Download PDF, including historical deliveries. PDFs include the company, period, timezone, saved filters, metrics and evaluation coverage. Use format=pdf&locale=en-us on the same API endpoint; supported PDF locales are en-us, es and pt. Weekly webhooks send JSON; use the delivery ID and your API key to download that delivery as a PDF.