Skip to main content
Feedback promptsSupport promptsChatgptClaude

How to Write a Customer Feedback Synthesis Prompt With Themes and Quotes

Build a customer feedback synthesis prompt that clusters reviews into themes with frequency, severity, and quotes in one output contract. Copy it today.

PPromptsCart Team·September 17, 2026·Updated September 17, 2026·8 min read

You paste 200 reviews into ChatGPT and ask it to find the themes. It returns a tidy bulleted summary. Reads great. But you can't tell how many customers actually raised each point, you can't tell which themes are angry versus mildly annoyed, and when you re-run it tomorrow the theme names have changed. The summary looks like synthesis. It isn't.

A real customer feedback synthesis prompt has to do three things at once: cluster the feedback into named themes, count how often each shows up, and pin every theme to a representative quote you can trace back. Frequency tells you what to prioritize. Severity tells you what's on fire. The quote is the proof. Drop any one and you're back to a summary.

The published prompts for this either summarize without counts, or pull quotes in a separate step, or warn you it'll all drift and pivot to selling a platform. This post shows the single output contract that does all three together.

What a feedback synthesis prompt should return

A customer feedback synthesis prompt is a reusable instruction that turns raw, messy feedback into themes, each carrying a frequency, a severity, and a verbatim quote, in one pass and one shape. The combined contract is the whole point.

Look at what ranks. Thematic's walkthrough is honest and useful, but it describes a manual, iterative loop: write a theme prompt, get counts, manually merge duplicates, then separately ask for evidence quotes. Three passes and a lot of hand-cleaning, ending in a pitch for the platform. The single-contract version — themes plus counts plus quotes together — isn't there, and the article freely notes ChatGPT will duplicate themes and rename them across batches. That drift is the real enemy, and no one's prompt structurally fixes it.

The stance worth holding: a feature-request count is the least useful number in the export, and most synthesis prompts over-index on it. What customers ask for is downstream of a problem they're describing badly. A synthesis prompt earns its keep by clustering on the problem, the job the customer couldn't finish, not the feature they guessed would fix it. That's a harder cluster to name, and it's the one that changes the roadmap.

What you can use this prompt for

  • Turning a quarter of support tickets into a ranked theme list with counts
  • Synthesizing app-store or G2 reviews into severity-rated themes
  • Clustering open-text survey responses into named jobs-to-be-done
  • Pulling a representative quote per theme for a stakeholder deck
  • Comparing this month's themes against last month's to spot a regression
  • Separating loud-but-rare complaints from quiet-but-common ones

The anatomy: raw feedback in, structured themes out

Variables:
  {{feedback_corpus}}   -> the raw reviews, tickets, or survey text
  {{source_type}}       -> reviews / tickets / survey / interview notes
  {{cluster_on}}        -> "problems and jobs" (default) or "feature requests"
  {{theme_cap}}         -> max number of themes to return (e.g. 8)

Prompt:
  Role: customer insights analyst.
  Task: cluster feedback into named themes, count each, rate severity,
        attach ONE verbatim quote per theme copied from the input.
  Rule: quotes must be real excerpts, never paraphrased or invented.

Output contract (locked):
  | Theme | Frequency (count) | Severity (high/med/low) | Representative quote (verbatim) | Underlying job |
  Then: the one theme "screaming in the data" and why it ranks first.

The {{theme_cap}} matters more than it looks. Uncapped, the model splinters feedback into 20 near-duplicate themes and the frequencies fragment into noise. Capping at 6 to 8 forces real clustering. It has to decide that "confusing onboarding" and "didn't know where to start" are the same theme, which is exactly the judgment you want it making.

Lock the quotes to real excerpts

The single biggest trust failure in AI feedback synthesis is invented quotes. The model paraphrases a quote into something cleaner than anything a customer wrote, and now your deck cites a sentence no one said. Add the rule explicitly: "Every quote must be an exact substring of the input. If no clean quote exists for a theme, write 'no single representative quote' rather than composing one." Claude follows this more tightly; GPT-4o needs "exact substring" stated or it'll smooth the language.

Step-by-step: run the synthesis

1. Gather the corpus

Export the feedback as plain text. Strip names and anything sensitive. If you're over the context window, batch it, but read the batching caveat below, because naïve batching is where theme drift comes from.

2. Fill the variables

Set {{source_type}} so the model weights severity correctly (a one-star review and a churned-account ticket aren't equal). Leave {{cluster_on}} on "problems and jobs" unless you specifically need a feature tally. Set {{theme_cap}} to force real clustering.

3. Run the prompt

Low temperature for the clustering pass. You want the same input to produce the same themes twice. If it returns prose paragraphs instead of the table, restate the column headers on the final line and re-run.

4. Verify the quotes

Spot-check three quotes against the source text with a search. If any quote isn't an exact substring, the refusal rule didn't hold — tighten it to "exact substring, verified" and re-run. This is the step people skip and the one that protects you.

5. Handle batching without drift

If you split the corpus, run all batches with the same theme list pinned in the prompt: "Use only these theme names; if something doesn't fit, add it to an 'other' bucket and flag it." This is how you stop batch two from inventing "pricing confusion" when batch one already named it "unclear pricing."

Prompt-craft patterns that keep clustering honest

Pin the theme vocabulary across batches. The single fix for the rename-and-duplicate problem is to run batch one, capture its theme list, and feed that list back as a constraint for every later batch. The model stops freelancing names. Without it, you get the exact drift Thematic warns about.

For batches 2+:
  Cluster into ONLY these existing themes: {{locked_theme_list}}
  If feedback fits none, add to "Other" and flag for review.
  Do not rename or split an existing theme.

Separate severity from frequency, explicitly. Make the model rate severity from the language (rage, churn intent, blockers) independently of how often a theme appears. A rare theme with three "ready to cancel" quotes outranks a common "wish it were faster." If you collapse the two columns, the loud-and-rare signal vanishes into the count.

Demand the underlying job. The last column forces the model past the surface complaint to the job the customer couldn't finish. "Export is broken" becomes "needs to get data into their own reporting tool." That reframe is what makes synthesis useful to product, and it's the same discovery move as a user story acceptance criteria prompt: naming the job before the solution.

Variables you'll set

VariableRequiredWhat it is
{{feedback_corpus}}YesThe raw reviews, tickets, or survey text
{{source_type}}YesWhat kind of feedback this is, for severity weighting
{{cluster_on}}No"Problems and jobs" (default) or "feature requests"
{{theme_cap}}NoMaximum themes to return, to force real clustering

Getting started

  1. Copy the scaffold into ChatGPT or Claude.
  2. Paste cleaned feedback into {{feedback_corpus}} and set {{source_type}}.
  3. Set {{theme_cap}} to 6 to 8 so themes actually cluster.
  4. Run at low temperature and read the ranked themes.
  5. Verify three quotes are exact substrings of the input.
  6. If you batched, pin the theme list across every batch.
  7. For a maintained version with the quote-verification rule and cross-batch theme pinning built in, use the Customer Feedback Synthesis Agent Pack instead of stitching the passes by hand.
Skip the setup

The Customer Feedback Synthesis Agent Pack does this end-to-end — a {{feedback_corpus}} variable feeds a core prompt whose locked output contract is the theme / frequency / severity / verbatim quote / underlying job table, with the "exact substring quotes" boundary and a batch-pinning companion prompt so themes don't drift across runs. It's part of The Complete AI Prompts Bundle, a one-time lifetime license to the whole catalog (plus every pack added later) if you run more than one of these jobs.

Get the Customer Feedback Synthesis Agent Pack

Synthesis tells you what customers struggle with; the next move is deciding what to fix. Pair this with the Discovery Interview Synthesis Pack when the feedback comes from interviews rather than reviews, since the clustering logic differs. And when a theme points at a conversion leak rather than a product gap, the funnel analysis prompt turns it into a ranked drop-off diagnosis. Browse the support and research packs to cover the rest of the loop.

Browse the prompt catalog
FAQ

Common questions

What is a customer feedback synthesis prompt?
A customer feedback synthesis prompt is a reusable prompt that clusters raw feedback (reviews, tickets, survey text) into named themes and returns each theme with a frequency count, a severity rating, and a representative verbatim quote in one structured output. The combined contract is what separates it from a plain summary.
Can ChatGPT cluster customer reviews into themes?
ChatGPT and Claude can group feedback into themes and count them, but they drift on theme names across batches and may invent quotes. A locked output contract that demands a frequency, a severity, and a real pasted quote per theme keeps the clustering consistent and checkable across runs.
How do I prompt for themes with frequency and quotes?
Give the model the raw feedback and an output contract with one row per theme: theme name, count, severity, and a verbatim quote copied from the input. Add a rule that every quote must be a real excerpt, not paraphrased, so you can trace each theme back to evidence.
Stop reading. Start shipping.

Get the prompt packs this guide is built on

Ready-to-paste prompts with documented variables and usage guides for ChatGPT, Claude, and Gemini. One-time payment, own it forever.