Requisites are the main way to collect information from the user through Q&A.
They can be added to any text or event trigger and your virtual assistant can ask for a single or multiple pieces of information from the user within a single trigger.
You can be explicit when asking for information, by making a requisite required. Optional requisites can be skipped.
Requisites consist of the following fields:
Checks if an entity or context variable is present. If this field is not empty, the user's answer must match the specific requested value. Some requested values examples can be emails, payment methods or dates.
- Entities start with
@and context variables start with
- You can check for nested context variables such as
- Entity values are used only for the specific dialog, while context variables are saved for the whole session.
- Entities start with
Saves the user's answer inside a context variable. You can also save variables into a nested object. For example, you can save a variable as
$user.phoneto fill the user's phone number.
In the cases where you fill the
CHECK FORfield with an entity, the brain creates two variables in the context. The first one has the name you specify in the
SAVE ASfield and its value is what the user types. The second one has the suffix
_valueon what you have specified and its value is the entity corresponding to the user's response.
IF NOT PRESENT, ASK(Optional): If the value is not present in the dialog (entity), or the session (variable), you can set up a question to ask the user to get the answer you need. This automatically makes the requisite required.
Any Number Text Email Phone URL Integer
TYPE: Checks that the user's answer is of one of the following types:
This field only shows up when the
IF NOT PRESENT, ASKquestion is filled and the
CHECK FORfield does not contain an entity.
ASK AGAIN QUESTION(Optional): If the first question, the one in the
IF NOT PRESENT, ASKfield does not satisfy the validation, which is either the entity of the
CHECK FORfield or the
TYPEotherwise, you can ask the user again.
It is important to note that the requisites of a trigger always take place before any of the responses. You can also see this in the simple input extraction example below.
Add a new requisite
- Create a text or event trigger.
- Click on the trigger.
- Select the Requisites tab on the right-hand side.
- Click + Add requisite.
You can also fill the
IF NO REQUISITES field, which sends a message to the user if all requisites are optional and not filled.
Below, you can find some examples of cases you might find useful.
Simple input extraction
In the example below, you can find a case of simple user input extraction. More specifically, the first and last name of the user are extracted with the use of requisites. When the user writes a message that the brain recognizes as
#greetings, it will begin the process of learning the user's first and last name. For both requisites, the
Check for field is empty, because the user's answer doesn't have to contain any entities or context variables. The virtual assistant saves the user's answer in new context variables called
$lastname respectively, by asking the corresponding question given by the
If not present, ask field. As you can see in the Chat image below, the assistant asks for the requisites before any of the responses.
Requisite in entity
In this example, you can see the use of a mandatory requisite with a
Check for field. More specifically, the virtual assistant is able to extract an answer from the user, which must be constrained with regards to a predefined entity. As we can see from the example, when the trigger for booking a flight is activated, the virtual assistant asks the user to fill an airline requisite. In this case the airline is an entity and can only take two values:
American Airlines. Thus, any answer from the user must belong in the
@airlines entity. If not, then the requisite question (given by the
If not present, ask field) will be asked again. You can also see this from the Chat image below. It is worth noting that the
type field is set to
text in this case, as the expected answer is an airline.