Spot recurring customer complaints in Dixa and size them
Pick a date range and see what customers are actually complaining about, grouped into themes with volume, trend, and satisfaction scores.
I want an app that my support lead and I sit down with every couple of weeks to work out what customers are actually complaining about in Dixa. It is a shared review surface rather than an automation: nothing runs on a schedule, we open it together, pick a period, and work through what comes back.
The main screen starts with a date range picker, defaulting to the last 14 days. When a period is selected, the app uses the Dixa Search conversations with filters operation to pull every conversation in that window, and does the same for the immediately preceding window of equal length so we have a baseline to compare against. For each conversation in the current window it also calls List ratings for a conversation and keeps the satisfaction score where one exists. Let me optionally narrow the pull by queue, channel, or existing tag before I analyze anything.
Below the picker is the theme board: one card per theme showing the theme name, a one or two sentence description, the number of conversations in it, the change against the previous period as both a count and a percentage with a New label when there is no prior record, and the average satisfaction score across that theme's conversations along with how many ratings it is based on. Let me sort by volume, by lowest satisfaction, or by a combined priority that surfaces the themes that are both high volume and low rated, which is the view we care about most. Clicking a card opens a detail view with the full description, the representative quotes, and the list of underlying conversations showing subject, date, rating, and a link back into Dixa.
An Analyze this period button starts a background agent. The agent reads the actual transcripts using List messages for the conversations in the window, clusters them into a small set of named themes, roughly five to twelve, and for each theme writes a short plain-language description and picks two or three representative customer quotes as evidence. Quotes must be taken verbatim from the customer's own messages, not from agent replies, and each quote records the conversation it came from. The agent records which conversation ids belong to each theme and writes all of this back into the app, so the theme board renders from stored results rather than from a live run. Show progress while it works, and keep the previous analysis on screen until the new one is ready.
Before it clusters, the agent must read the app's record of themes filed in previous sessions and match its new groupings against them by meaning rather than by exact name, so that checkout errors and payment failures at checkout are recognized as the same theme. Any theme that was already filed is never proposed as a new theme to file. It appears instead in a separate Already tracked section showing the existing issue, this period's updated conversation count, and whether it is growing or shrinking. This is the rule I care most about: we run this every couple of weeks and I do not want a duplicate issue created every time.
For the trend numbers, prefer the stored analysis of the previous period when we have already run the app on it. When there is no stored prior analysis, have the agent also assign the previous window's conversations to the themes it just named, so even the first run shows a real comparison instead of marking everything as new.
Each theme card carries three actions. File to Linear uses Create Issue to open an issue in a team I choose, using List Teams to populate the team picker, with the theme name as the title and a description containing the theme summary, the representative quotes, the conversation count, the average satisfaction score, and the date range reviewed. Once the issue exists, the app stores its key, url, who filed it, and when, marks the card as filed with a link to the issue, and drops that issue link onto every conversation in the theme using Add internal note so agents working the queue can see the fix is tracked. Tag these conversations applies the theme name across the underlying conversations using Bulk tag conversation. For themes in the Already tracked section, replace the file button with a Post update action that uses Add Comment to Issue to append this period's count and trend to the existing issue.
Persist two things. Per period, store the analyzed themes with their descriptions, quotes, conversation ids, counts, and ratings, so reopening a period we already looked at shows the stored result instantly with a re-analyze option. Across periods, store the filed-theme registry that powers the deduplication described above. Filing, tagging, and noting are shared team state visible to everyone who opens the app, each stamped with the name of whoever took the action. Ask for confirmation before tagging or adding notes, since those write into Dixa where agents will see them. Dixa rate limits requests, so page through conversations and fetch ratings and messages at a steady pace rather than firing everything at once, and show the user roughly how far along the analysis is.
What does this prompt do?
- Choose any date range and see that period's support conversations grouped into named themes, with the number of conversations sitting behind each one
- Compare every theme against the previous period so you can tell what is growing, what is fading, and what is brand new
- See the average satisfaction score next to each theme, so the ones that are both high volume and badly rated rise to the top
- File a theme to your product team's tracker in one click, tag the underlying conversations, and leave a note on each one pointing to where the fix is tracked
- Skip themes you already filed in an earlier session, so a recurring problem never turns into a pile of duplicate issues
What do I need to use this?
- A Dixa account with administrator access, so the app can read conversations and ratings and apply tags
- A Linear workspace where your product or engineering team tracks work
- A review rhythm the two teams agree on, for example a session every two weeks
How can I customize it?
- Change the default date range to match your review cadence, whether that is weekly, every two weeks, or monthly
- Narrow the conversations pulled in to a single queue, channel, or existing tag, for example only email conversations or only one product line
- Pick which Linear team new issues land in and how much detail goes into the issue description
- Adjust how many themes the analysis produces, so you get a tight shortlist or a fuller picture
FAQs
Do our agents have to tag conversations correctly for this to work?
Will it create duplicate issues if we run it again in two weeks?
How far back can we look?
Can we see the actual customer wording, not just a label?
Does anything change in Dixa without us asking?
Who is this for, support or product?
Related templates
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
See every customer waiting on a bug fix, file the ticket without creating a duplicate, and tell them the moment engineering ships it.
See every recent deploy across all your Heroku apps in one timeline, then roll back, restart, or file an incident without leaving the screen.
Pick a date range, see which support topics are climbing fastest, read the real customer threads behind them, and file the worst ones as tickets.
See every Hacker News story and comment that mentions your product or your competitors, mark each one new, needs reply or handled, and stop losing threads.
One grid of every table you track, when it last landed, and what broke, with stale tables pinned to the top and an agent that explains why.
Stop guessing which customer complaints are worth fixing.
Turn a date range of support conversations into a ranked list of real themes, sized by volume and satisfaction, ready to hand to your product team.