Some products and features are in the process of being renamed. Generative playbook and flow features are also being migrated to a single consolidated console. See the details.
Required. The name of the session this query is sent to. Format: projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/sessions/<SessionID> or projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/environments/<EnvironmentID>/sessions/<SessionID>. If Environment ID is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate Session ID. It can be a random number or some type of session identifiers (preferably hashed). The length of the Session ID must not exceed 36 characters.
Authorization requires the following IAM permission on the specified resource session:
dialogflow.sessions.detectIntent
Request body
The request body contains data with the following structure:
JSON representation
{"matchIntentRequest": {"session": string,"queryParams": {"timeZone": string,"geoLocation": {object (LatLng)},"sessionEntityTypes": [{object (SessionEntityType)}],"payload": {object},"parameters": {object},"parameterScope": string,"currentPage": string,"disableWebhook": boolean,"analyzeQueryTextSentiment": boolean,"webhookHeaders": {string: string,...},"flowVersions": [string],"currentPlaybook": string,"llmModelSettings": {object (LlmModelSettings)},"channel": string,"sessionTtl": string,"endUserMetadata": {object},"searchConfig": {object (SearchConfig)},"populateDataStoreConnectionSignals": boolean},"queryInput": {"languageCode": string,// Union field input can be only one of the following:"text": {object (TextInput)},"intent": {object (IntentInput)},"audio": {object (AudioInput)},"event": {object (EventInput)},"dtmf": {object (DtmfInput)},"toolCallResult": {object (ToolCallResult)}// End of list of possible types for union field input.},"persistParameterChanges": boolean},"match": {object (Match)},"outputAudioConfig": {object (OutputAudioConfig)}}
Required. The name of the session this query is sent to. Format: projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/sessions/<SessionID> or projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/environments/<EnvironmentID>/sessions/<SessionID>. If Environment ID is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate Session ID. It can be a random number or some type of session identifiers (preferably hashed). The length of the Session ID must not exceed 36 characters.
[[["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 page details the \u003ccode\u003efulfillIntent\u003c/code\u003e method, which is used to fulfill a matched intent previously identified by the \u003ccode\u003esessions.matchIntent\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eThe HTTP request for \u003ccode\u003efulfillIntent\u003c/code\u003e is a \u003ccode\u003ePOST\u003c/code\u003e request to a specific endpoint, using a URL that follows gRPC Transcoding syntax, and it requires specifying a session path parameter.\u003c/p\u003e\n"],["\u003cp\u003eThe request body must be provided in JSON format and includes parameters such as \u003ccode\u003ematchIntentRequest\u003c/code\u003e, \u003ccode\u003equeryParams\u003c/code\u003e, \u003ccode\u003equeryInput\u003c/code\u003e, and others to define the context and input of the intent fulfillment.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful requests will return a response body in the form of a \u003ccode\u003eFulfillIntentResponse\u003c/code\u003e, and this process requires authorization with specific OAuth scopes.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMatchIntentRequest\u003c/code\u003e is a critical component of this process, defining the parameters for the intent matching, and it includes fields like \u003ccode\u003esession\u003c/code\u003e, \u003ccode\u003equeryParams\u003c/code\u003e, \u003ccode\u003equeryInput\u003c/code\u003e, and \u003ccode\u003epersistParameterChanges\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Method: projects.locations.agents.sessions.fulfillIntent\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION.match_intent_request.SCHEMA_REPRESENTATION)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION.match_intent_request.SCHEMA_REPRESENTATION_1)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [MatchIntentRequest](#MatchIntentRequest)\n - [JSON representation](#MatchIntentRequest.SCHEMA_REPRESENTATION)\n- [Try it!](#try-it)\n\nFulfills a matched intent returned by [sessions.matchIntent](/dialogflow/cx/docs/reference/rest/v3beta1/projects.locations.agents.sessions/matchIntent#google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent). Must be called after [sessions.matchIntent](/dialogflow/cx/docs/reference/rest/v3beta1/projects.locations.agents.sessions/matchIntent#google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent), with input from [MatchIntentResponse](/dialogflow/cx/docs/reference/rest/v3beta1/MatchIntentResponse). Otherwise, the behavior is undefined.\n\n### HTTP request\n\n`POST https://{endpoint}/v3beta1/{matchIntentRequest.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent`\n\nWhere `{endpoint}` is one of the [supported service endpoints](/dialogflow/cx/docs/reference/rest#rest_endpoints).\n\nThe URLs use [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains data with the following structure:\n\n### Response body\n\nIf successful, the response body contains an instance of [FulfillIntentResponse](/dialogflow/cx/docs/reference/rest/v3beta1/FulfillIntentResponse).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/cloud-platform`\n- `\n https://www.googleapis.com/auth/dialogflow`\n\nFor more information, see the [Authentication Overview](/docs/authentication#authorization-gcp).\n\nMatchIntentRequest\n------------------\n\nRequest of \\[sessions.matchIntent\\]\\[\\]."]]