What’s tracked
Surveys 2.0 report a small set of events while someone takes a survey:
Each event carries the survey version, channel (
web, ios, android, page, email, embed), device class (phone, tablet, desktop), operating system, SDK version, language, the page path (without query string) and, on the survey page, the referrer host and UTM parameters.
No answers in analytics. Events never contain answer values — only the score of
nps, csat, rating and scale questions, so score trends can be split by device or channel. Viewers are counted with a hashed id (contact, session or an anonymous per-browser id), never an email or name. Events are kept for 13 months; responses themselves follow your normal data retention.In the dashboard
- Header: views, unique views, starts, submissions, start rate (starts ÷ views), completion rate (submissions ÷ starts) and average time to complete — each with the change against the previous period of the same length, and split by device. Surveys with a welcome screen also show Welcome → Start: of the people who saw the welcome screen, the share that pressed Start.
- Funnel: every question in order with viewed, answered and skipped counts, how many people closed the survey on it (drop-off), median and 75th-percentile time on the question and back navigations. The question with the highest drop-off is highlighted.
- Dismissed: people who closed the survey without answering anything, and how quickly.
- Trend: views, starts and submissions per day or week, plus the score over time.
- Breakdowns: channel, device, operating system and language, with completion rate and score per row; per-version results after you publish changes.
- Sources: top page paths, referrers and UTM campaigns.
- Best time: the hours and weekdays when people submit, in your time zone.
- Reminders and email: reminders sent, responses resumed and completed after a reminder; email campaigns with sent, opened, answered and completed.
- Quality: speeders (completed faster than 30% of the median completion time) and straight-liners (the same value on every scale question).
API
GET /v3/engagement/surveys/{id}/analytics
Uses the admin REST API authentication and needs permission to view surveys.
The previous period is the same number of days right before
from. Results are cached for 60 seconds. When available is false there are no events for the survey in the range (for example a legacy survey) — use stats instead.
Rates are fractions from 0 to 1, times are milliseconds. A trimmed example:
Response filters and export
The responses list and the CSV/JSON export take these filters in addition tostatus:
List items include
device ({ class, os } or null), startedAt, fields (hidden field values), source (UTM parameters and referrer) and quality ({ speeder: true } and/or { straightLine: true } when flagged).
Export columns: startedAt, submittedAt, durationMs, device, os, language, pageUrl, utm_source, utm_medium, utm_campaign, referrer, then one field_<key> column per hidden field — next to the answer columns (one per answer key).
AI agents (MCP)
The Gleap MCP server has aget_survey_analytics tool with the same filters (from, to, version, channel, device, interval, tz). It returns a compact view for agents: header metrics with the previous period and the change, the funnel (up to 30 questions) with drop-off in percent and median seconds, the worst question, dismissals, timing, the top 5 close points, the score against the previous period, versions, the top rows per breakdown and source, the three busiest day/hour slots, reminders, email totals and quality counts. get_survey_results also includes the funnel when events exist.
Which question loses the most people in the churn survey, and is it worse on phones?
Send survey events to your analytics
Gleap can also push survey events from the JavaScript SDK into the analytics already on your site — Google Analytics 4, Google Tag Manager or Meta Pixel — so you can build audiences and conversions on them. It’s off by default. Turn it on for one survey with the analytics toggle under Share → In the app, or for every survey in the project with the project settingsurveyAnalyticsForwarding (flow config).
Parameters (only those that apply):
Answer values are never sent. Closing a survey isn’t forwarded.
Where the events go:
Each destination is optional; Gleap never loads these scripts itself. Events are sent from the page the survey runs in, so they follow your site’s own consent setup.
To react to survey events in your own code instead, listen to the SDK events:
survey-shown, survey-step-viewed, survey-answered, survey-completed and survey-closed are available in the JavaScript SDK.