Back to cookbook

ChatGPT Prompt to Analyze Open-Ended Survey Responses

1 views Published

Make this prompt yours

Share

This survey analysis prompt is for turning a spreadsheet of open-ended survey answers, the free-text box rather than the multiple-choice questions, into a clear summary of the themes that actually came up, with rough counts and representative quotes. It's built for product managers, researchers, and CX teams who've collected hundreds of written responses and don't have time to read every one individually.

Paste in a batch of responses and the prompt asks the model to group similar answers into themes, estimate how common each theme is, and pull a few verbatim quotes per theme so you can see the actual language customers used, not just a label. This works with ChatGPT, Claude, or Gemini for a batch typed directly into the chat; for a full spreadsheet of hundreds of responses, it helps to pre-filter down to just the open-ended column before handing it to the model.

Prompt template

Make this prompt yours

prompt-template
247 tokens
ROLE: You are a research analyst summarizing open-ended survey responses for [TEAM/STAKEHOLDER]. CONTEXT: - Survey question asked: "[EXACT SURVEY QUESTION]" - Number of responses: [NUMBER] - Responses: [PASTE RESPONSES, ONE PER LINE OR AS A LIST] TASK: 1. Group the responses into [NUMBER, E.G. 5-8] distinct themes based on what respondents actually said. 2. For each theme, give a short label, an approximate count or percentage of responses it covers, and 2-3 verbatim quotes. 3. Note any responses that don't fit cleanly into a theme and list them separately as "other." 4. Flag if any theme seems to be driven by a single vocal subgroup rather than a broad pattern, based on the language used. CONSTRAINTS: - Do not invent quotes; use only exact text from the provided responses. - Do not merge themes that are related but distinct, e.g. "price too high" and "unclear pricing page" should stay separate. OUTPUT FORMAT: A table (Theme | Approx. Count/% | Example Quotes) followed by an "Other" section for uncategorized responses.

Want it sharper? Optimize this prompt with Prompt Optimizer, check it with the Prompt Debugger or shorten it with the Token Optimizer.

Example input

example-input
168 tokens
Survey question: "Why did you cancel your subscription?" Number of responses: 12 Responses: 1. "Got too expensive after the trial ended" 2. "Just didn't use it enough to justify the cost" 3. "Found a cheaper alternative that does the same thing" 4. "The mobile app kept crashing" 5. "Too expensive honestly" 6. "Support never got back to me about a billing issue" 7. "Switched to a competitor with better integrations" 8. "I forgot I was even subscribed, honestly my fault" 9. "Price went up without much warning" 10. "App crashed every time I tried to export a report" 11. "Needed a feature you don't have yet" 12. "The free trial was great but $49/month is a lot for what it does"

When to use it

  • You've collected open-ended survey or feedback responses and need to report on themes, not just read them one by one
  • You want to back up a product decision with a count of how many respondents mentioned a specific pain point
  • You're preparing a summary slide for stakeholders who won't read raw survey data
  • You need representative quotes to support a theme instead of just a label like "pricing concerns"

Best practices

  • Give the model the actual survey question that was asked, since "what could we improve" and "why did you cancel" need different theming logic
  • Ask for a rough percentage or count per theme, not just a list, so the summary is useful for prioritization
  • Request 2-3 verbatim quotes per theme so stakeholders can see real language, not just your model's paraphrase
  • For a large export, pull just the open-ended response column out first — Cuelara's Context Extractor can isolate it from a messy CSV before theming

Common mistakes

  • Pasting in responses without the original survey question, so the model has no context for what short answers are referring to
  • Asking for themes without asking for counts, which produces a list that can't support any actual decision
  • Accepting paraphrased summaries without requesting source quotes, making it impossible to verify the theme is accurate
  • Running the full dataset through in one pass instead of sampling and checking a subset first for miscategorized responses

FAQs

How do I get ChatGPT to summarize survey responses without just paraphrasing them?

Ask explicitly for verbatim quotes under each theme, not a paraphrase, and tell it not to invent quotes. Most models default to paraphrasing unless you specify that source quotes are required.

How many open-ended responses can I paste into one prompt?

It depends on the model and response length, but a few hundred short responses usually fits. For anything larger, it's more reliable to theme in batches or pre-filter to just the relevant column from the export.

Can AI miscategorize survey themes?

Yes, it can merge related-but-distinct themes or miss sarcasm and context, so it's worth spot-checking a sample of the original responses against the themes it produces rather than trusting the summary blind.

What tool can help me pull just the right data out of a messy survey export before analyzing it?

Context Extractor — pulls relevant snippets like the open-ended response column out of a large CSV or PDF export, so you're not pasting an entire unfiltered spreadsheet into the prompt.

Found this prompt useful? Share it.

Share

More in Data Analysis & Data Science

Data Analysis & Data Science

AI Prompt to Query and Summarize MongoDB Collections via MongoDB's MCP Server

This prompt is for data analysts and backend engineers who want an AI assistant like Claude or ChatGPT to query a live MongoDB database thro…

ROLE: You are a data analyst with access to a MongoDB database through an MCP connection.

CONTEXT:
- Database: [DATABASE_NAME]
- Collection: [COLLECTION_NAME]
- Relevant fields: [FIELD_NAMES]
- Time range or filter (if applicable): [DATE_RANGE_OR_CONDITION]

TASK:
1. Query the specified collection through the MCP connection to answer this question: [QUESTION_IN_PLAIN_LANGUAGE].
2. Show the exact query or aggregation pipeline used.
3. Report the total number of documents the query matched.
4. Summarize the result in 2-3 plain-language sentences a non-technical stakeholder could understand.
5. Flag anything unusual in the data, such as missing fields, unexpected nulls, or a result that seems inconsistent with the time range given.

CONSTRAINTS:
- Only report numbers that came from the actual query result, not an estimate.
- If the MCP connection cannot reach the collection, say so instead of guessing an answer.

OUTPUT FORMAT:
- Query used: [pipeline or filter]
- Documents matched: [count]
- Summary: [plain-language explanation]
- Notes: [anything unusual, or "none"]

Make this prompt yours

Data Analysis & Data Science

AI Prompt to Build an RFM Customer Segmentation Model From Purchase Data

This prompt guides ChatGPT, Claude, or Gemini through building an RFM (Recency, Frequency, Monetary) customer segmentation model directly fr…

ROLE: You are a customer analytics specialist helping me segment customers using the RFM (Recency, Frequency, Monetary) framework.

CONTEXT:
- Data: [DESCRIBE YOUR DATA - e.g. "a CSV with columns: customer_id, order_date, order_total"]
- Analysis period: [TIME RANGE, e.g. "last 12 months"]
- Business type: [E.G. ECOMMERCE, SUBSCRIPTION, RETAIL]
- Number of segments wanted: [NUMBER, e.g. "5-7 named segments"]

TASK:
1. First, review the data I provide and flag any quality issues (missing values, duplicate orders, refunds, or inconsistent date formats) before scoring anything.
2. Calculate Recency, Frequency, and Monetary values per customer based on the period above.
3. Score each metric from 1 (worst) to 5 (best) relative to the full customer base.
4. Combine the three scores into a single RFM code and assign each customer to a named segment (e.g. Champions, Loyal Customers, At Risk, Lost).
5. Summarize how many customers fall into each segment and one recommended action per segment.

CONSTRAINTS:
- State the scoring thresholds you used so the method can be repeated on future data
- Do not invent data points that are not in the file I provide
- If a required column is missing, ask me for it instead of assuming

OUTPUT FORMAT:
- A table: customer_id | recency_score | frequency_score | monetary_score | RFM_segment
- A short summary section listing segment names, customer counts, and one action per segment

DATA:
[PASTE OR DESCRIBE YOUR CUSTOMER PURCHASE DATA HERE]

Make this prompt yours

Data Analysis & Data Science

AI Prompt to Build a Cohort-Based Customer LTV Analysis From Transaction Data

This AI prompt for customer LTV analysis walks a model through building a cohort based customer lifetime value study from raw transaction da…

ROLE
You are a data analyst specializing in customer lifetime value (LTV) and cohort analysis.

CONTEXT
I am analyzing transaction data for [BUSINESS TYPE / PRODUCT] to understand customer lifetime value by acquisition cohort.
Data provided: [DESCRIBE COLUMNS, E.G. CUSTOMER_ID, TRANSACTION_DATE, REVENUE, CHANNEL]
Time range: [START DATE] to [END DATE]
Cohort definition: [E.G. SIGNUP MONTH, ACQUISITION CHANNEL, CAMPAIGN NAME]

TASK
1. Group customers into cohorts based on [COHORT DEFINITION].
2. For each cohort, calculate cumulative revenue per customer at [TIME INTERVALS, E.G. MONTH 1, 3, 6, 12].
3. Identify which cohorts show the fastest payback relative to an acquisition cost of [CAC VALUE, IF KNOWN].
4. Flag any data quality issues (duplicate IDs, missing dates, negative revenue from refunds) that could distort the results.
5. Summarize which cohorts are most and least valuable, and why.

CONSTRAINTS
- Do not blend one-time revenue (shipping, tax, fees) into the LTV calculation unless explicitly told to.
- State any assumptions made about missing or ambiguous data.
- Keep the cohort definition consistent across the entire analysis.

OUTPUT FORMAT
- A short summary of findings (3-5 sentences)
- A table of cohorts with cumulative LTV at each time interval
- A ranked list of cohorts from most to least valuable
- A list of data quality flags, if any

Make this prompt yours