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
actions.intent.MAIN X Required: Every app declares one and only one action that handles this intent for app invocation
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.DATETIME X Obtain a date and time input from the user.
actions.intent.DELIVERY_ADDRESS X Obtain a delivery address input from the user
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.OPTION X Receive the selected item from a list or carousel UI
actions.intent.PERMISSION X Obtain the user's full name, coarse location, or precise location, or all 3.
actions.intent.SIGN_IN X Requests an account linking flow to link a user's account.
actions.intent.TRANSACTION_REQUIREMENTS_CHECK X Check if all the requirements for a transaction are met.
actions.intent.TRANSACTION_DECISION X Asks the user if the transaction should occur.

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.