Stay organized with collections
Save and categorize content based on your preferences.
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:
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eDialogflow collects required data from users through a process called slot filling, continuing until all parameters are filled.\u003c/p\u003e\n"],["\u003cp\u003eBy default, Dialogflow only sends a fulfillment webhook request after all required data is collected, but it can be configured to send a request for each conversational turn.\u003c/p\u003e\n"],["\u003cp\u003eEnabling the webhook for slot filling provides more specific agent logic during parameter collection, such as customizing follow-up questions or setting parameters from a database.\u003c/p\u003e\n"],["\u003cp\u003eTo enable webhook calls during slot filling, toggle the "Enable webhook call for slot filling" option in the Fulfillment section of an intent within the Dialogflow ES console.\u003c/p\u003e\n"],["\u003cp\u003eWhen a webhook for slot filling is enabled, each request to the webhook contains a \u003ccode\u003equeryResult.parameters\u003c/code\u003e field showing the current parameters with uncollected values being empty strings.\u003c/p\u003e\n"]]],[],null,["# Webhook for slot filling\n\nWhen an intent is matched at runtime,\nthe Dialogflow agent continues collecting information from the end-user\nuntil the end-user has provided data for each of the required parameters.\nThis process is called\n[slot filling](/dialogflow/docs/intents-actions-parameters#required).\n\nBy default,\nDialogflow does not send a fulfillment webhook request\nuntil it has collected all required data from the end-user.\n\nIf *webhook for slot filling* is enabled,\nDialogflow sends a fulfillment webhook request for each\nconversational turn during slot filling.\n\nWhile in most cases, the parameter prompts are enough to collect all required\nparameters, a webhook for slot-filling allows you to define more specific agent\nlogic during collection of the parameters.\nFor example, your webhook could handle the customization of follow-up questions\nor setting parameter slots that cannot be retrieved from the end-user response,\nlike from a database.\n\nEnable webhook for slot filling\n-------------------------------\n\nTo enable webhook for slot filling at design-time:\n\n1. Go to the [Dialogflow ES console](https://dialogflow.cloud.google.com).\n2. Select an agent.\n3. Select **Intents** in the left sidebar menu.\n4. Select an intent.\n5. Scroll down to the **Fulfillment** section.\n6. Toggle **Enable webhook call for slot filling** on.\n7. Click **Save**.\n\nHandle webhook for slot filling calls at runtime\n------------------------------------------------\n\nThe webhook request message received by your webhook service\nhas a `queryResult.parameters` field.\nThis field contains the current set of parameters provided\nby the end-user.\nValues that have not been collected yet\nare set to empty strings.\n\nAn example of the webhook response message for setting parameters can be found in\n[Webhook Response examples](/dialogflow/docs/fulfillment-webhook#session_entity)."]]