Dock
Sign in & remix
REMIX PREVIEWPlaybooks· MAY 30

AI CSAT analysis: workflows that turn open-ended feedback into action

CSAT scores plus open comments live in dashboards no one reads. The workflow that works: the agent clusters open comments by theme, surfaces top regressions against prior period, the CX lead reviews and assigns owners, the action plan persists with an attribution trail back to the QBR.

By mei· 4 min read· from trydock.ai

CSAT analysis with AI is the practice of having a language model cluster open-ended survey comments by theme, compare each theme against the prior period, and route the regressions to a human CX lead who assigns owners. The score itself comes from your survey tool (Delighted, Stella Connect, the post-resolution survey inside Zendesk). The AI does not replace the rating. It makes the comment column legible, which is where the actual signal lives.

The workflow that works

1. Pull the raw comments into one place. Export the last 30 days from your survey source: Delighted via CSV, Stella Connect via API, or the satisfaction trigger inside Zendesk. Include the score, the comment, the ticket ID, the assigned agent, and the channel. Most teams stop here and let the data sit in a dashboard tab. Do not stop here.

2. Cluster the comments. Feed the export to ChatGPT or Claude with a prompt that asks for 8 to 12 themes, the count per theme, the mean score per theme, and three representative verbatims. You will get categories like "slow first response," "refund denied," "agent did not read context," "praise for specific agent." The clustering is the whole point. A 4.2 average tells you nothing. A cluster of 47 "refund denied" comments at a 2.1 average tells you what to fix.

3. Compare against prior period. Run the same clustering on the previous 30 days. Ask the model to surface themes where volume grew more than 25 percent or mean score dropped more than 0.5. This is your regression list. Klaus (now Zendesk QA) and similar QA tools do something adjacent for quality scoring, but the open-comment regression view is what catches the new failure mode before it shows up in the aggregate.

4. Hand off to a human lead. The CX lead reads the regressions, picks the three worth acting on, and assigns owners. One owner per regression. A due date. A target metric. The model does not assign owners. People assign owners.

5. Close the loop. When the owner ships the fix (a new macro, a policy change, a training session), the action gets logged against the original regression so next quarter's QBR can show cause and effect.

Worked example: the refund-denied regression

April CSAT held at 4.3. The cluster pass surfaced 47 comments tagged "refund denied," up from 19 in March, mean score 2.1. The CX lead read the verbatims, found that the refund policy macro had been updated to require a manager note, and agents were declining instead of escalating. Owner assigned: the team lead for the returns pod. Action: revise the macro, retrain the pod. May regression list showed the cluster dropped to 12.

Where the chain breaks

The pain is not the clustering. The pain is that the cluster output, the lead's decision, the owner assignment, and the eventual fix live in four different places: a Slack thread, a Google Doc, a Jira ticket, the helpdesk macro library. Three months later at the QBR, nobody can reconstruct why the refund-denied cluster dropped. The attribution trail is gone.

One way to solve this is a workspace like Dock that holds the cluster output, the lead's review notes, the owner assignment, and a pointer back to the Zendesk macro ID. The helpdesk stays the system of record for tickets and macros. Dock holds what the agent interpreted around them: the regression call, the owner decision, the eventual outcome. Same pattern as audit trails for any agent action, with the same identity model so you know which agent ran which clustering pass.

Why this matters

CSAT survives as a metric because executives read the number. It earns its keep when the open comments drive change. Bain's Net Promoter System work makes the same point about NPS: the score is a starting line, not a finish. The loop from comment to action to next-period verification is what separates a real CX function from a dashboard.

Start with the full AI customer support playbook for how this fits the rest of the stack.

FAQ

Can the AI assign owners directly? No. The model proposes regressions. A human picks which ones matter and who owns the fix. Auto-assignment removes the judgment call that makes the loop work.

How often should this run? Weekly for clustering, monthly for the regression review with the CX lead. Quarterly for the QBR rollup. Daily is too noisy.

What if our survey volume is low? Below 200 comments a month, the clusters are unstable. Run on a rolling 90-day window instead, or supplement with QA scores from Zendesk QA or a similar tool.

Does this replace agent QA scoring? No. QA scoring measures how the agent handled the ticket. CSAT clustering measures how the customer felt about the outcome. You need both.

Remix this into Dock

Make this yours. Edit, extend, run agents on it.

Sign in (free, 20 workspaces) — Dock mints a copy of this in your own workspace. The original stays untouched.

No Dock account? Sign-in is signup. Magic-link in 30 seconds.