App Actions overview

App Actions let users launch specific features in your app using Google Assistant. By enabling App Actions to extend your app, users can easily deep link into your apps via Assistant by simply speaking a request to the Assistant. If the user has your app already installed, Assistant triggers deep linking when users say an invocation phrase that includes your app name, such as "Hey Google, order pizza from ExamplePizzeria."

To enable App Actions, you add an actions.xml file to your Android app project that tells Google what built-in intents your app supports. For some use cases, you can also build Android Slices and associate them in your actions.xml file.

App Actions are supported on Android 5 (API level 21) and higher. Users can only access App Actions on Android phones, and Assistant on Android Go does not support App Actions.

Use cases

App Actions work best for extending your Android app's functionality to Google Assistant:

  • Deep link into app functionality from Assistant. Connect your existing deep links to user queries matching predefined patterns.
  • Display information from your app directly in Assistant. Provide users with inline answers and simple confirmations without changing context.

How App Actions work

From a user's perspective, App Actions behave like shortcuts to parts of your Android app. When a user invokes an App Action, Assistant matches their request to a registered built-in intent and its corresponding fulfillment. This match is based on information you provide in the app's actions.xml file.

When a user's query matches the predefined pattern of a built-in intent, Assistant extracts query parameters into schema.org entities and generates an Android deep link URL using the mappings found in actions.xml.

Actions on Google then uses the deep link URL, prefilled with user-supplied parameters, to take the user directly to specific content in your Android app without additional conversational dialog. For built-in intents using an Android Slice fulfillment, Assistant instead responds to the user directly with the requested information.

When a user provides a query to Google Assistant, the response
            is returned in the form of a deep link into the app or an Android
            Slice.
Figure 3. Example App Actions user query flow.

For example, a user invokes an App Action with "Hey Google, order a ride to SFO with ExampleRideshareApp." Assistant matches the user query to the actions.intent.CREATE_TAXI_RESERVATION built-in intent, and extracts "SFO" as an intent parameter matching a schema.org entity specified in actions.xml. Assistant passes the intent parameter to the defined fulfillment for that built-in intent. and then deep links the user into the app with "SFO" prefilled.

App Actions use Android deep links that you've already implemented in your app to fast-forward users into your app from Assistant. For App Actions, we also recommend you support deep linking with App links, which digitally associate HTTP/HTTPS URLs with apps and websites you own.

Building App Actions

App Actions build on top of existing functionality in your Android app, and the process is similar for each App Action you implement. App Actions take users directly to specific content in your app by using Android deep link URLs, which you specify using intent filters in the Android app manifest.

When you build an App Action, the first step is to identify the activity you want to allow users to access from Assistant. Then, using that information, find the closest matching built-in intent (BII) from the App Actions BII reference.

Built-in intents model some of the common ways that users express tasks they want to do using an app or information they seek. For example, BIIs exist for actions like ordering a meal, booking a ride, and checking an account balance.

Once you identify the in-app functionality and BII to implement, you create an actions.xml resource in your Android app that maps the BII to your app functionality. App Actions defined in actions.xml describe how each BII resolves its fulfillment, as well as which parameters are extracted and provided to your app.

A significant portion of developing App Actions is mapping built-in intent parameters to parameters in your defined fulfillment. This process commonly takes the form of considering schema.org entities as they relate to your in-app functionality, or creating an inventory of identifiers for your built-in intent.

Testing App Actions

During development and testing, you use the App Actions test tool to create a preview of your App Actions in Assistant (for your Google account). The App Actions test tool is an Android Studio plugin that helps you test how your App Action handles various parameters prior to submitting it for deployment. Once you generate a preview of your App Action in the test tool, you can trigger an App Action on your test device directly from the test tool window.

Next steps

Follow the Extend an Android app to the Google Assistant with App Actions codelab to try building an App Action using our sample Android app.

Then, you can continue on to our guides to build App Actions for your own app. You can also explore these additional resources for building App Actions: