Add a tab to the dashboard or to an agent's conversations page, choose what to count and how to split it, compare it with the previous period, arrange the widgets, and share the tab with your team.
Dashboard → + New tab (sign-in required) adds a tab of your own beside the built-in ones. Each widget on it is one question — How do conversations end?, Which hours are busiest?, Average call length by outcome — answered from the same analysis that feeds Conversation Insights, so a figure here is the figure there. The same tabs exist on every agent's conversations page, locked to that agent.
A tab is yours: nobody else sees it until you share it (below).
+ New tab offers a starter or a blank tab:
| Starter | What it answers |
|---|---|
| Service quality | How conversations end, how people feel, whether the resolved share is improving, unanswered questions. |
| Where conversations come from | The pages chats start on, the channels, the ad campaigns behind them. |
| Agents side by side | Outcomes and volume per agent. |
| Busy hours | Which hours and days conversations land on. |
| This agent at a glance (agent pages only) | Outcomes, feeling, knowledge gaps, topics and timing for the one agent. |
A blank tab shows four one-click suggestions and Build my own; What are people asking about? adds two themes widgets side by side, the second showing only What don't we fully answer?. Every starter widget can be edited or removed afterwards. A tab holds up to 24 widgets; at the cap, Add widget is disabled and the tab says so — remove one, or start a second tab.
Add widget opens the builder. One sentence builds the widget, and the preview on the right redraws as you change it.
Describe it (at the top of the builder) lets you say what you want in your own words, up to 600 characters, and press Fill in: AI fills in every choice below — the question, what to count, the split, the chart, the comparison, filters, even a Themes widget with its grouping instruction — using your workspace's own fields and values and leaving out what the tab already filters. Nothing is saved: check the choices, change any of them, and add the widget as usual. A line under the box says what the widget shows, and anything it could not carry (Not carried: revenue per reader) is named rather than dropped. Describe it again with choices already made and it refines them (only on phones). It needs the AI Insight Card Builder to be on for your workspace and its permission on your role; it counts toward the dashboard AI spend.
The choices, top to bottom:
|. On a list field such as Pages visited a conversation passes when any one of its values does, so Pages visited · starts with · /membership/ is the share of chats that reached that section at any point. A share or an average needs no split: leave Broken down by empty and the widget is one number (18% of 38 conversations), named for its condition, with a bar as long as the share.|, in the box beside it; leave it blank and the card uses the prefixes it finds in the data, and says so. The lists offer the fields the tab's conversations carry in its range: a field none of them has (revenue on an agent that never quotes, ad campaigns on a channel without ads) is left out, and Show all fields under the split brings every field back, saying how many were hidden. A field the widget already uses always stays.Advanced (remembered per person) adds a second split (and by; after a time split it offers Hour of day and Day of week, so hour × day of week is the staffing heatmap), Panels by (one small chart per value of a third field), Filter (up to six conditions, with your workspace's own values offered — see Filter a tab for the conditions; with two or more, Match sets whether a conversation must pass every condition or any one condition), Format, Top N and Min cell. Add to tab saves the widget (Save changes when editing one); the tab runs again. When a saved widget holds a setting its chart cannot use (a third split on a chart that draws two, a comparison a topic map cannot make), the card says so in a line at its foot rather than dropping it unseen; Edit the widget to change it.
One split offers Bar and Column (longest first), Doughnut (part of a whole; past six slices the rest fold into All others, which the table still lists in full) and Pareto (bars ranked with the running share and an 80 % line, for which few values make most of the volume). Under More charts: Pie and Polar area, Radar (an outline over three or more values), Treemap (share of the whole as area) and Word cloud (free values sized by count). A split by Country, Region or City also offers the Map: one circle per place, sized by its count — or coloured by the share or average when that is what you chose — with the place the sentence names in colour and the six biggest named. Hover a circle for its figure; click it to list its conversations. A place the platform cannot put on the map is listed under it; give it a latitude and longitude under ⋯ → Rename values… and the circle appears. Countries and the provinces and states of Canada, the US, Australia and the UK are placed on their own; a city is placed where its conversations were, which needs conversations closed after the location point began being recorded. A split by a list — Topic path, Labels, Pages visited, Tools used — also offers the Topic map: every value a circle sized by its conversations, every pair of values that share a conversation a line, coloured by the share you chose under Show me (picking the map on a plain count sets it to Outcome is resolved or likely resolved). The hardest bridges — the pairs served below the card's own share, ranked by how many conversations miss it — are drawn in their share's colour with a numbered badge; the panel beside the map lists them with N of M missed, above two figures that say whether conversations that stay on one topic fare better than those that cross topics, the lower of the two marked. When crossing topics does not hurt, the card's sentence says so first and names the topic where the misses sit. Only the bridges and the strongest other pairs are drawn (the panel says how many weaker ones are not, and the table lists every pair); Bridges only hides the rest. Hover a circle or a line to read it; click a circle for its conversations, a line for the conversations that carry both ends — the list opens with the count the card showed. Drag a circle to move it where the map reads best; drag it again to move it on, and Reset layout puts every circle back. The panel also says how many conversations carry no value at all, and flags names that are probably one topic twice (Tow · Towing); merge those under Analytics & Insights → Vocabulary and they draw as one. The map shows the twenty most common values and always both ends of every bridge; raise Top N for more. On a small tab no pair may reach the widget's Min cell: those pairs are still drawn, faint and dashed, and the panel lists the strongest as Pairs seen, with the min cell you would need to rank them — read them as anecdotes until the tab has volume. Topics you have merged or renamed under Analytics & Insights → Vocabulary (the Topics section) draw under their governed name. A time split offers Area, Line and Columns over time. Two splits offer the Heatmap (Heatmap reads under Advanced sets what the cells show first: Automatic reads the share of each row, or counts on an hour × day grid; Share of each row and Counts fix it; the card's toggle switches the view either way, and the colours span the values that are there), Stacked bar and 100% stacked (share within each bar), and, with time first, the same area, line and columns with one series per value plus Rank over time (a bump chart: which value led each week). Three or four splits offer the Flow. Ordered scales (a feeling, an effort, a funnel step) keep their order and their colour ramp whatever the chart, and a clock or a week keeps every hour and day, including the empty ones. An agent split names the agent, not its id.
Themes turns the questions your customers asked into a short list of subjects, so a team can see what people want to know: a comms team looking for article ideas, a support lead looking for the answers the help centre is missing. Pick Questions asked under Broken down by; Themes is the chart picked for you.
Three rows appear under Chart:
Press Group now in the preview to see the themes before you add the widget. Grouping does not run as you type.
Each theme shows its name, the conversations that asked about it with their share of the conversations that asked anything, a one-line summary, and how many of those conversations still had a question in it that was not fully answered. Under N questions (every question the theme counted) sit up to three of them as people asked them, open on the leading theme and folded on the rest, so the card fits its place on the tab; click the theme for all its conversations. With Compare with set to the previous period, a theme that is new this period is marked new, and the others show their change (↑ 40%). Click a theme to list its conversations.
What the AI does and what it does not. The AI groups and names the questions; every number on the card is counted by Karmaflow.ai from the conversations themselves, never written by the AI. The footer says so: Grouped by AI from 214 questions in 38 conversations · counts are exact, naming the conversations those questions came from. On a Not fully answered widget that is fewer than the conversations the shares are of, which are every conversation that asked anything. Themes with fewer conversations than the widget's Min cell, and any past the card's Themes count, are counted in the footer as smaller themes.
What no theme holds, said in two rows. Below the themes, two muted rows count the rest, each with its questions under N questions and a click that lists the conversations:
Themes hold still. A theme keeps its name from one grouping to the next, so its new and ↑ / ↓ marks mean something week to week. When many new questions fit none of the themes, the AI adds themes for them and leaves the existing ones as they are (the footer says themes added Oct 22). Only Group again regroups from scratch, and even then a theme that still fits keeps its name. When Transcript Retention removes conversations' content and summaries, their questions leave the grouping too; the themes and your pins stay, and the questions still in their window keep their places.
Pin a theme to watch it. The tab's owner can press Pin under any theme. A pinned theme always shows on the card — even when no one asked about it this time, or when more themes than the card's count were found — with a small line of its conversations per period and its last three periods in words (3 → 7 → 12; hover for every period). A period is a week while the tab's range holds 12 weeks or fewer, otherwise a month (the card says Pinned trends by week or by month). The trend is counted from the same grouping as the card, so pinning costs no extra AI. The week (or month) still under way is said apart (3 → 12 · 2 so far) and drawn as a dashed last step, so its first days never read as a fall. A widget holds five pins. If a later Group again retires a pinned theme, the row stays, struck through, says when it was retired and offers Unpin; if that subject comes back in a later grouping, the theme returns under the same pin. A retired pin never stops you pinning a live theme: with five taken, Pin takes the place of a retired one, and its hover names which (if an alert watches that pin, you are asked first and the alert goes with it).
Act on a theme. Each theme row has two more buttons:
One sentence above the tab. A tab that holds a grouped themes widget opens with one line that says the answer before the cards do: 71 questions in 40 conversations · 4 themes · 1 you don't fully answer: “Caribbean resorts” (4 of 4) · “All-inclusive resorts” 3 → 7 since last week. A theme counts as not fully answered when at least two conversations asked about it and half or more of them were left open; the last part names the pinned theme that rose most since the period before.
When it groups. The themes stay put from one visit to the next. New questions are added to them when the tab's owner opens the tab (at most once an hour) and every night; Group again regroups that card from scratch, and only that card: each press is one grouping. Questions that arrived since then are counted as newer, not grouped yet until the next grouping. Someone you shared the tab with, an MCP connector, and the daily alerts and digest all read the owner's last grouping and never start one. A tab filtered to part of your site (Pages visited · starts with · /magazine/) groups only those conversations' questions.
While your question history fills in. When Karmaflow.ai is filling in the questions of the recent conversations analysed before questions were recorded (about the last week), a themes tab says so under its sentence: Filling in your question history: 8,327 conversations to go. The themes count the conversations done so far, and the number falls as it runs.
A card as tall as its themes. A themes card with only a few themes gives back the rows it does not use, so the cards below move up; when a row holds two cards, it shrinks only when both have room to spare. Opening a theme's questions grows it again as needed. While you arrange the tab (Edit layout) nothing shrinks.
What it needs. AI Question Themes must be switched on for your workspace, and the owner needs the matching AI permission; grouping counts toward the workspace's dashboard AI spend. With it off, or before the first grouping, the card lists the questions as they stand, most-asked first, and says why. The questions themselves are recorded when a conversation is analysed, from the October 2026 release on. Karmaflow.ai may fill in roughly the week before your workspace started using it; older conversations are not included, so a new themes widget fills up as conversations come in.
Colour points at the answer. A bar chart starts grey and puts one colour on the bar the card's sentence is about: the leader, the outlier, the value you set against everything else. Good-to-bad scales (outcome, feeling) keep their green-to-red steps, and dark mode has its own steps, checked for colour-blind readers on each background. Every coloured mark also carries its label, so colour is never the only way to read it.
The Filter button in the filter row sets conditions every widget on the tab inherits, and the line above the widgets, the footers and the drill-downs count only the conversations that match. Up to six conditions, all of which must hold; a chip under the row says each one in words, and anyone reading a shared tab sees the same chips.
A condition is a field, a comparison and a value. The value box offers your workspace's most common values for the field, and as you type it offers the values that contain what you typed, so a long list of pages or topics is reachable. Besides is, is not, is one of and is set, the text comparisons select by shape, so a section of the site needs no list of pages:
* stands for anything: Start page · matches pattern · /clinics/*/book keeps the booking page of every clinic.| (/concierge/|/help/), and case does not matter.So "what happens on the new part of the site" is one tab: Filter → Start page · starts with · /the-section/, then widgets for outcomes, topics, feeling, hour of day, where the chat ended and whether the visitor was new, with Compare with the previous period on the one that matters. The same conditions are offered on a single widget under Advanced → Filter when only that widget should narrow.
Start page is the page the chat opened on; End page is the page the visitor last wrote from, which is empty for conversations closed before your workspace's close-time facts were filled in (see What the figures count).
Edit layout turns on the handles: drag a widget by its handle, resize it from the corner, or use the kebab's Move & size row. Move up and Move down swap the widget with the one before or after it in reading order; Move left and Move right swap it with the widget beside it; the size arrows make it a cell wider, narrower, taller or shorter. On a phone the kebab offers Move up and Move down only. Done turns the handles off again. The layout saves on its own (Saved appears in the header). Reading a tab shows no handles at all, and a widget whose chart needs more room than its cell grows to fit rather than scrolling inside itself; the widgets beside it on the same row grow with it, so the row stays level.
The row above the widgets narrows every widget on the tab together: the channel and the handled-by chips, and the tab's own Compare setting (vs previous period, vs same period last year) for every widget that does not set its own. The date range is the dashboard's range, or the page's range on an agent page.
Clicking a bar, a slice or a cell lists the conversations behind it, exactly as on Conversation Insights (the newest hundred, with the whole count under the list); a widget's kebab exports its data as CSV (any widget) or PNG (a bar, line, doughnut or stat; a heatmap or a table exports as CSV).
A rule on a widget. Under Advanced → Alert me the builder takes a rule on the widget's one figure: when the figure is at or above / at or below N over the last D days. The figure is what the card's sentence leads with: the Yes share of a yes/no field (type 60 for 60%), the number of conversations the widget counted, an average or a sum, a rate; a heatmap, a flow or a table has no single figure and takes no rule. On a themes widget with pinned themes, the rule can watch one pin instead of the leading theme (when “Visa rules” is at or above 10); the bell then names it, and if a regroup retires that theme the bell says so, since the rule can no longer fire. Unpinning the theme a rule watches asks first and removes the rule with it. A bell on the card says the rule in words. Once a day the platform runs the widget over its window and, when the rule holds, notifies you — or, on a shared tab, everyone who can read analytics — through the usual notification settings (Reports → A widget on an analytics tab crossed its threshold: in the app and by email by default; each person can change it under Notification Preferences, and an admin can change the workspace default there). One notification per widget per day while it holds.
What changed this week. Once a week, every tab sends a digest: each widget's one-line answer over the last seven days against the seven before, biggest change first — the change each line states, in points for a share and in percent for a count (Reports → What changed on an analytics tab this week). A digest for an agent's tab names the agent. On the tab itself, set Compare to vs previous period and a What changed strip above the widgets lists the three whose line moved most; two widgets that say the same line are listed once.
Both run inside the daily insight-alert check; turning that check off under Settings → Analytics & Insights → Cards & alerts turns these off too.
The tab's kebab (⋯) holds Share with the team — the tab appears for everyone in your workspace who can read analytics, read-only for them, and the header says Shared with everyone who can read analytics. Stop sharing takes it back. Sharing needs the analytics: manage permission; reading a shared tab needs analytics: read.
Rename values… (needs analytics: manage) gives a stored value the name your team uses: pick a field, and beside each of its values type a name (trv_newsletter → Travel newsletter). The names apply to every tab, every sentence, the conversation lists a card opens and the connector, across the workspace; a blank name shows the value as stored again. Field offers every text and choice field the range's conversations carry (a choice field lists all its choices, seen or not). The panel lists the field's most common values in the range and, first, every value a widget on this tab draws — an article path, a rare campaign, the buckets a widget derives (0-1 on a range, low on a score) — so anything you can see, you can name. For Country, Region and City each row also takes a latitude and longitude: where that place sits on the Map chart.
Duplicate makes a private copy of your own tab; on a tab shared with you it is Duplicate to my tabs — the way to start from a colleague's work. The pencil beside the tab's name renames it in place. Delete tab removes it for good.
A widget's menu (⋯, on hover) holds Ask AI: Copy for AI puts the card on your clipboard as a prompt for any assistant, and Open in Claude opens it in a new Claude chat. The tab's own menu has the same items under Ask AI about this tab, for every card at once. Either way the AI panel beside the tab (see Explain a card or a tab below) first shows the prompt exactly as it will be pasted, what it holds and what was taken out; nothing reaches Claude until you press Open in Claude in that panel.
What leaves is the card's question, its sentence and its figures as a small table, over the tab's range and filters: counts and shares (and, on a themes card, the questions that fit no theme), never a transcript or a contact. A table of conversations (a leaderboard) and a funnel stay in Karmaflow.ai, and the panel says how many cards were left out. Before anything is shown, emails, phone numbers, card numbers, SSNs and IP addresses are always taken out, as is a name inside a web address (the part after /author/, /team/ or /users/), and an AI redaction pass removes the types of personal data your workspace chose (every type, unless you change it). If that pass fails, nothing is sent and the panel says so; try again in a moment. A prompt too long for a link is copied instead, to paste into a new chat. On a shared tab the prompt also tells an assistant with the Karmaflow.ai connector how to read the cards in full (run_dashboard, below). Every hand-off is recorded in the audit log: who, which card, which assistant and which types were redacted.
Settings (gear) → Analytics → Analytics & Insights → Cards & alerts → Ask AI (tenant admins; saving needs analytics: manage) turns it on or off for the workspace, picks the assistants and picks the types the redaction pass removes. It is on for Claude by default. ChatGPT and Microsoft Copilot are listed as coming soon.
Explain this card in a widget's menu (⋯), Explain this tab in the tab's menu, or Explain on a theme row has Karmaflow.ai's own AI write at most three short paragraphs: what stands out, what might explain it, and what you could do next. It reads only what Ask AI would hand out — the card's figures, never a transcript or a contact — with the same personal data taken out first, and nothing leaves Karmaflow.ai. The AI is told to name only figures on the card and to say the data does not show rather than guess; the panel says the reading is the AI's and the counts are the platform's. A table of conversations is never explained.
Where it appears. The answer opens in the AI panel beside the tab, not above it, so you keep your place and read it next to the card. The card it is about is outlined, and a theme's row is marked while its explanation is written. The panel does not cover the page:
On a screen 1,280 px or wider, the page moves over to make room for the panel. On a narrower screen it covers the right edge. On a phone it opens as a sheet from the bottom, and the card you pressed moves up above it.
An explanation is kept for an hour for the same card, range, filters and grouping, so everyone reading a shared tab sees the same text and the workspace pays for it once. Each new explanation is recorded in the workspace's audit log.
What it needs. AI Explain (analytics) must be switched on for your workspace (it is off until an admin enables it), and you need the matching AI permission; it counts toward the workspace's dashboard AI spend. When it is off, the menus do not offer it.
A share or an average over a value with fewer conversations than the widget's Min cell (three unless you change it) is not drawn: a 0% bar over one conversation is noise, not a finding. The footer says how many values were left out. The sentence's outlier is picked among values that hold at least 1% of the widget's conversations.
A widget counts what Conversation Insights counts: every closed, billable conversation on every channel in the range, handled by a production agent. On an agent page, only that agent's. A card's footer says how many conversations in the range carry the field it reads (35 of 38 carry it; on a heatmap, the conversations that carry both of its fields) and, when Top N hides some values, how many there were (top 10 of 14 shown). A share in the sentence is of the conversations that carry the field, never of the bars left after Top N, so hiding values never inflates a share. A widget split by a list counted per value (Tools used, Risk flags) counts the values, since one conversation can carry several: its table totals them in that unit (Risk flags in all), not as 100% of conversations, and adds a row for the conversations with any.
The sentence under each title names the answer, not the tallest bar:
a count names the leader, its share and a close runner-up (Travel leads: 5 of 35 (14%); All inclusive 4);
a good-to-bad scale reads both ends (76% resolved or likely resolved; 24% incomplete (of 38)); a share under 10% keeps a decimal (0.8%);
a score or a range of numbers (trust, effort) reads its two ends (Low: 15 (0.3%) · High: 131 (2%) (of 5,995));
a share split by a field names the value furthest from the rest, among values that hold at least 5% of the card's conversations (Travel: 60% (n 10) against 92% elsewhere), and an Alert me rule on that widget tests the same figure;
a trend compares the last full period with the one before and the average before that (a week still in progress is never the latest). When the range holds no full period, the sentence reads the latest one and says so far, without a comparison. A range of 14 days or less draws a weekly widget by day, and the card says so in a line at its foot;
a share trend set against everything else reads both lines in the latest period (QC: 70% vs 30% for everything else in W44); a trend with a second split and a comparison names the value whose share of the conversations moved most, in points (Escalated: 36% of conversations, up 21 pts vs the previous period), and that move is what What changed ranks it by;
a heatmap names the cell that departs most from its column, among rows holding at least 5% of the grid, and how many small cells it hid. Top N trims a heatmap's rows. A share or an average over a period with no conversations is a gap in the line, not a zero. When a widget reads a field the platform began recording after the start of your range, a line above the widgets says so once (3 widgets: fields available since …): earlier conversations do not carry it. The footer's figure matters for the fields written at the end of a conversation:
Where a chat ended is the page the visitor last wrote from, not where the browser went afterwards. Pages visited lists every page the visitor viewed during the chat, in order, so Pages visited · starts with · /the-section/ selects chats that touched the section at any point, whether they started there or walked in later.
Device (desktop, phone, tablet; the browser and the system) comes from the chat widget's page visits; chats that happened before the widget reported it have none.
New or returning is whether the same contact had an earlier conversation on any channel; a conversation without a contact is anonymous.
Tools used and tool errors come from the conversation's own log; SMS and email conversations cannot tell an errored tool call from a successful one, so their error count is not reported.
How the visitor arrived (the referring site, UTM) is what the chat page recorded; it is the page's attribution, not the first touch. Traffic source rolls it up to Your site, Search, Email, Social, Other sites or Direct: the UTM medium and source decide first, then the referring site, and a chat with nothing recorded has no source rather than being counted as Direct. Common referring sites read by name (Gmail, Google search, Facebook), and the addresses of one site count as one bar (the phone and desktop addresses of Facebook are one Facebook). Traffic source is filled in for conversations closed from 2026-10-20 on, and for older ones once your workspace's facts are refreshed.
Questions asked lists each question the customer raised, answered or not, rewritten as a short general question a reader would search for (how to change a booking date). Names, numbers, email and street addresses are left out, and a second, rule-based pass removes any the rewrite missed. Question answered says whether the agent answered it: yes, partly or no. Split a widget by Question answered to see how many questions go unanswered, or filter a tab to a part of your site first to see what its readers ask. It is recorded for conversations closed after its October 2026 release, and for roughly the week before when your workspace's question history is filled in; older conversations do not carry it. Unanswered questions is a separate, older count of conversations with at least one question the agent could not answer, and it is unchanged.
The Emails page's Analytics counts the email threads the agent handled; the list beside it counts sent emails, failed and skipped ones included, so the two differ by design.
An MCP connector can list the tabs shared with the team (list_dashboards) and run one (run_dashboard) for the same figures the screen shows. A connector has no login of its own, so it never sees a private tab. What a connector's results leave out is set per API key, or, for the connector added in Claude, under Redaction for the Claude connector (OAuth). See MCP servers.