ExitPoll Surveys
ExitPoll tools let you inspect and manage your in-headset surveys through an AI assistant. ExitPolls have two building blocks: Question Sets (versioned collections of survey questions) and Hooks (named trigger points your application requests questions from). Each hook points at one specific question set version. If you're new to ExitPolls, start with ExitPoll Concepts in the dashboard documentation — these tools manage the same hooks and question sets you see under Project Settings → Manage ExitPolls.
Two rules shape how these tools behave:
- Question set versions are immutable. "Editing" a question set means creating a new version — existing hooks keep showing the version they were assigned until you reassign them, so responses always match the questions users actually saw.
- Deleting is archiving. Archived question sets are hidden from active listings but their data is retained. Hooks cannot be deleted, only unassigned — a hook with no question set is simply skipped silently by your application.
Tips
- Start with the configuration: Use
get_exitpoll_configurationfirst to see your hooks, assignments, and question set versions - Chart results: Ask for a chart of survey responses —
query_exitpollpicks the right chart type per question (scale, multiple choice, thumbs) - Editing safely: Read the current questions with
get_exitpoll_question_setfirst, then create the new version from the complete list — creating a new version never disturbs a live survey, and you reassign the hook when you're ready to switch - Dry runs: Every change previews what will happen first; nothing is written until you confirm
- Write access: Creating, updating, and archiving require an organization-admin or project-admin role — read-only API keys can view but not change ExitPolls
The safe edit loop looks like this — note that creating a new version never moves a hook by itself:
Read the current questions as JSON"] --> B["Modify the COMPLETE question list
(questions you omit are dropped)"] B --> C["create_exitpoll_question_set
Dry-run preview → Confirm"] C --> D["Version N+1 exists —
Hooks still serve version N"] D --> E["update_exitpoll_hook
Reassign when you're ready"] E --> F[Users now see the new version]
Get ExitPoll configuration
Shows a project's full ExitPoll setup: every hook with its assigned question set version (or "unassigned"), and every question set with its versions, status, and question counts.
Sample queries for ExitPoll configuration
- "Show me the ExitPoll setup for project 123."
- "Which question set is the end_of_session hook showing right now?"
- "List my survey question sets and their versions."
- "Are any hooks unassigned?"
Response for ExitPoll configuration includes
- Hooks with their current question-set-version assignments
- Question sets grouped by name, with version numbers and active/archived status
- Question counts per version
Parameters for ExitPoll configuration
Tool name: get_exitpoll_configuration
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
include_archived |
No | Also list archived question sets and versions (default: false) |
Read question set definitions
Returns the full definition of your question sets — every question with its type, exact title, scale range and labels, and answer options — as ready-to-reuse JSON. This is the starting point for editing a survey: because versions are immutable, adding or changing a question means creating the next version from the complete question list, and this tool gives you that list verbatim. (Survey responses don't contain enough information to reconstruct the questions — unselected answer options, scale ranges, and labels aren't in the response data.)
Sample queries for question set definitions
- "Show me the questions in the end_survey question set."
- "What are the exact scale ranges and labels in my post-session survey?"
- "Add an NPS question to the beginning of each of my question sets." (the assistant reads each set first, then creates new versions)
Response for question set definitions includes
- Each version's questions in order, with type-specific details (scale ranges and labels, answer options, voice response length)
- JSON formatted so it can be modified and passed directly to
create_exitpoll_question_set - A reminder that hooks stay on their assigned version until reassigned
Parameters for question set definitions
Tool name: get_exitpoll_question_set
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
name |
No | One question set's versions; omit to list every set |
version |
No | Narrow to a single version (requires name) |
include_archived |
No | Also include archived versions (default: false) |
Create a question set
Creates a new ExitPoll question set — or, if you reuse an existing name, the next version of that set. Supports the same question types you can build in the dashboard's Create a Question Set flow: multiple choice (2–4 answers), scale (numeric range up to 10, with optional end labels), boolean, happy/sad, thumbs up/down, and voice recording. Answers can optionally be saved as Session Properties so you can find sessions with Filters.
To edit an existing set, first read its current questions with get_exitpoll_question_set and include them (modified as needed) in the new version — questions you leave out are dropped from the new version.
Without confirmation the tool returns a dry-run preview (including whether it will create version 1 or the next version of an existing set, and which hooks currently serve the set); nothing is written until you confirm.
Sample queries for creating a question set
- "Create a post-session survey with a comfort scale from 0 to 10 and a yes/no question about standing."
- "Add a new version of the end_survey question set with an extra multiple-choice question."
- "Make a question set with a thumbs up/down question and a voice feedback question."
Response for creating a question set includes
- The new question set's id (
name:version) and version number - For new versions: a reminder that hooks keep their existing assignment until reassigned
Parameters for creating a question set
Tool name: create_exitpoll_question_set
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
name |
Yes | Question set identity — reusing an existing name creates its next version |
title |
Yes | Display title shown in the survey |
questions |
Yes | Ordered list of questions with their type-specific fields |
confirm |
No | Set true to actually create; otherwise a dry-run preview is returned |
Archive a question set
Archives (soft-deletes) a whole question set or a single version of it. The preview warns about anything that would block the archive: a version assigned to a hook must be unassigned first, and a single version can't be archived while it is the latest.
Sample queries for archiving a question set
- "Archive the old_survey question set."
- "Archive version 1 of end_survey."
- "Clean up the question sets we no longer use."
Response for archiving a question set includes
- Which versions were archived
- A reminder that archiving is a soft delete — response data is retained
Parameters for archiving a question set
Tool name: archive_exitpoll_question_set
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
name |
Yes | Question set name |
version |
No | Archive only this version; omit to archive the whole set |
confirm |
No | Set true to actually archive; otherwise a dry-run preview is returned |
Create a hook
Creates a new hook — the named trigger point your application requests survey questions from — and optionally assigns a question set version to it in the same step. This mirrors the dashboard's Create a Hook flow. Choose hook names deliberately: hooks cannot be deleted, only unassigned. (Displaying the survey in your experience is an SDK integration — see the Unity and Unreal ExitPoll pages.)
Sample queries for creating a hook
- "Create a hook called level_complete and assign end_survey version 2 to it."
- "Add an unassigned hook named tutorial_exit."
Response for creating a hook includes
- The new hook and its assignment (or "unassigned")
- Confirmation of each step when creating and assigning together
Parameters for creating a hook
Tool name: create_exitpoll_hook
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
name |
Yes | Hook name your application requests |
description |
No | Human-readable description |
question_set |
No | Question set version to assign, as name:version |
confirm |
No | Set true to actually create; otherwise a dry-run preview is returned |
Update a hook
Reassigns a hook to a different question set version, removes its assignment (your application then skips the survey silently), or changes its description. Fields you don't specify are preserved.
Sample queries for updating a hook
- "Point the end_of_session hook at end_survey version 3."
- "Unassign the tutorial_exit hook."
- "Update the description of the level_complete hook."
Response for updating a hook includes
- The hook's new assignment state
- A dry-run preview showing current → proposed assignment before confirming
Parameters for updating a hook
Tool name: update_exitpoll_hook
| Parameter | Required | Description |
|---|---|---|
project_id |
Yes | The numeric project ID |
hook_name |
Yes | The hook to update |
question_set |
No | Question set version to assign, as name:version |
unassign |
No | Set true to remove the current assignment |
description |
No | New description (existing one kept if omitted) |
confirm |
No | Set true to apply; otherwise a dry-run preview is returned |
Chart ExitPoll results
Survey responses are charted with the query_exitpoll visualization tool — ask for a chart of your survey results and the right chart type is chosen per question type (diverging bars for scale questions, sorted bars for multiple choice, stacked bars for thumbs/boolean). The same data appears in the dashboard's ExitPoll Results page.
Sample queries for ExitPoll results
- "Chart the responses to my end-of-session survey."
- "How did users answer the comfort question last month?"
- "Show me the NPS breakdown from the exit poll."
Tool name for charting ExitPoll results
Tool name: query_exitpoll
Available Tools
| Tool | Purpose |
|---|---|
get_exitpoll_configuration |
Hooks, assignments, and question set versions for a project |
get_exitpoll_question_set |
Full question definitions as reusable JSON — the starting point for edits |
create_exitpoll_question_set |
Create a question set, or a new version of an existing one |
archive_exitpoll_question_set |
Archive (soft delete) a question set or one version |
create_exitpoll_hook |
Create a hook, optionally assigning a question set version |
update_exitpoll_hook |
Reassign, unassign, or re-describe a hook |
query_exitpoll |
Chart survey responses per question type |
If you have a question or any feedback about our documentation please use the Intercom button (purple circle) in the lower right corner of any web page or join our Discord.