This response is validated by the Dialogflow server. If validation fails, an error will be returned in the QueryResult.diagnostic_info field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error:
Optional. The text response message intended for the end-user. It is recommended to use fulfillmentMessages.text.text[0] instead. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_text sent to the integration or API caller.
Optional. The rich response messages intended for the end-user. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_messages sent to the integration or API caller.
source
string
Optional. A custom field used to identify the webhook source. Arbitrary strings are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_source sent to the integration or API caller.
Optional. This field can be used to pass custom data from your webhook to the integration or API caller. Arbitrary JSON objects are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_payload sent to the integration or API caller. This field is also used by the Google Assistant integration for rich response messages. See the format definition at Google Assistant Dialogflow webhook format
Optional. The collection of output contexts that will overwrite currently active contexts for the session and reset their lifespans. When provided, Dialogflow uses this field to populate QueryResult.output_contexts sent to the integration or API caller.
Optional. Invokes the supplied events. When this field is set, Dialogflow ignores the fulfillmentText, fulfillmentMessages, and payload fields.
liveAgentHandoff
boolean
Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set endInteraction to true as well. Default is false.
endInteraction
boolean
Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.
Optional. Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session. Setting this data from a webhook overwrites the session entity types that have been set using detectIntent, streamingDetectIntent or SessionEntityType management methods.
[[["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-06-27 UTC."],[[["\u003cp\u003eThis document details the JSON response structure for webhook calls, which is validated by the Dialogflow server.\u003c/p\u003e\n"],["\u003cp\u003eThe response includes fields such as \u003ccode\u003efulfillmentText\u003c/code\u003e, \u003ccode\u003efulfillmentMessages\u003c/code\u003e, \u003ccode\u003esource\u003c/code\u003e, \u003ccode\u003epayload\u003c/code\u003e, and \u003ccode\u003eoutputContexts\u003c/code\u003e, which are used to populate the corresponding fields in the \u003ccode\u003eQueryResult\u003c/code\u003e sent to the integration or API caller.\u003c/p\u003e\n"],["\u003cp\u003eCommon errors in JSON formatting, like incorrect handling of empty strings, objects, and arrays, can be avoided by following the guidelines: use \u003ccode\u003e""\u003c/code\u003e for empty strings, \u003ccode\u003e{}\u003c/code\u003e or \u003ccode\u003enull\u003c/code\u003e for empty objects, and \u003ccode\u003e[]\u003c/code\u003e or \u003ccode\u003enull\u003c/code\u003e for empty arrays.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003efollowupEventInput\u003c/code\u003e field, when set, overrides the \u003ccode\u003efulfillmentText\u003c/code\u003e, \u003ccode\u003efulfillmentMessages\u003c/code\u003e, and \u003ccode\u003epayload\u003c/code\u003e fields, and it is used to invoke supplied events.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eliveAgentHandoff\u003c/code\u003e and \u003ccode\u003eendInteraction\u003c/code\u003e fields are boolean values that control if a live agent should be brought in and if this intent should end the conversation.\u003c/p\u003e\n"]]],[],null,["# WebhookResponse\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n\nThe response message for a webhook call.\n\nThis response is validated by the Dialogflow server. If validation fails, an error will be returned in the [QueryResult.diagnostic_info](/dialogflow/es/docs/reference/rest/v2beta1/projects.answerRecords#AnswerRecord.QueryResult.FIELDS.diagnostic_info) field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error:\n\n- Use `\"\"` for empty strings\n- Use `{}` or `null` for empty objects\n- Use `[]` or `null` for empty arrays\n\nFor more information, see the [Protocol Buffers Language Guide](https://developers.google.com/protocol-buffers/docs/proto3#json)."]]