DF Parameters Validation
Terminology
Any response, static or dynamic, is called by Dialogflow CX documentation fulfillment.
Form Filling is the conversational design pattern where the agent collects a set of required information from the user asking the questions step-by-stepI.
I. Different types of fulfillment
When the page becomes active it means that it waits for the user’s input. Its fulfillment (including the sections “Agent responses” and “WebHook”) is performed before the wait starts. The Start Page doesn’t have entry fulfillment: nothing is displayed when Start Page is activated.
When the user’s utterance is provided DF tries to match the intent (based on provided training phrases) and recognize the parameters and entities within. If some intent is matched, the corresponding route is executed. Only at this time, the “Fulfillment” of the route is performed! Please pay attention to how it’s different from the page’s fulfillment!
Note that before the router’s fulfillment is executed the parameters are already collected and they are available as $session.params… or $page.params… variables.
There are 3 different types of fulfillment:
1). Page entry fulfillment - executes when the page becomes Active. An Entry Fulfillment is intentively missing from Start Page.
2). Route fulfillment (including Generators, Agent responses (Agent says), and WebHooks) - executes when the route’s intent matches. Executes for any conditionally matched route.
3). Parameter’s Fulfillment- executes when initially attempting to collect the parameter.
II. Different types of Parameres
There are Intent parameters defined usually by annotating training phrases when an intent is created
If the parameter was defined within the intent, there is no sense in creating the same or similar parameter at a page level.
and Form parameters that are defined at the page level
The condition $page.params.address.Status = “UPDATED” means checking whether the form parameter “address” was filled in during the previous conversation.
In this case, the process is called “Form filling” (”Slot filling” in ES).
When more than one parameter should be collected, it is convenient for the router to check if all of them are provided instead of checking each:
If $page.params.status = “FINAL”
III. 2 different types of routers
Intent router is a part of the page that redirects the flow to the next page depending on the intent match.
Conditional router is redirects the flow depending on the condition like $page.params.state = “UPDATE” meaning in this case that all the parameters of the Form were collected.