Component: BOOKING_QUESTIONS
Abstract
Booking questions allow to gather arbitrary passenger information at the time of booking.
Values for this component can be set via ExperienceComponentsDto.bookingQuestions
which is an array of ExperienceBookingQuestionDto
entities. Each element refers to a specific booking question. Send empty array to clear this value on update.
Make sure you always send a complete set of questions when updating this component, as omitted questions will be deleted.
Attributes of ExperienceBookingQuestionDto
Attribute JSON path | Attribute JSON path | Data type | Mandatory | Settable | Notes |
id | long | On update only, otherwise must be omitted | Question id | ||
created | TimestampDto | When was this booking question created?
Expressed as number of milliseconds since January 1, 1970, 00:00:00 UTC. | |||
lastModified | TimestampDto | When was this booking question last modified?
Expressed as number of milliseconds since January 1, 1970, 00:00:00 UTC. | |||
label | string | ✓ | ✓ | This is the question the customer will be asked | |
personalData | boolean | ✓ | ✓ | Whether this question is asking for personal data | |
required | boolean | ✓ | ✓ | Whether answer for this question is required to complete the booking | |
help | string | ✓ | Extra text that explains the question further | ||
placeholder | string | ✓ | This text will appear when there is no value filled in | ||
dataType | ExperienceBookingQuestionDataTypeDto | ✓ | ✓ | Data type of the answer. The UI will render slightly different component and do different validation based on this type at the time of booking. | |
defaultValue | string | ✓ | Default value of the answer if the question hasn't been answered just yet | ||
context | ExperienceBookingQuestionContextDto | ✓ | ✓ | Whether this question is asked per booking, per passenger or per extra | |
pricingCategoryTriggerSelection | ExperienceBookingQuestionTriggerSelectionDto | ✓ | ✓ | Should this question be asked if ALL vs SELECTED_ONLY pricing categories are booked. For example, only ask for Driving license number when adults book. | |
pricingCategoryTriggers | Array of int s | Mandatory if pricingCategoryTriggerSelection is SELECTED_ONLY , otherwise should be omitted | ✓ | Which booked pricing categories ( PricingCategoryDto.id ) should be triggering this question? | |
rateTriggerSelection | ExperienceBookingQuestionTriggerSelectionDto | ✓ | ✓ | Should this question be asked if ALL vs SELECTED_ONLY rates are booked. | |
rateTriggers | Array of IdExternalIdDto s | Mandatory if rateCategoryTriggerSelection is SELECTED_ONLY , otherwise should be omitted | ✓ | Which booked rates (expressed as ExperienceRateDto.id and/or ExperienceRateDto.externalId ) should be triggering this question? | |
extraTriggerSelection | ExperienceBookingQuestionTriggerSelectionDto | ✓ | ✓ | Should this question be asked if ALL vs SELECTED_ONLY extras are booked. | |
extraTriggers | Array of IdExternalIdDto s | Mandatory if extraTriggerSelection is SELECTED_ONLY , otherwise should be omitted | ✓ | Which booked extras ( ExtraDto.id ) should be triggering this question? | |
options | Array of ExperienceBookingQuestionOptionDto | Mandatory if dataType == OPTIONS , otherwise should be omitted | ✓ | When updating, a complete set of all options should be sent. Omitted options will be removed. | |
id | long | Mandatory on update if a given option is updated. Should be omitted on create. | ✓ | ||
label | string | ✓ | ✓ | Question label (text) | |
value | string | ✓ | ✓ | Actual value that will be recorded once the relevant label is selected |
Did this answer your question?
😞
😐
🤩