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.
Common Actions on Google intents
Intent name | Provide fulfillment | Request fulfillment | Usage | Dialogflow event |
---|---|---|---|---|
actions.intent.MAIN |
X | Required: Every Action package declares one and only one intent acts as an entry point for users to start conversations. | 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 Action, 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 | |
action.devices.DISCONNECT |
X | Required: Informs when a user has unlinked the app account from the Google Assistant |
Custom intents
You create your own intents to define shortcuts into the conversation to help users get things done more efficiently. These intents reside in your own namespace; you define how users trigger the intents, and your Action package is the only one that can support them.
Support or request 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.