Build custom analytics with natural language
The 17 pre-built dashboards cover most reporting needs. For everything else, the custom analytics builder lets you ask a question in plain English and get a chart back.
Behind the scenes the builder generates SQL against your tenant’s data warehouse and a chart spec for visualization. You don’t write either — just describe what you want.
Before you start
- Admin permissions on Analytics
- A clear question — vague prompts produce vague charts
Steps
- Open Analytics → Custom Analytics.
- Click New module.
- In the chat panel, describe the metric or question: > “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, click Save module. Give it a title and description.
- The module appears in your personal Custom Analytics dashboard, ready to revisit.
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
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 personal by default — only you see them in your Custom Analytics view. To share with the team:
- Export the chart as an image (right-click → save) for ad-hoc shares
- Discuss in your team’s reporting cadence with the saved module open
- (Future) tenant-shared modules — not currently available
For team-wide standardization, prefer the 17 pre-built views or the export-to-CSV flow into a shared BI tool — see Export analytics data.
When to use this vs the pre-built views
- Your question maps to one of views 1–16 — Your question doesn’t fit any 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, 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.