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 Overview and Conversations 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. New-conversation counts also read live application data and follow the page date range unless your question names another period. 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
- In the Analytics rail, under My boards, open a board you own (for example My board), open its More board actions menu and choose Make a custom card. If you don’t see it, ask your admin or superadmin whether Custom Analytics is enabled for your tenant and your role.
- The chat builder opens beside the board. (On the Custom cards page, reached from a board’s Edit custom cards, click Build new insight; with no saved cards yet the 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 the selected report tab is one shared with you that you don’t own (the card then goes to your My board), 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 under Custom cards on the board or 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, new-conversation and call counts follow the Overview’s New conversations card and the Calls page, so the numbers match what you see there. Answered calls means an agent picked up. These counts exclude spam, simulations, demo and test conversations; new-conversation counts also use the channel the conversation arrived on and exclude imports and merged conversations. For figures that still use snapshots, the chart summary may note on long historical ranges 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 boards 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 pages such as 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 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 Overview for headline support KPIs, 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.