Intents are messaging objects that describe how to do something. You can use intents in one of two ways:
- By providing the fulfillment for an intent, or
- By requesting the fulfillment of an intent by Google Assistant.
The process by which you provide the fulfillment for an intent is different for developers building with Dialogflow and for developers building with the Actions SDK. However, in both cases, you're providing the name of the intent and the URL of your fulfillment webhook. This tells Actions on Google that you can support user queries that match the intent.
To request fulfillment of an intent, 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. For more information, read the helpers usage overview.
Common intents
The following table describes intents that the Assistant requests for you to fulfill.
Intent name | Usage | Dialogflow event |
---|---|---|
actions.intent.MAIN |
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 |
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 |
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.NO_INPUT |
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 |
Helpers
The following table describes the supported helpers that you can request the Assistant to fulfill.
Intent name | Usage | Dialogflow event |
---|---|---|
actions.intent.PERMISSION |
Obtain the user's full name, coarse location, or precise location, or all 3. | actions_intent_PERMISSION |
actions.intent.OPTION |
Receive the selected item from a list or carousel UI. Or, if the user does not select from the list or carousel UI, receive speech or text input that matches with the key in the list or carousel UI. | actions_intent_OPTION |
actions.intent.DATETIME |
Obtain a date and time input from the user. | actions_intent_DATETIME |
actions.intent.SIGN_IN |
Requests an account linking flow to link a user's account. | actions_intent_SIGN_IN |
actions.intent.PLACE |
Obtain an address or saved location from the user. | actions_intent_PLACE |
actions.intent.CONFIRMATION |
Obtain a confirmation from the user (for example, an answer to a yes or no question). | actions_intent_CONFIRMATION |
actions.intent.NEW_SURFACE |
Asks the user for permission to hand off to another Assistant surface. | actions_intent_NEW_SURFACE |
Built-in intents
Built-in intents model some of the common ways that users express tasks they're trying to do or information they seek, such as ordering a meal, booking a ride, or checking an account balance. See the built-in intents reference for more information.
Additional intents
Most Conversational Actions are built with a combination of the common intents, helpers, and responses. However, Actions that incorporate additional features like transactions or daily updates have access to intents specific to those features.
Transaction helpers
The following table describes helpers related to handling purchases that you can request the Assistant to fulfill. You can find more information about how to implement these and other related intents in the transactions feature documentation.
Intent name | Usage | Dialogflow event |
---|---|---|
actions.intent.DELIVERY_ADDRESS |
Obtain a delivery address input from the user. | actions_intent_DELIVERY_ADDRESS |
actions.intent.TRANSACTION_REQUIREMENTS_CHECK |
Check if all the requirements for a transaction are met. | actions_intent_TRANSACTION_REQUIREMENTS_CHECK |
actions.intent.TRANSACTION_DECISION |
Asks the user if the transaction should occur. | actions_intent_TRANSACTION_DECISION |
actions.intent.DIGITAL_PURCHASE_CHECK |
Validates the user's transaction configuration. Used to avoid offering digital goods to users for which the transaction will fail. | actions_intent_DIGITAL_PURCHASE_CHECK |
actions.intent.COMPLETE_PURCHASE |
Begins a purchase request. Results in a purchase result describing whether and how the transaction succeeded or failed. | actions_intent_COMPLETE_PURCHASE |
User engagement intents
The following table describes intents related to user engagement features. You can find more information about how to implement these and other related intents in the user engagement feature documentation.
Intent name | Provide fulfillment | Request fulfillment | Usage | Dialogflow event |
---|---|---|---|---|
actions.intent.REGISTER_UPDATE |
X | Asks the user to register for updates. | actions_intent_REGISTER_UPDATE |
|
actions.intent.CONFIGURE_UPDATES |
X | You receive this intent when the user tries to register for updates (i.e., a REGISTER_UPDATE intent should be sent). | actions_intent_CONFIGURE_UPDATES |
Custom intents
You can 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.
For more information, read about defining Actions in Dialogflow or with the Actions SDK. You can find more information on Action packages in the Action package reference documentation.
Smart home intents
If you're building a smart home Action, you define support for intents in a slightly different way. See the smart home intents documentation for more information.