Insights report
How shoppers are using your assistant over a date range you choose (volume, depth, tool usage, and when they show up), compared against the period before it.
The Insights report is one of your site's analytics views: what real shoppers are doing when they talk to your assistant, over a date range you pick. Open Reports in the sidebar and choose Insights, or go to /dashboard/sites/{siteId}/reports/insights. It's the last item in the Reports section, after Overview, Conversations, Sales, Engagement, and Quality.
Shares one filter bar with every Analytics surface
Every report in the Reports section (Overview, this one, Sales, Engagement, and Quality), plus the Conversations list and the Quality and Engagement reports' own full-table views (Feedback, Exposures), open with the same header row: a date-range picker and, on the five reports, a compare-to-previous-period toggle (both documented once, below) and the same filter bar. The bar itself, and which of its filters a given surface offers, is documented next; every other page in this section links back here rather than repeating it.
This report has no conversation list of its own. For a filterable, searchable table of the underlying conversations, see the Conversations page, or the Overview report's own recent-conversations panel with a See all link into it.
Filters
Above the charts, a filter bar narrows every figure on the report to the shoppers you want to look at. It always starts with the date range (below) and a Channel filter (the only two controls shown on every Analytics surface), followed by an Add a filter button and, once anything deviates from the defaults, a Reset button that shows how many filters are currently active.
Up to three more filters are available, one click away behind Add a filter:
- Agents: narrows to one or more of the site's agents.
- Customer feedback: narrows to conversations with a Positive feedback, Negative feedback, or No feedback rating (check any combination: checking both Positive feedback and Negative feedback, for instance, shows every conversation that got a rating either way).
- Panel language: narrows to one or more of the site's enabled chat panel languages, or to Unknown for a conversation with none recorded.
- Subject or keyword: a free-text search. Add one or more terms and a conversation must match every one of them (in its subject) to stay in. This is the closest equivalent to the old search box, but it's now an added filter with its own trigger and term chips rather than an always-visible box.
Adding one opens its panel right away; clicking a filter's own × removes it from the bar (its value resets when you do). Channel narrows every figure to any combination of Web, Hosted Page, and Playground (at least one stays checked) and defaults to every channel except Playground, so your own testing doesn't inflate a report meant to describe real shopper activity. If you've only tested in the Playground so far, this report shows its empty state even though you have Playground history. Check Playground back on to see it.
Not every surface offers the same filters
The Quality report deliberately leaves out Customer feedback: narrowing by it would force the report's own satisfaction ratio to a constant, which defeats the point of the report. Its own full-table view, the Feedback list, doesn't have that problem and offers all five. The Sales report has no commerce data yet, so its bar carries only the date range. The Engagement report and its Exposures list read a separate event ledger with no channel, agent, feedback, or language column at all, so their bar carries only the date range too. The Resolution and Issues filters, which read the conversation labels, are offered on the Conversations list only. If a filter you added on one surface doesn't apply on a surface you navigate to next (Engagement, say), the bar says so ("N filters don't apply here") with a link to see which ones and an option to drop them, rather than silently ignoring them.
Adding a filter, removing it, and which values you've picked all follow you between every Analytics surface: pick Agents and narrow to two agents here, and the Conversations list opens with the same two agents selected. This is remembered for your current browser session only (a cookie with no expiry). Closing your browser clears it, and your next visit starts back at the defaults (Channel only, every channel but Playground). The date range follows a slightly different rule; see Choosing a date range below.
A range reaching past retention shows a notice
Conversation transcripts are kept for 12 months. If the selected date range reaches further back than that, a notice appears above the charts naming the cutoff date. The report's figures only ever cover what's still retained, never a silently partial total for the part of the range that's already been purged. This applies to the reports built from conversations: Overview, Insights, Quality (and its Feedback list), and the Conversations list.
Last year is always partial on those surfaces, and the notice shows practically every time you pick it. The 12-month cutoff moves forward one day at a time, so in early January almost all of last year is still there, by July about half of it is, and in late December only the last few days remain. The same selection returns smaller totals as the year goes on: that is older conversations being purged, not a bug.
The Engagement report and a widget's Performance tab mostly read event data, which is kept for 24 months, so the 12-month cutoff doesn't cut those figures short and they show no notice. Two exceptions. On Engagement, Conversations started and Engagement rate show a dash for any range that ends before that measurement began, which today includes Last year (2025). On the Performance tab, Messages per conversation is counted from the transcripts, so it follows the 12-month cutoff, with no notice.
Overview's engagement rate can go blank under a filter
On the Overview report specifically, the Engagement rate tile reads the same event ledger as the Engagement report: no channel, agent, feedback, or language column. If the filter bar's Channel selection excludes Web (the only channel that ledger writes to), or if any of the other four filters narrows the scope at all, that one tile shows "Doesn't reflect the current filters" instead of a number, distinct from its usual "No widget traffic yet" empty state. The rest of the Overview report's tiles keep reflecting the filters normally.
What it shows
Everything is scoped to the current site, the selected date range, and the filters above.
- Conversations over time: a chart with one point per day: how many conversations started that day.
- Avg. messages / conversation: total messages exchanged (shopper and assistant combined), divided by the number of conversations in range.
- Assisted rate: the share of conversations where the assistant used at least one tool (a built-in chat tool like the product carousel, or a connector tool such as a Shopify catalog search) rather than answering from the conversation alone.
- Avg. conversation length: the average time between a conversation's first and last message. A conversation with only one message (or none) counts as zero length rather than being left out of the average.
- Conversations by agent: a bar chart of conversation counts per agent on this site, including agents with zero conversations in the range, so you can see who's getting no traffic, not just who's busiest. Each bar shows its exact count next to it, not only on hover.
- Tool usage: a bar chart of each tool's share of all tool calls in range, so you can see which chat tools and connector tools actually get used. Each bar shows its exact count next to it, not only on hover. A connector's tool is labeled with the connector's name (e.g. "your-shopify-store · search_catalog") so it's clear which server it came from. If nothing invoked a tool in the range, this shows an explicit empty state instead of a blank chart.
- Chat panel language: a bar chart of conversation counts per chat panel language (the language the panel was displayed in, not the language the shopper wrote in), including an Unknown bar for conversations with no recorded language.
- Impressions & clicks: two bars: total recommendation impressions and total clicks on in-chat product cards, over the selected range (the same events listed in the raw Events debug table under Settings → Diagnostics). Shows an explicit empty state when the range has neither.
- Peak activity: a strip with one value per hour of the day (0–23, in the report's own time reference; see the caveat below), showing when conversations tend to start.
If the site has zero conversations at all in the selected range and channel selection, the whole report shows a single empty-state message instead of a page of blank/zeroed charts.
Choosing a date range
Click the date button above the charts to open the range picker: a list of nine named presets (Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, Year to date, Last year, Last 12 months) next to a calendar for a custom range you pick by hand. Last year is the previous calendar year, 1 January to 31 December, both days included. Picking a preset applies it immediately; for a custom range, pick a start and end date directly on the calendar and click Apply. This is the same preset list used by every other date-range picker in the dashboard (the audit log, a widget's own Performance tab).
Whenever the current range matches one of the nine presets exactly, the date button itself states the preset's name (e.g. "Last 30 days") instead of the resolved dates. That includes a range you pick by hand on the calendar: select 1 January to 31 December of last year and the button reads "Last year". A range that doesn't line up with any preset (hand-picked, or carried in a bookmarked link) shows the explicit dates on the button, since there's no preset name to state instead.
The chosen range shows up in the page URL (?from=…&to=…), so a link to the report is shareable and reopens to the same range. Without from/to in the URL (following a plain sidebar link, say), the report falls back to whatever range you last picked on this browser, and finally to Last 30 days if nothing was ever picked. How long that fallback is remembered depends on what you picked: choosing a named preset remembers it on this browser for up to a year (so it survives closing your browser); picking a custom range on the calendar is remembered for your current browser session only, the same rule the other four filters follow (see Filters above).
Comparing to the previous period
The Compare to previous period checkbox lives inside the date-range panel, beneath the preset list, off by default. Check it to add a comparison to every KPI tile and to the volume chart (as a dashed overlay, lined up by day-of-period rather than by calendar date). "Previous period" always means the immediately preceding stretch of the same length as your selected range. For a custom or uneven range (say, 5 days), that's the 5 days right before it, not a calendar concept like "the same week last month." Each KPI's badge shows the change as a compact delta (e.g. "+12%"); it's highlighted in your brand color when the metric is trending up, and stays in the neutral style otherwise: a falling number isn't automatically bad news for every metric here. The tile's footer is a fixed one-line description of what the metric measures, not a repeat of the trend or the exact compared dates.
On Last year, the previous period is the same number of days immediately before it, not the calendar year before. For 2025 (365 days), that's 2 January to 31 December 2024, because 2024 is a leap year and has 366 days. On the reports built from conversations, that whole period is past the 12-month retention cutoff, so the previous-period figures cover little or nothing and the deltas aren't meaningful. On the Engagement report, the tiles that show a figure compare against event data kept 24 months, so the earliest part of that period is purged too for most of the year, and no notice says so. While Last year is 2025, Conversations started and Engagement rate show a dash, so they have no comparison at all.
Unchecking it drops the comparison and previous-period figures everywhere. Unlike the date range, this toggle isn't remembered between visits: it resets to off the next time you open the report unless the URL still carries ?compare=true.
The per-agent breakdown, tool usage, chat panel language, impressions & clicks, and peak-activity charts don't have a previous-period comparison. Only the four KPI tiles and the volume chart do.
What this report doesn't cover (yet)
- No revenue or commerce outcomes. This report is entirely about conversation activity (volume, depth, tool usage), not sales, conversions, or cart value. That data isn't captured yet.
- No export. There's no CSV, PDF, or image export of this report today.
- Day and hour grouping use the database's clock, not your dashboard time zone. ⚠ Unlike the rest of the dashboard (which formats dates in your saved time-zone preference), the day buckets in the volume chart and the hours in the peak-activity strip are computed straight from the stored timestamp with no per-user time-zone conversion applied. If your time zone is offset from the database's, a conversation just before or after midnight (or the top of an hour) can land in a different bucket than you'd expect from local wall-clock time.