Skip to content

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.
graph LR App[Your XR app] -->|Requests questions from| H1[Hook: end_of_session] App -->|Requests questions from| H2[Hook: tutorial_exit] H1 -->|Assigned to| V2["end_survey : v2 (live)"] H2 -.->|Unassigned — survey skipped| U[" "] subgraph QS ["Question set: end_survey"] V1["v1 (archived)"] V2 V3["v3 (created, not yet live)"] end style U fill:none,stroke:none

Tips

  • Start with the configuration: Use get_exitpoll_configuration first to see your hooks, assignments, and question set versions
  • Chart results: Ask for a chart of survey responses — query_exitpoll picks the right chart type per question (scale, multiple choice, thumbs)
  • Editing safely: Read the current questions with get_exitpoll_question_set first, 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:

flowchart TD A["get_exitpoll_question_set
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

intercom 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.