Build custom analytics with natural language
The standard analytics views cover most reporting needs. For everything else, the custom analytics builder lets you ask a question in plain English and get a chart back.
Before building custom analytics for executive support KPIs, weekly trend reporting, or top issue-category questions, check Customer Support - Overview first — those questions may already be answered there.
Behind the scenes the builder generates SQL and a chart spec for visualization. Historical and date-range reporting runs against your tenant’s data warehouse in BigQuery. For current-state questions, or when it needs to resolve IDs into names, the builder may use live application data. You don’t write the SQL or chart spec — just describe what you want.
Before you start
- Admin permissions on Analytics
- Custom Analytics enabled for your tenant
- A clear question — vague prompts produce vague charts
Steps
- If available, open Analytics → Custom Report (the analytics view is labelled Custom Report; this feature is often called Custom Analytics). If you don’t see it, ask your admin or superadmin whether it is enabled for your tenant.
- Click Build new insight. On a tenant with no saved cards yet the same button reads Build your first insight.
- In the chat panel, type the metric or question. You can also attach images by dragging them into the panel, pasting them, or using the image button beside Send: > “Average first-response time on email, by team, last 30 days”
- The builder responds with:
The SQL it generated (you can review it)
A chart specification (which chart type, dimensions, measures)
The rendered chart inline - Iterate. If the chart isn’t what you wanted, refine: > “Same chart but break it down by week” > “Switch to a line chart” > “Add a filter for VIP contacts only”
- When the chart is right, save it. The save button names its destination, so its label varies: Save to report when a report tab is selected, Save to General when it isn’t, Save as a snapshot for a chart with no live query, and Save as new card when you already have a card open. Once it succeeds the button reads Saved.
- The card appears on the report tab you saved it to, ready to revisit.
Each saved card carries its own discussion. To continue from a card’s chat, reopen it from the card’s overflow menu with Update…; follow-up prompts start from that card’s saved chat, and Update card replaces that card’s chart rather than creating a second one.
The word Pin means something else here — it belongs to the pinned-pages bar at the top of the app, not to saving an analytics card.
Prompt patterns that work well
- “X by Y” —
Average resolution time by channel, last 30 days - “X over time” —
Reopen rate over the last 90 days, weekly - “X compared to Y” —
Compare CSAT in chat vs email, last quarter - “Top N by X” —
Top 10 agents by conversations resolved this month - “What’s driving X?” —
What's driving the increase in resolution time over the last 14 days?(the builder picks an appropriate breakdown)
The cleaner the question, the better the chart. “Last 30 days” beats “recently”; “by team” beats “broken down somehow.”
What the builder can do
- Aggregate metrics: count, average, median, percentile, sum
- Time-bucketed dimensions: by hour, day, week, month
- Categorical breakdowns: by channel, team, agent, country, tag, custom field
- Filters: any dimension or metric, with comparators
- Combinations: average X, broken down by Y, over time, filtered to Z
For conversation-volume or intake questions, counts include voice and phone conversations from the conversation snapshot source. For long historical ranges, the chart summary may note that older conversations without a stored creation timestamp are dated by their last activity instead, which can shift some counts into later periods.
What the builder can’t do (yet)
- Cross-tenant comparisons (your tenant only)
- Predictions (“forecast next quarter”) — analytical, not predictive
- Joins to external systems (your data warehouse for that)
- Edits to the SQL after it’s generated (you can re-prompt for a different version, but can’t hand-edit)
Sharing modules
Modules you save are private by default — only you see them in your Custom Analytics view until you share them. To collaborate with specific users or teams, open the share sheet or right-pane sharing surface for the saved report and add the people or teams who should have access.
Report owners manage the access list. People you share with can read the cards, refresh them, and export the report as a PDF without taking ownership of the saved report.
For team-wide standardization, share the saved report with the right users or teams. For broader reporting workflows, prefer the pre-built views, Customer Support - Overview, or one of the export paths into a shared BI tool — see Export analytics data. Note that a saved card exports as a PDF, not as CSV: the only CSV export in Analytics is the drill-down pane’s, which carries conversation rows rather than a chart’s aggregated series.
When to use this vs the pre-built views
- Your question maps to a standard view or Customer Support - Overview — Your question doesn’t fit any standard view
- You want filtering and drill-down — You want a single saved module
- You want AI Insights and chat — You want full chart control
- Your team standardizes on the dashboards — You’re investigating a one-off question
A productive pattern: start in the pre-built views, including Customer Support - Overview for support KPI and trend questions, then drill down with filters and AI Insights. If you find yourself re-filtering the same way every Monday morning, that’s a candidate for a custom analytics module.
Troubleshooting
- Symptom: The chart shows zero data even though the metric exists. Fix: The filter is too narrow, or the date range excludes the data. Re-prompt with a wider date range.
- Symptom: The builder generates a chart but it’s not what you asked for.
Fix: Re-prompt with more specifics. Specify the metric (
average resolution time), the dimension (by team), and the time period (last 30 days) explicitly rather than relying on inference. - Symptom: SQL the builder generated looks weird. Fix: SQL inspection is for understanding, not editing. If the result is wrong, re-prompt; if you want full SQL control, your data warehouse is the right tool, not Custom Analytics.