A started session went idle
When a started session has been idle for 30 minutes: the answers so far and the last page, no outcomes.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The payload version
When the event happened
The event’s object
object
The topic’s object
object
How many components answers holds
The session’s answers keyed by component_key; a component on two pages holds its last answer. Email and phone answers only on endpoints with include_pii
object
object
What kind of answer this is
The question as the quiz labels it
The chosen options’ ids; empty for a typed answer
The page the component is on
The answer as stored: an option id or the typed text, a JSON number for a number, a {date, time} object for a date
The answer as the shopper saw it: option labels, or the typed value as text
How the shopper arrived: direct | organic_search | paid_search | organic_social | paid_social | email | sms | affiliate | display | paid_other | referral | ai_assistant | other | shared_results
The device as parsed from the session’s user agent when it opened
object
Mobile | tablet | desktop
The session’s id, the same session_id the profiles API shows
object
True only when the shopper ticked the marketing-consent box on their newest run that showed it; anything else, including a skipped page or a quiz without the box, is false
Email | phone | shopify_customer_id. A new kind may be added, so skip one you do not know. shopify_customer_id arrives when the shopper takes a quiz logged in to the store or places an order linked to a quiz session; its consent is always false
The email (lowercase), the phone (E.164), or the Shopify customer as a gid://shopify/Customer/
The quiz the session ran
When the session opened
The shopper’s browser: the persistent visitor, or a visitor of this session only until analytics consent is given
The event id, also sent as the webhook-id header; deduplicate on it
The topic: quiz.started | quiz.finished | quiz.abandoned | identity.captured | quiz.published | experiment.started | experiment.ended | profile.created | profile.updated | export.completed | webhook.endpoint.disabled | ping
Responses
Section titled “Responses”Any 2xx within 10 seconds acknowledges the event
410 ends the delivery and disables the endpoint; any other 4xx but 408 and 429 ends it
Retried, as are 408, 429, a timeout and a network error: seven retries over about 28 hours, then the delivery is dead
