Intents

Intents are simple messaging objects that describe how to do something. You can use intents in one of two ways: by supporting the fulfillment of an intent or by requesting the fulfillment of an intent by the Google Assistant.

To support an intent, you define an action object in your action package that includes the name of the intent and the URL of your fulfillment. This tells Actions on Google that you can support user queries that match the intent. To request an intent, you send an intent to the Google Assistant and ask for it to be fulfilled.

Built-in intents

Intent name Provide fulfillment Request fulfillment Usage Dialogflow event
actions.intent.MAIN X Required: Every app declares one and only one action that handles this intent for app invocation WELCOME or GOOGLE_ASSISTANT_WELCOME
actions.intent.TEXT X Obtain raw text representation of a user request. You use this most of the time when engaging in a conversation with users.
actions.intent.CANCEL X You receive this intent when you opt into receiving cancel intents in your action package. When users say a global cancel command such as "quit", you receive this intent in the next request to your fulfillment, so you can respond with a final message and do any cleanup in your fulfillment logic. actions_intent_CANCEL
actions.intent.CONFIGURE_UPDATES X You receive this intent when the user should be requested to register for proactive updates (i.e., a REGISTER_UPDATE intent should be sent). actions_intent_CONFIGURE_UPDATES
actions.intent.CONFIRMATION X Asks to confirm a prompt. actions_intent_CONFIRMATION
actions.intent.DATETIME X Obtain a date and time input from the user. actions_intent_DATETIME
actions.intent.DELIVERY_ADDRESS X Obtain a delivery address input from the user actions_intent_DELIVERY_ADDRESS
actions.intent.NEW_SURFACE X Asks the user for permission to handoff to another Assistant surface. actions_intent_NEW_SURFACE
actions.intent.NO_INPUT X You receive this intent when you opt into receiving no-input intents in your action package. When users don't respond to a prompt, you receive this intent in the next request to your fulfillment. actions_intent_NO_INPUT
actions.intent.OPTION X Receive the selected item from a list or carousel UI actions_intent_OPTION
actions.intent.PERMISSION X Obtain the user's full name, coarse location, or precise location, or all 3. actions_intent_PERMISSION
actions.intent.SIGN_IN X Requests an account linking flow to link a user's account. actions_intent_SIGN_IN
actions.intent.TRANSACTION_REQUIREMENTS_CHECK X Check if all the requirements for a transaction are met. actions_intent_TRANSACTION_REQUIREMENTS_CHECK
actions.intent.TRANSACTION_DECISION X Asks the user if the transaction should occur. actions_intent_TRANSACTION_DECISION
actions.intent.REGISTER_UPDATE X Asks the user to register for proactive updates. actions_intent_REGISTER_UPDATE

Smart Home intents

If you're building a smart home app, you define support for following intents in a slightly different way. See the Smart Home documentation for more information.

Intent name Provide fulfillment Request fulfillment Usage
action.devices.SYNC X Required: Returns a list of devices the user has connected and are available for use with the Assistant.
action.devices.QUERY X Required: Returns current state of all known Smart Home devices
action.devices.EXECUTE X Required: Execute a command on Smart Home devices

Custom intents

You create your own intents to define action invocation, or how users invoke your actions. These intents reside in your own namespace, you define how users trigger the intents, and your app is the only app that can support them.

Supporting or Requesting Intents

To support intents, you create actions that specify the intent you want to support and the fulfillment endpoint to call.

To request intents, you specify the intent in the possibleIntents object when responding to the Assistant. In the subsequent request to your fulfillment, the Assistant returns the result of the processed intent to you.