A Flow is executed after the intent has been detected.
The user enters some keywords or clues which are used by the AI service to identify what the user wants (the intent). Those “clues” are called “Trigger Messages” of the intent. In fact, they trigger the dialog that starts when the intent is detected.
You have to define the Trigger Messages for each intent, but you do not need to include all the combinations of the expressions because the underlying Artificial Intelligence collaborates to solve that issue.
For example, a Trigger Message for the "Get Information" intent could be "have doubts." The following picture shows the way that we define the intent's Trigger Messages in the Conversational Flows instance.
A Flow can also be triggered when another Flow redirects to it (using the Action property) in a User input condition.
After the intent of a Flow is detected (or another Flow has redirected to it), the user is asked to enter each of the User Inputs of the Flow.
Then, if there is a Conversational Object set for the Flow, it is executed.
If the user input includes something that "matches" the Trigger Messages and it also includes any of the User Inputs, the user won't be asked to enter this input. In this case, the User input is recognized if it matches any entity value or an entity pattern.
For example, the Flow "Green PlacesClaim" includes the User Input "UserIdentification" which should match an entity defined in the AI provider.
If this entity is recognized in what the user has entered, the end user isn't asked to enter this information again (in this case, the "UserIdentification"). Note that the user is asked to enter the next User Input; in this case, the "ComplaintDescription."
Consider this case where more than one Flow is recognized in the contents of the user input: "I want info about Social events, in particular about a cultural activity, thanks."
First, the user announces that he wants information (this is, in fact, an intent associated with the "Get Information" Flow). But, in the same query, he adds that he wants information about "Social events" (which is a valid User Input value of the "Get Information" Flow which matches the @SocialEvents entity). When this User input is recognized, the flow redirects to another Flow, called "CulturalActivitiesNews." Since in the same query the user added that the type of social events information he needs is "cultural," the Flow "CulturalActivitiesNews" doesn't prompt the user to enter any additional data. This is because "cultural" is synonymous with an entity value of "Social_event_type" which is the User input of "CulturalActivitiesNews" Flow.
In sum, the chatbot behaves in an intelligent way, not asking again what has already been said by the user.
For more information, see Citizen Service Chatbot sample.