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)}}
[[["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 endpoint fulfills a matched intent returned by \u003ccode\u003esessions.matchIntent\u003c/code\u003e, requiring input from \u003ccode\u003eMatchIntentResponse\u003c/code\u003e and must be called after it.\u003c/p\u003e\n"],["\u003cp\u003eThe HTTP request is a \u003ccode\u003ePOST\u003c/code\u003e to a specific URL pattern: \u003ccode\u003ehttps://{endpoint}/v3/{matchIntentRequest.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe path parameter \u003ccode\u003ematchIntentRequest.session\u003c/code\u003e is required and specifies the session, following a specific format with project, location, agent, and session IDs, with a size limit of 36 characters.\u003c/p\u003e\n"],["\u003cp\u003eThe request body includes details such as query parameters, input specification, and parameters for managing session changes.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful responses will include a \u003ccode\u003eFulfillIntentResponse\u003c/code\u003e, and the operation requires either the \u003ccode\u003ehttps://www.googleapis.com/auth/cloud-platform\u003c/code\u003e or \u003ccode\u003ehttps://www.googleapis.com/auth/dialogflow\u003c/code\u003e OAuth scopes.\u003c/p\u003e\n"]]],[],null,["# Method: projects.locations.agents.environments.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- [Try it!](#try-it)\n\nFulfills a matched intent returned by [sessions.matchIntent](/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.sessions/matchIntent#google.cloud.dialogflow.cx.v3.Sessions.MatchIntent). Must be called after [sessions.matchIntent](/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.sessions/matchIntent#google.cloud.dialogflow.cx.v3.Sessions.MatchIntent), with input from [MatchIntentResponse](/dialogflow/cx/docs/reference/rest/v3/MatchIntentResponse). Otherwise, the behavior is undefined.\n\n### HTTP request\n\n`POST https://{endpoint}/v3/{matchIntentRequest.session=projects/*/locations/*/agents/*/environments/*/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/v3/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)."]]