When an intent is matched at runtime, the Dialogflow agent continues collecting information from the end-user until the end-user has provided data for each of the required parameters. This process is called slot filling.
By default, Dialogflow does not send a fulfillment webhook request until it has collected all required data from the end-user.
If webhook for slot filling is enabled, Dialogflow sends a fulfillment webhook request for each conversational turn during slot filling.
While in most cases, the parameter prompts are enough to collect all required parameters, a webhook for slot-filling allows you to define more specific agent logic during collection of the parameters. For example, your webhook could handle the customization of follow-up questions or setting parameter slots that cannot be retrieved from the end-user response, like from a database.
Enable webhook for slot filling
To enable webhook for slot filling at design-time:
- Go to the Dialogflow ES console.
- Select an agent.
- Select Intents in the left sidebar menu.
- Select an intent.
- Scroll down to the Fulfillment section.
- Toggle Enable webhook call for slot filling on.
- Click Save.
Handle webhook for slot filling calls at runtime
The webhook request message received by your webhook service
has a queryResult.parameters
field.
This field contains the current set of parameters provided
by the end-user.
Values that have not been collected yet
are set to empty strings.
An example of the webhook response message for setting parameters can be found in Webhook Response examples.