Skip to main content

Questions Each Person Is Asked

An experience can ask every person on a booking for their own answers at checkout: their size of an item the experience uses (a wetsuit, a helmet, a pair of boots), and any question of the shop's own, such as a certificate level, a weight or "Can you swim 50m?". When an experience asks anything, the booking page asks each person on their own card.

These endpoints list and manage those questions for one experience.

Two kinds of questionโ€‹

  • Item sizes. Turn them on per gear row with ask_size on the experience's equipment list (Create Experience or Update Experience). The choices are the item's own sizes, the same ones its rentals use, so they are changed on the item, never here. A size question is listed with is_size: true and the item's product_id.
  • The shop's own questions. Add, change and remove them with the endpoints below.

Checked at check-inโ€‹

A question with checked_at_checkin: true is one the crew checks when people check in. A person with no answer is flagged on the booking, the session page and the manifest. Check-in still goes ahead.

Answersโ€‹

Each person's sizes come back on the booking as gear_sizes, and the questions they have not answered yet as missing. See Get Booking. Staff fill a gap with Update Participant.

Endpointsโ€‹

MethodEndpointDescriptionScope
GET/v1/experiences/{id}/questionsEverything this experience asks each person, sizes includedexperiences:read
POST/v1/experiences/{id}/questionsAdd one of the shop's own questionsexperiences:write
PATCH/v1/experiences/{id}/questions/{fieldId}Change a questionexperiences:write
DELETE/v1/experiences/{id}/questions/{fieldId}Stop asking a question on this experienceexperiences:write

The Question Objectโ€‹

{
"field_id": 88,
"label": "Can you swim 50m?",
"answer_type": "yes_no",
"is_size": false,
"product_id": null,
"choices": [],
"required": true,
"checked_at_checkin": true
}
FieldTypeDescription
field_idintegerThe question's ID. Use it to change or remove the question, and as the key in a participant's custom_field_values
labelstringThe question as the customer reads it
answer_typestringtext (short answer), select (one choice), multi_select (several choices), number, yes_no or date. A size question is select
is_sizebooleantrue when this is the size of an item the experience uses
product_idinteger|nullThe item a size question belongs to; null for the shop's own questions
choicesstring[]The answers to choose from, for select and multi_select. For a size question, the item's sizes. Empty for the other kinds
requiredbooleanThe customer must answer it at checkout. Staff can still save a booking without it and fill it in later
checked_at_checkinbooleanThe crew checks it at check-in; a missing answer is flagged, never blocking

Authenticationโ€‹

Read operations require experiences:read; write operations require experiences:write.