Ask a Question
Many bots will want to collect more info from the user before they can do something useful. Our Ask a Question action allows you to do this easily and intelligently.
By stringing multiple questions together, as separate actions one after the other, you can ask a series of questions too.
Settings & Outputs
You'll need to set up these inputs:
- Response Path - this tells Flow XO where to route the message (it's normally the response path output from the trigger).
- Question Type - choose what type of question this is. You can find a description of each type below.
- Question - the text you'd like to use to prompt the user. You can choose to 'add a variation' to create several versions of the prompt text. One of the variations will be chosen at random, making the conversation feel more natural if it's a question that's asked often.
- Choices - only if you choose the choice question type. Provide the choices that you'll offer to the user. If the underlying value will be different to the name of the choice, you can define that too. Otherwise, the choice itself will be used as the value.
- Validation - only if you choose the text question type. Either choose from the available predefined validation formats (more details below), or select Regex to provide a regular expression.
- Custom Validation Message (only shown if a validation type is chosen) - leave this field blank to use the default validation message, or add your own message to customize it.
- Expire After - the question will expire after this amount of time, or if an invalid answer is given twice.
- Notify on Timed Expiry - sends a message if the question expires automatically (after the amount of time selected in Expire After).
- Custom Expiry Message - leave this field blank to use the default expiry message, or add your own message to customize it.
- Send Reminder - send a message half way through the expiry time (or after 15 minutes if no expiry) to remind the user to answer the question.
- Custom Reminder Message (only shown if you choose to send a reminder) - leave this field blank to use the default reminder message, or add your own message to customize it.
- Skip Question - if you tick this option, we'll tell the user they can write "skip" (or similar words) to skip the question. If they do this, the answer output will be empty.
Here are the outputs you'll be able to use:
- Date & Time - the date and time that the answer was received.
- Answer - either the text that the user typed in or the name/value of their choice.
- Choice - if this is a choice type question, this output will contain the choice itself (as opposed to the value, if one is defined). It will always be empty for none-choice questions.
You can choose from 2 question types currently:
- Text - the next message in the same channel is accepted as the answer (after validation, if enabled).
- Choice - the user is told what the options are and asked to make a choice. We'll show a set of buttons if the platform supports it. The next answer must be a case insensitive match to one of the choices (or a click of a button). If the user's response isn't recognised, the question will be asked again until a recognised choice has been made.
By choosing a validation, you can be sure that an answer will only be accepted if a known data type can be parsed from the user's response. The answer will also be standardized.
The available validations are:
- Email Address
- Decimal (10,00 - comma decimal mark)
- Decimal (10.00 - dot decimal mark)
- Date (mm/dd - American date format)
- Date & Time (mm/dd - American date format)
- Date (dd/mm - European date format)
- Date & Time (dd/mm - European date format)
Validations will produce the following standard formats:
- Decimal (10,00):
- Decimal (10.00):
- Date & Time:
The 'Date' and 'Date & Time' validations work with natural language expressions such as "tomorrow" or "friday at 10am". Our guide to Date & Time Handling has more details about what formats are understood.
Dates and times are processed and output in the timezone set at the account level, except where a timezone offset is provided as part of the date (for example, -05:00 or +0100).
If the user provides other words around the answer, we'll try to parse the answer itself from the response. For example, email will accept "my email is firstname.lastname@example.org" and output "email@example.com" as the answer.