Free text
Free-text questions let users answer with text. We just check that the answer is in text form. If the answer isn’t text, the system sends a validation message asking the user to provide a text response.
Single option
Single-option questions display a list of options for the user to choose from. You can use buttons, a list of options, emojis, or numbers to provide the choices.Buttons
Buttons provide users with up to three options and validate that the response is one of the given choices. Buttons have a maximum of 20 characters per option. If you need more characters, use theEmoji or numbers feature.
List of options
Add a list of options to your message with theList of options WhatsApp feature. WhatsApp limits this to 10 items. You can customize the opening text and the title of the list. Validation ensures that the answer is one of the options provided.
List options have a limit of 20 characters per option. If you need more characters, use the Emoji or numbers feature.
Emojis or numbers
If you want to send more than 10 options, this option is recommended. It sends an unlimited list of options and allows the user to reply with an emoji or a number that corresponds to the option. Depending on the type of list, the message will be appended with an emoji or number and validates that the answer is one of the provided number/emoji options.
Dynamic options
You may provide a list of options manually or retrieve them from an external source, for example, an API. One use case is if you have a menu that retrieves a user order history and wants to use this information to create a list of options. You can use theDynamic options feature to retrieve the list of options from a webhook.
When using Dynamic options you need to configure the ID for them and which label will be shown. Here’s an example of a List question with dynamic options using Pokemons:
In order to use the dynamic list option, the options must be a list of elements. For example:
[{name: "Pikachu", value: 1}, {name: "Bulbasaur", value: 2}, ...]Validation messages
You can customize the validation message for each question step. The system will send this message when the user’s response does not match the expected answer.
You can also send your users to another step if they fail to answer a certain amount of times. Learn more about this option here.
Timeout messages
You can set a timeout to move the user to the next step if they haven’t answered after a certain amount of time. This creates a branch in the flow that will be triggered when the timeout is reached. You can also add extra steps, like sending the user a message to ask if they need help before sending them back to the question step.
Number
Validates that it receives a numerical value in the answer. By default, the number question only allows integers. To enable decimals, you can check the Allow decimals in answer option.
Additionally, you can set a minimum and maximum value for the answer. If the user sends a number outside of the range, the validation message will be sent.
Location
Validation ensures that the system receives a location and saves its latitude and longitude.
Date
Validates that the user sends a date, it supports several formats.
File
Validates that the user sends a image, video or document file.
URL
Validates that the user sends a valid URL, including a top-level domain (e.g., .com, .io, or .mx).
Validates that the user sends a valid domain address, including an @ symbol and a top-level domain (e.g., .com, .io, or .mx).
Phone number
Validates that the phone number is valid. Checks that the number contains 10+ digits and starts with a + symbol.
You may set a default country code for the phone number. If the user sends a number without a country code, the system will add the default country code to the beginning of the number and check that it has 10 digits.
Image
Validates that the user sends an image (.jpg or .png)
Video
Validates that the user sends a video (.mp4)
Set a time window
You can specify a time frame in which the timeout is active. If the user responds after the time frame has elapsed, the conversation will resume when the conversation window reopens.
Limit attempts
If a user gets stuck on a question step, you can limit the number of attempts they have to answer it. Once they reach the limit, the timeout branch will be triggered. This lets you redirect them to another step or send the conversation to an agent, if necessary.

