Webhook for slot filling

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:

  1. Go to the Dialogflow ES Console.
  2. Select an agent.
  3. Select Intents in the left sidebar menu.
  4. Select an intent.
  5. Scroll down to the Fulfillment section.
  6. Toggle Enable webhook call for slot filling on.
  7. 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.