Method: projects.locations.agents.environments.sessions.fulfillIntent

Fulfills a matched intent returned by sessions.matchIntent. Must be called after sessions.matchIntent, with input from MatchIntentResponse. Otherwise, the behavior is undefined.

HTTP request

POST https://{endpoint}/v3beta1/{matchIntentRequest.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent

Where {endpoint} is one of the supported service endpoints.

The URLs use gRPC Transcoding syntax.

Path parameters

Parameters
matchIntentRequest.session

string

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.

For more information, see the sessions guide.

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
      },
      "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)
  }
}
Fields
matchIntentRequest.queryParams

object (QueryParameters)

The parameters of this query.

matchIntentRequest.queryInput

object (QueryInput)

Required. The input specification.

matchIntentRequest.persistParameterChanges

boolean

Persist session parameter changes from queryParams.

match

object (Match)

The matched intent/event to fulfill.

outputAudioConfig

object (OutputAudioConfig)

Instructs the speech synthesizer how to generate output audio.

Response body

If successful, the response body contains an instance of FulfillIntentResponse.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/dialogflow

For more information, see the Authentication Overview.