PostHog Guide8 min read
How to Turn PostHog Surveys and Product Data into Product Insights
Last updated: · By Matt Teixeira, Founder and CEO
On this page
To analyze PostHog survey responses for product insights, group the open-text answers into themes, count unique people per theme rather than mentions, then check what those people did in PostHog: did they activate, keep using the feature, stay? The survey tells you why; the events tell you how much it matters. PostHog stores every answer as an event on the person who gave it, so the join happens inside PostHog. The part you add is a theme list that holds steady from one survey to the next.
Key Takeaways
- PostHog stores each survey answer as an event on the respondent, linked to their session replay (PostHog docs). The first 1,500 responses a month are free (PostHog pricing).
- Target surveys at a behavior you can't explain, such as a stalled onboarding step.
- Rank themes by unique people and by what those people did, not by mentions.
- In-app surveys only reach people who still use your product. Ask churned users by email.
- Deck's PostHog integration syncs survey responses into Themes and NPS tracking. It doesn't import replays or Support tickets.
What Feedback Does PostHog Hold?
Surveys are the obvious source, but PostHog also holds support tickets, replays, and the person properties that tell you who is talking.
| What PostHog holds | What it tells you | Imported by Deck's PostHog integration? |
|---|---|---|
| Surveys: popover, feedback widget, hosted form, or API (source) | Ratings, NPS, choices, and open-text answers, each tied to a person | Yes: surveys, questions, and responses |
| Support, formerly Conversations: tickets from the in-app widget, email, Slack, and GitHub (source) | What people need help with, with replay and events attached | No |
| Product analytics | Funnels, trends, paths, and retention | Not by the survey sync; Deck Intelligence can query them (see below) |
| Session replay | What a respondent did before answering | No |
| Person properties and distinct IDs | Plan, company, email, and identity | Used to match responses to contacts and accounts |
Responses arrive as survey sent events, with each answer in a property named $survey_response_ plus the question ID (PostHog docs), so you can filter any insight by survey answer.
How Do You Analyze PostHog Survey Responses Inside PostHog?
PostHog's own tools are enough for a quick read of one survey.
- Results tab: response counts and charts you can filter by answer, person property, cohort, or feature flag (PostHog docs).
- PostHog AI: ask it to summarize a survey and it groups answers into themes, labels sentiment, and compares segments such as free and paid users (PostHog docs). It uses AI credits: 500 free a month, then $0.01 each (PostHog pricing).
- SQL insights:
getSurveyResponse()breaks any insight down by answer. - PostHog MCP server: an agent in Claude Code or Cursor can list responses and "summarize open-text answers into themes" (PostHog docs).
What's missing is memory. PostHog AI summarizes the survey you name when you ask, and its docs don't describe a saved theme list that carries from one survey to the next. To know whether "import fails" grew across three surveys this quarter, you need the stable theme list you build in Step 2.
Step 1: Survey the People Whose Behavior You Want Explained
Start from a number you can't explain, then ask the people behind it. PostHog targets surveys by person properties and cohorts, and cohorts can be built from behavior, so point each question at a drop-off:
- Stalled activation: started onboarding but didn't reach your activation event within three days.
- Pricing hesitation: opened the pricing page twice in a week without upgrading.
- Failed adoption: tried a new feature once and never came back.
Keep each survey to one rating and one open-text "why." As a rule of thumb, wait for about 30 substantive answers per segment before you trust theme counts, and treat a theme raised by fewer than five people as a lead, not a finding.
Step 2: Group Open-Text Answers into Themes and Count People
Read 50 answers yourself before you let AI tag anything. Draft 5 to 10 themes, each with a one-sentence definition and an example quote, then tag the rest. How to build a customer feedback taxonomy covers naming and splitting themes.
- Count people, not mentions. Dedupe on distinct ID or email, so someone who complains in two surveys counts once.
- Drop empty answers. "Good," "n/a," and "fine" are not feedback.
- Keep ratings as filters, not themes. "Detractors who mention import" is useful. A theme called "Satisfaction" is not.
Step 3: Join Each Theme to What Those People Did
Combine PostHog product analytics with customer feedback by joining on the person, not the calendar. "NPS fell the week we shipped the editor" is a guess. "The 31 people who said import fails activated at less than half the usual rate" is evidence.
Upload the distinct IDs behind each top theme as a static cohort, which PostHog accepts as a CSV (PostHog docs). Then compare that cohort with everyone who answered:
| Question | Check in PostHog |
|---|---|
| Is this theme blocking people? | Activation funnel conversion, cohort vs. all respondents |
| Do they use the thing they complain about? | Weekly users of that feature in the cohort |
| Do they stay? | Cohort retention at 30 and 60 days |
| What happened right before? | Five session replays from the cohort |
Watch five replays per theme, not fifty. As a rule of thumb, five show whether people are confused, blocked, or hitting a bug; the cohort tells you how many.
Worked Example: Behavior Reranks Three Onboarding Themes
This example is illustrative. A B2B SaaS team surveys new users three days after signup: "How easy was setup?" on a 1 to 5 scale, then "What almost stopped you?"
- Responses: 420 in 30 days, 190 of them substantive open-text answers.
- Themes by unique people: "Can't invite teammates during the trial" (38), "CSV import fails" (31), and "Pricing is unclear" (22).
- Join: the invite cohort activated at 82%, against 58% for all respondents. The import cohort activated at 23%.
- Replays: four of five import replays show the same date-format error.
- Decision: the import fix ships first despite fewer mentions, because it blocks activation. Invites go to the backlog as a real but non-blocking annoyance.
- After release: the team reruns the survey and compares equal windows, as in how to measure release impact.
By mentions alone, the team would have built invites first.
Common Mistakes with PostHog Survey Data
- Changing the question mid-survey. New wording starts a new series, so launch a new survey or log the date.
- Leaving respondents anonymous. Unidentified answers can't join to accounts or revenue, so identify users before the survey shows.
- Surveying everyone at once. Broad popovers bring shallow answers and fatigue.
How Deck's PostHog Integration Works
Deck's PostHog integration automates Step 2 and keeps one theme list across your surveys and other sources. Connect PostHog in Settings → Integrations, pick the surveys, and sync daily or on demand (Deck PostHog docs).
- Open-text answers become insights with a verbatim quote, sentiment, a category such as Pain Points, and matching Themes. Answers under 10 meaningful words are skipped.
- Ratings, choices, CSAT, and CES stay as filterable structured data, outside your Themes. NPS questions are detected automatically and feed the NPS Score dashboard.
- Responses link to contacts and accounts by email or PostHog distinct ID, next to the same customer's tickets and calls. You can assign a segment, such as Enterprise, to each survey.
- Product analytics is a separate connection. An admin connects PostHog as a team source in Deck Intelligence with a read-only API key. Anyone can then ask funnel, trend, and retention questions, and each answer cites the query it ran (Deck Intelligence docs).
Survey insights count toward Themes and the Opportunity Backlog alongside your other integrations, and the release impact check playbook compares a theme before and after a launch.
Limitations: the survey sync imports surveys and responses only, not replays or Support tickets. The analytics connection covers one PostHog project, is rolling out gradually, and reports what people do but never who they are, so build cohorts in PostHog itself. NPS Analytics needs Starter or above. The Free plan includes one integration and 200 AI credits a month, about 65 survey items, so you can try Deck with PostHog as that integration.
Other Ways to Analyze PostHog Feedback
| Option | How it works | Price | Best for |
|---|---|---|---|
| CSV export plus ChatGPT or Claude | Export responses and paste them into a chat, as in PostHog's tutorial (source) | Your AI assistant plan | A one-time read of a few hundred answers |
| Spreadsheet theme list | Tag each exported row and pivot by unique respondent | Free | One owner, a couple hundred answers a month |
| Dovetail | Each submission becomes a data point, synced about hourly; needs PostHog Cloud and an open-text question (source) | Free with one project and one channel, or custom Enterprise (source) | Research teams already keeping interviews in Dovetail |
| Deck | Syncs surveys into Themes, NPS, and contacts, next to support tickets, calls, and Slack | Free $0; Starter $99/month, or $79 billed annually | Product teams ranking opportunities across several sources |
If PostHog surveys are your only feedback source, PostHog AI plus a spreadsheet theme list is enough. A dedicated tool earns its cost once surveys are one source among several, such as Typeform responses, tickets, and calls, and you need one theme counted across all of them.
Frequently Asked Questions
Sources
- PostHog: Get Started with Surveys
- PostHog: Viewing Survey Results
- PostHog: Summarize Surveys with PostHog AI
- PostHog: Use Surveys over PostHog MCP
- PostHog Pricing
- PostHog: Getting Started with Support
- PostHog: Cohorts
- PostHog: How to Analyze Surveys with ChatGPT
- Dovetail: PostHog Integration
- Dovetail Pricing
- Deck Docs: PostHog Integration
- Deck Docs: Deck Intelligence
- Deck Pricing
Sources checked November 2, 2026.