Responses are the core data collected by Formbricks. A response represents a user’s answers to a survey, along with metadata about when, where, and how they responded.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/formbricks/formbricks/llms.txt
Use this file to discover all available pages before exploring further.
What is a Response?
A response is created when a user interacts with a survey. It contains:- Answer Data: The actual responses to each question
- Metadata: Browser, device, location, referrer, etc.
- Contact: The user who responded (if identified)
- Status: Completed or partial (abandoned)
- Timestamps: When started, updated, and finished
- Tags: Labels for organization and filtering
- Variables: Custom data passed from your app
- Hidden Fields: Additional context (UTM params, experiment variants, etc.)
Response Lifecycle
Response Created
When a user opens a survey, a response record is created with status
finished: false. This happens even if they don’t answer any questions yet.Answers Recorded
As the user answers questions, their responses are saved to the
data field. For in-product surveys, answers are sent in real-time. For link surveys, answers are batched.Response Completed or Abandoned
- Completed: User reaches the end and submits (
finished: true) - Partial: User abandons mid-survey (
finished: false)
Response Data Structure
Each response has the following structure:Key Fields Explained
data (Response Data)
data (Response Data)
The actual answers to survey questions. Keys are question IDs, values are answers.Value types:
- String: Open text, single choice (
"Very satisfied") - Number: Ratings, NPS (
9) - Array: Multiple choice (
["Option A", "Option B"]) - Object: Matrix questions (
{"row1": "col1", "row2": "col2"})
meta (Metadata)
meta (Metadata)
Contextual information about where and how the response was collected.Fields:
url: Page URL where survey was shownsource: Survey source (“link”, “app”)userAgent: Browser, OS, devicecountry: User’s country (if IP geolocation enabled)ipAddress: User’s IP (if capture enabled)action: Trigger action that showed the survey
variables (Custom Variables)
variables (Custom Variables)
Dynamic values you pass to personalize the survey. These are also saved with the response.Use cases:Variables are available in response data for analysis.
- Personalization:
firstName,companyName - Context:
currentPlan,trialDaysLeft - Segmentation:
experimentVariant,featureFlags
ttc (Time to Complete)
ttc (Time to Complete)
Time spent on each question in seconds.Example:Use cases:
- Identify confusing questions (high TTC)
- Optimize survey length
- Detect rushed responses (very low TTC)
tags (Response Tags)
tags (Response Tags)
contactAttributes (Snapshot)
contactAttributes (Snapshot)
A snapshot of the contact’s attributes at the time of response. Useful if attributes change later.Example: User was on “free” plan when they responded, but upgraded to “pro” later.
contactAttributes preserves the original “free” value.Completed vs. Partial Responses
Completed Responses (finished: true)
User reached the end of the survey and clicked submit.
Characteristics:
- All questions answered (unless optional)
finished: true- Counted in completion rate
- Included in response count by default
Partial Responses (finished: false)
User started the survey but didn’t complete it.
Reasons for partial responses:
- User closed the survey mid-way
- Survey auto-closed (timeout)
- User abandoned the tab/page
- Technical error
- Identify where users drop off
- Understand question difficulty
- Recover some data even if incomplete
Tip: Filter by
finished: false to analyze drop-off patterns. If many users abandon at Question 3, it might be confusing or too intrusive.Viewing Responses
Navigate to a survey and click the Responses tab.Summary View
Aggregated view of all responses:- Response count and completion rate
- Question breakdown: Charts and visualizations for each question
- Timeline: Responses over time
- Response rate: Displays vs. responses
Individual Responses
Table view of individual responses: Columns:- Response ID
- Contact (if identified)
- Status (Completed/Partial)
- Created date
- Tags
- Custom attributes
- Full answer details
- Metadata (browser, location, etc.)
- Time to complete per question
- Contact profile (if linked)
Filtering Responses
Filter responses to analyze specific segments:Filter by Completion Status
- Completed only:
finished: true - Partial only:
finished: false - All responses: No filter
Filter by Contact Attributes
Example: Show only responses from Pro plan usersFilter by Response Data
Example: Show only NPS detractors (score 0-6)Filter by Tags
Example: Show only responses tagged “Feature Request”Filter by Date Range
Example: Show responses from last 30 daysCombine Filters
All filters use AND logic:Tagging Responses
Tags help you organize and categorize responses.Manual Tagging
- Click a response
- Click “Add Tag”
- Select existing tag or create new one
- Tag is applied immediately
Bulk Tagging
- Filter responses (e.g., NPS ≤ 6)
- Select multiple responses
- Click “Add Tag”
- Apply tag to all selected
Automated Tagging (via Webhooks)
Use webhooks to auto-tag responses based on logic: Example: Tag all NPS detractors automaticallyExporting Responses
CSV Export
Steps:- Go to Responses tab
- Apply filters (optional)
- Click “Export to CSV”
- Download file
- All response data
- Contact attributes
- Metadata
- Timestamps
- Tags
- Import into Excel/Google Sheets
- Analyze in BI tools (Tableau, Power BI)
- Share with non-Formbricks users
API Export
Fetch responses programmatically:Webhook Integration
Send responses to external tools in real-time: Popular integrations:- Slack: Notify team of new responses
- Notion: Create database entries
- Zapier/Make/n8n: Connect to 1000+ apps
- Your CRM: Sync to Salesforce, HubSpot, etc.
- Go to Settings → Integrations
- Add webhook URL
- Choose trigger (response created, updated, finished)
- Formbricks sends response data to your endpoint
Response Metadata Deep Dive
User Agent Parsing
Formbricks automatically parses user agents: Detected fields:- Browser: Chrome, Firefox, Safari, Edge, etc.
- OS: Windows, macOS, Linux, iOS, Android
- Device: Desktop, Mobile, Tablet
- Identify mobile-specific issues
- Filter responses by device type
- Understand browser compatibility
Geolocation
If IP capture is enabled, Formbricks detects country: Privacy note: Formbricks does not store precise location (city/coordinates), only country-level data. Use cases:- Regional feedback analysis
- Localization insights
- Time zone considerations
Referrer & URL
For in-product surveys, Formbricks captures:- URL: Page where survey was shown
- Referrer: Previous page (if available)
- Understand context (e.g., survey shown on pricing page)
- Identify high-value feedback sources
- Track campaign effectiveness
Analytics & Insights
Response Rate
Response rate = Responses / Displays Example: 50 responses from 500 displays = 10% response rate Benchmarks:- Link surveys: 5-15% typical
- In-product surveys: 20-40% typical (much higher!)
- Add welcome card with context
- Keep surveys short (less than 5 questions)
- Show surveys at the right moment
- Personalize with user’s name
- Offer incentives (if appropriate)
Completion Rate
Completion rate = Completed responses / Total responses Example: 80 completed out of 100 started = 80% completion rate Benchmarks:- Good: >70%
- Needs improvement: <50%
- Remove unnecessary questions
- Simplify question wording
- Add progress indicator
- Make optional questions truly optional
- Test survey flow in development
Time to Complete (TTC)
Average time users spend on the survey. Benchmarks:- Ideal: 1-3 minutes
- Acceptable: 3-5 minutes
- Too long: >5 minutes (expect drop-offs)
- High TTC = confusing or requires thought
- Very low TTC = skipped or skimmed
Best Practices
Review Responses Regularly
Review Responses Regularly
Set up Slack notifications or check the dashboard daily. Fresh feedback is most actionable.
Tag Responses for Follow-Up
Tag Responses for Follow-Up
Tag high-value responses (“Interview Candidate”, “Feature Request”) and follow up within 48 hours.
Analyze Partial Responses
Analyze Partial Responses
Don’t ignore abandons! They tell you where your survey loses people.
Segment by Contact Attributes
Segment by Contact Attributes
Always analyze by segment (free vs. paid, new vs. tenured). Aggregated data can hide insights.
Export Regularly
Export Regularly
Back up response data monthly. Integrate with your data warehouse for long-term analysis.
Close the Loop
Close the Loop
Email users who gave valuable feedback. Thank them and share how you’re using their input.
Respect Privacy
Respect Privacy
Only capture IP/location if necessary. Follow GDPR and give users control over their data.
Next Steps
Surveys
Learn how to create surveys that collect valuable responses
Contacts
Understand how responses are linked to contacts
Integrations
Send responses to Slack, Notion, your CRM, and more
API Reference
Fetch and analyze responses programmatically