Break out from the sea of Android App icons ? What are Custom Intents for App Actions?
6 min read
·
Mar 29, 2021
I counted and I have 129 apps installed on my phone, not including my work profile! I doubt that I’m an outlier.
Do I use all of them? Nope, I totally forgot that I had installed so many of them. The biggest challenge for android developers after installation is usage rate, which in 2016 it was reported that there is 77% Drop off rate of usage 3 day post install (
ref
).
But there are a few apps that I rarely “open” but I use on a regular basis. I don’t mess with the sea of icons, even though I have the app on my home screen, I normally use my voice to open it. Its like magic.
Almost every morning between 6am and 7am, I say “Hey Google, open fit and start walking” and it’ll open my Google Fit app and start tracking my walking. As a user I don’t even have to think about finding it in the sea of icons or take the extra step to add it to my home screen. It’s available when I call for it ? truly meeting me where I am.
You can do this with
App Actions
, it’s a simple way to allow Android developers to use the Assistant to “fast-forward” users to exactly the right spot in their app with a voice request. You might have heard of
BIIs (built-in intents)
, which models some of the common ways that users express tasks they’re trying to do or information they seek, from your Android Apps. The most common BII that all Android Apps can utilize is
Open App Feature
, which allows users to say “Hey Google, open <app name>” and it’ll open the app. Opening the app is great, but going to the right place in the app is magical. The ability to say “Hey Google, open <app name> AND do x” can be achieved with BIIs.
But Android apps are not all the same. They are unique and provide particular value to their users. For the functionality that isn’t supported with BII,
Custom Intents
gives you complete flexibility to allow your users access to your unique functionality. deep links. There are some key differences between BIIs & Custom Intents.
Biggest differences between BIIs & Custom Intents
Functionality
When it comes to the type of functionality that can be surfaced by your App, BIIs have a fixed number. Though this fixed number of BIIs are the most popular type of functionality like
opening the app
,
getting a thing
,
create a thing
and more which are organized by categories, such as
communications
,
games
,
shopping
and
social
. But what if I have a “Jessica’s Baking App” that provides Jessica’s super special recipes? There isn’t a baking BII. *trumpet sounds “ba ba-da ba-ba bah”* Custom Intents lets me handle my user’s request to start baking a strawberry cake!
Queries
In order for the Assistant to understand how users can trigger your custom intent, you’ll need to provide query patterns for the phrases it should recognize. Query Patterns are a set of strings that are different ways a user can express their intent. Each query pattern contains the words after “Hey Google, open <App Name> and …” (example “Hey Google, Open Jessica’s Baking App and
start baking a cake
”)
Since the Assistant matches users’ requests based on these query patterns, having a variety of ways a user can express this intent is ideal. People are complex and come from different places (geographically, emotionally, culturally, etc.) and use different words to convey the same messing. Capturing the different ways is super important to make sure that the Custom Intent gets triggered. I recommend reaching out to different people and asking them how they would express the desire for that functionality so your query patterns are as robust as possible.
For my app, called
Jessica’s Baking App
, I know that I would say something like “make” or “bake”, but someone else might say “craft” or “produce” instead. This part is super easy to overlook, but spending the time and energy to gather a nice list of query patterns will pay off in the end since the Assistant doesn’t do any magic for you beyond the query patterns you specify. In other words, if I only have“start baking a cake” in my query patterns, the custom intent won’t trigger for when someone says “let’s cook a cake” or “build a cake” even though they are similar. You’ll have to be explicit and thorough.
For BIIs, there is no need for query patterns since they are already pre-defined. These pre-defined query patterns have been curated by language design experts and are very extensive.
Locales | localization
Since BIIs query patterns are maintained by Google, they have support for a variety of locales. Some of them have several, the newer ones may only be en-US. Check out the
docs
to see which languages are supported for a particular feature.
At the moment, Custom Intents are only available for the en-US locale.
Parameters!
When using BIIs or Custom Intents, you can capture sections of what the user said as parameters. These parameters can be used to display the right content in your App or to auto populate content. With Custom Intents, you have to define your parameters, unlike BIIs which are predefined. You’ll need to define parameters within the Custom Intent element and in your query patterns.
For example, in my example
Jessica’s Baking App
if a user says “start baking a cake” I can capture cake as a
bakingType
parameter and provide a generic cake recipe. If a user says “produce an apple pie” then I can provide an apple pie recipe instead.