Tori is the lead of the gTech Actions on Google team which supports developers and partners to create great experiences by integrating with the Google Assistant. She joined Google 4 years ago to focus on partner technology management for Google Search and the Assistant where she has worked on several Google Search technologies such as App Indexing, Google Now, and Rich Results. Prior to Google, Tori spent 12 years as a software developer and product manager for the US Government creating everything from embView the profile
Sunil Vemuri is a product manager for Actions on Google and wants to make it easy for every developer to offer users a delightful experience. Prior to Google, he built and oversaw speech, mobile, and context-aware products and innovations at reQall, Apple, France Telecom, and MIT. He holds a Ph.D. from the MIT Media Lab for his work on an audio-based personal memory assistant and has been named a CNN Explorer.View the profile
About the talk
This session will show off 10 tips for building great experiences for the Google Assistant. It’ll cover best practices for VUI design, look at strategies for making Actions multi-lingual, and demonstrate how developers can design for multiple device types at the same time.
I'm Tori, and I'm Sunil I'm a product manager on actions on Google partner technology manager working on actions on Google. When we first build this session. We said it was 10 tips for building a better actions. well When we previewed this talk the feedback we universally got was more tips. So We're getting two more tips. I'm really excited to be working on actions in Google because I see this as a next step in the evolution of computer interactions.
I remember the first time I typed in a web search and receive the list of Blue Lakes opened up a whole new world of exploration. I also remember when I became fully dependent on my mobile phone. checking directions the weather finding friends in a crowd It really changed the way I live. And now with the assistant and actions on Google. I'm really excited to see how conversational dialogue really change the way we interact with computers. And to the text in the back, we lost the monitors up here. So if you can fix that, please. So we want to take us to the next evolution
in Computing. We are offering the actions on Google platform and we are here to show you not only are we part of the next Evolution but to excel add-in actions on Google is the developer platform for the Google Assistant with it. You can provide your products and services by the assistant. With over 500 million devices running the assistant. There's a great opportunity for you. We're not here how to tell you how to build an action for an assistant from scratch. There are the professions that I owe covering that We're here to give you the top 12
tips that all of you can use to build great actions and when you build great actions, not only do Delight your users, but it opens the doors to get your actions noticed. Throughout the stalk. We're going to be mentioning two tools first the actions on Google console or sometimes affectionately known as the console. This is where you create and administer your actions. Second dialogflow. This is where you build your conversational actions and includes a lot of the natural language capabilities that's are essential for making great
action. Let's Dive In we've bucketed the tips into three categories first designing. This is how you make a great action and avoid some of the common mistakes second. And Hance. This is how you can make your actions stand out and third grow. This is how you can get your action to more users. Having a good design is what Delights users. Let's start with four common mistakes and solutions to make a great design. Tip 1 make your conversation as simple as possible, but no simpler. Do you know someone who talks too much well and
action Cantu when users interact keep it simple users don't need every option upfront guide them to the most use portion and then make options available. If they asked now, we're going to act out a conversation Sunil will be playing the exciting role of an action and I'll be the user. Welcome to sounds of relaxation. Are you trying to sleep meditate cooldown think or reflect? weird Flex Great, we have something for that. Would you like to also include Ocean State waves crackling fire wind blowing or birds chirping with that?
sherbert do you want this for 5 minutes 30 minutes or an hour? 30 minutes find a nice place to sit or lie down. Are you ready? Yes. Okay, here's your 30 minute relaxation sounds with birds chirping. Wow, that was tedious. I'm definitely not rely in a relaxed state of mind after that. We recommend you keep the conversation simple and get the user's quickly to the Delight. Let's take a look at another example that keeps the conversation simple. Hey Google. Talk to headspace. Great to hear from you again
today. Wake up. Take a moment around wine. Does the end of the day and time to wind down? I just finding a comfortable planes. much better we go back. And don't auto play it again talk to headspace Six Vegas 2 user quickly to where they want to go in a conversational dialogue. We know users drop off each time. Another question is asked so the fewer steps to complete a task the better keep your users engage by avoiding needless banter. Tip to add a Persona. We want simple conversation, but users also want to feel connected and engaged with your cover with your
action developing a Persona or personality and incorporating it into your action really brings it to life. Take for example a pizza restaurant there many types of pizza restaurant. There's that upscale brick oven pizzeria or that New York walk up where you can grab a quick slice and the local Beachside local spot. Each one is going to communicate in a different way and your action can exemplify this by defining the real Persona. You can draw users into your action. Will do
some acting again Sunil will play the pizza action and I'll be the user. Hello, what would you like today? Pizza okay. What toppings would you like to add? Pretty bland right? It's fine. But I'm not sure we expressed anything about her brand or who we are. Let's try it again. Cowabunga, dude, what can I get you? Pizza great. What flavor do you crave? Maybe you're taking this one a little far but our Persona is a local Surfer personality can't be avoided it's human nature to attach personality to things and we're hardwired to look for meaning in the things around us. People will the tribute
a personality with your action regardless of whether you think about it or not. It's better to control the perception and Define it. Well defined personas also increase the emotional connection this leads to increase usage retention and brand loyalty. Things to think about when you're defining your persona is what state is the user going to be in are they looking to relax are they excited? Based off of that. What role should your agent play? Looking at these attributes. These are a couple different options. The first might be a teacher
someone who's patient and helpful and encouraging. And then a friend might be playful casual and silly. Where is a helper you're going to want to be attentive and proactive and succinct? We recommend you to find the Persona at the design phase and then shape your conversation around it. It can make a big difference. HIP number 3 users can be unpredictable. They can use products in ways that we don't always expect in the case of conversational actions. They might say something that you didn't anticipate. Let's try this dialogue this time. I'll be the user and
Tori will be the action. I'd like an ice cream cone. Yummy. What size do you want a double? Sorry. What size do you want small medium or large? Okay. The grammar was not robust. The actions didn't understand a common variation of medium. In this case. I said double now ice cream shops and you can ask for different sizes and different ways. So you want your grammar's to be able to handle all of these different common variations that might come up. Let me show you how you can approach this using dialogflow. There's a simple way to do this. First training phrases. This is where
you can include some of the common different ways. Somebody might say the same phrase. So for example, can I have a medium? I'll have two scoops a double, please. You can include all of these different phrases in the training for a section so that the system will understand that users my ask for things in different ways. The second is synonyms. Take another example rain boots. So there are many different ways. Somebody might say rain boots. It could be gumboots galoshes Wellies. You can include all of these different kind of synonyms and variations as part
of the interface and dialogflow. So that users will be able to give their responses with these kind of variations. But there's another Park the more examples you get you give the better dialogflow can learn from those examples because it does have learning capabilities and then it can account for dip you can learn new ways if user has has expressly stated concept. So more examples the better. Let's take a look in the action called timeout that illustrates this timeout tells you about events in the United Kingdom on this first screen. Timeout is asking for a day
you'd like to go out. The user responds with I don't know instead of asking to use her again. I'm out recognizes the phrase. I don't know and gives a helpful response. In the second screen timeout again asked if I want to go out today tomorrow or Saturday the user responded with a Tuesday today tomorrow or Sunday use a responded with Saturday and again time out handle it, and variations in and things outside of what the what the prompt ask for. And on the right the user was being a little clever here
and they asked for something funny. Timeout responded with humors. So kind of like an Easter egg zombies are some of the ways to make your actions more robust. But there's more to conversational excellent. Users can still say unexpected things and when people talk to each other if the listener doesn't understand the speaker, they work cooperatively to figure it out. They ask for Corrections or rewarding or try to get some hints to help move the conversation forward. Let's take a look at an example here.
When is the event? tomorrow I don't understand when is the event? Wednesday I don't understand when is the event Wednesday I don't understand. What is the event frustrating but I'm sure you've heard something like this before when you talk to a computer. This is hopefully not something unfamiliar. The action is repetitive an unhelpful. It gives the same response. It's not noticing that the user is earnestly trying to move the conversation for So here's what we recommend. For the initial prompt, you can give that now there's
two types of errors that you might recommend you handle. The first is called Nomad. This is when the user said something and the action didn't handle it when this happens. If you want to get to use her back on track we recommend the first three prompt to be what was called a rapid reproduction you give essentially the same response or maybe a slight variation, but don't go too much further than that. And if the user still isn't give something that you can't handle here's where we call escalating to tell make it a little bit more elaborate perhaps even an example of what what's something
they can stay to help move the conversation before and after that stop re prompting don't pester the user. We find the sequence works very well. Now there's another type of error. It's called No input. This means these are didn't say anything or maybe assistant didn't hear what the user said. Perhaps they were thinking about what they wanted to say, or they got confused by the prom weren't sure how to respond like no matches. We were recommended this three-stage re prompting to help the user along and with these sticks RI prompts, you're
well on your way to build a helpful conversation experience the keeps the user on track. Let's see how to code this. And I looked slow your create what's called a fallback intent? Then in your web code you simply create an array with the three reprint at a counter and some logic. So you're to return the right prompt and that's it. Great designs the lights users and keep them coming back. Remember keep your dialogue short include a Persona make robots Tremors that handle common variations and synonyms
handle errors, like no match and no input. So now you have the design Basics. Let's make it more fun in personalized. step tip 5 evolve with your user when you have a follow-up conversation with someone, you know, do you introduce yourself again? If you know their address, do you ask it again? Same goes for Action be there with helping in options when the user needs it but default to the simplest and most personalized conversation for your user. So here's a horoscope action tarot Horoscope. Oh, it's in Portuguese. And if you don't speak
Portuguese, and you don't happen to have Google translate handy, let me tell you what's happening. The first time the user launches the action it asks for the horoscope sign on subsequent launches. It doesn't and simply reuses the previous answer. This is great something as simple as that can create a much better experience for your user. Another iteration on this could be when the user involves the action you just give them their horoscope right away. There are plenty examples of good personalization. If you're a food action, you can remember that. I'm a vegetarian
and focus on those choices. If you're a fitness app, you can remember workouts sounds duration that the user likes and use those as a default. Now we'll take a look at it the code with the user info API you can get the user's name anonymize user ID and more you can use this to know if it's the same user on subsequent invitations. They're also more robust Solutions using oauth for locked and experiences. So here in the code, you can see we're checking if we've seen the user before if we have it. We do the introduction. If we have we attempt to retrieve the horoscope sign and then continue
on with a conversation. What we want you to remember from evolving with a user's is one get rid of the intro if the user is familiar with it and to become more personalized as you learn about them don't keep asking for things that you already know. We've all heard computer-generated text to speech so technology that takes text and converts into speech and Google offers some really nice Text to Speech, but you do know it's even better media is 2 tips for the price of one to make your actions sound awesome. First
the media response API this lets you include a media Clips in your action suppose. I'm building an action that plays famous speeches. I can call this API to include the actual audio and some images and put some controls. Let's give it a listen. Ask not what your country can do for you ask what you can do for your country. Okay, great. Great way to include a little bit of media inside of your action. Using API straightforward just give the URL to an audio file titles some
images and then hand it to actions on Google to play the rest the great way to bring your audio content to your use. The second way is through SML. Let's say I'm trying to create a spooky atmosphere for my action. Let's listen to what this sounds like with plain text to speech. Come in. Welcome to the terrifying world of the imagination Tori the sound creepy. I'm shaking in my boots. Let's try to change it to see how the voice sound if I manipulate the voice a little
bit. Come in welcome to the terrifying world of the imagination. Spooky now slow the voice down kind of better not there yet. Now, let's add some sound effects. Come in welcome to the terrifying world of the imagination. I like it. All right. There we go. I got the thumbs-up. What a difference now. We're talkin now. I'm going to play that for you one more time. But this time I'm going to show you the berries tracks that were used to compose the sound pick a lock.
Come in welcome to the terrifying world of the imagination. All right. What we did here is use two features of SML par and prosody prosody. Let you fine-tune how the computer speaks ink by changing the pitch rate and volume car is something unique to actions on Google it lets you play multiple sounds layers including sound effects back on audio and mix that with your text to speech with that. You can make great sounds in an atmosphere for your action.
The further help you make great make a great audio environment fear sound. We have a sound library with over a thousand sounds including ambient sounds sport voices fully and many more we encourage you to include sounds in your actions. HIP number 7 adjust your device Earlier, you mentioned that there the assistant is on over 500 million devices. Smart speakers phone's watches headphones Chromebook scars TV and with the assistant SDK device makers are in bed and get system in more devices all the time. When designing for multiple devices,
there's a spectrum of capabilities to consider. Sometimes it's voice only like a Google home and with new smart screens. There's a mix of visual and touch sometimes the same device falls on different parts of the spectrum depending upon the users context like you're their driving or the volume is muted. So these are the things you need to take into consideration when designing for these. Let's take a an example of a surf report on a smart speaker like a Google home. The report needs to be presented with just be so in this example. The whole interaction is verbal and through
audio. Now that's the same one on the right is with a screen hear the audio or the verbal presentation is a bridge but then now there's a visual presentation that goes along with it and we encouraged you to use these rich visual presentations on devices with screens. And even on the bottom on the bottom, right you can see that the choices are presented as suggestion chips. So the user can tap on them instead of having to speak on a device with a screen. And implementing such logic is straightforward using surface
capabilities apis and some conditional logic now, there's so much more about this topic fortunately. There's a whole talk about it Wednesday at 11:30 call Design actions for the Google Assistant be on Smart speakers to phones and smart displays. A great way to see if your actions are working are putting them in the hands of users, but you might want to try things out with a smaller audience before you launch to a bigger audience or we just released the new tool that lets you test with smaller audiences and there's two options with it.
You can do an alpha release your actions goes through a limited review. And this is great to get early feedback on your action give it out to a small test group. And one of the other advantages of the Alfa of Alfa releases is that the review process is much shorter within hours so that way you can just need to make a fixed test it with some users and iterate very very quickly and get that feedback that you need so that when you're releasing to a larger audience if you've got through all the bugs and all the design issues The second option is doing a Beta release
date ended when you're near feature-complete and you have a stable version or in your stable version test this with a wider audience beta goes through the full to pickled approval for actions, but there's an additional Advantage with us you can control when you take an action from beta to public so that way if you're trying to time a release based on your marketing considerations, you can keep it in beta and then when you were ready for it to go live flip the switch and make it go live at Live to the public. Do
after you built your action. We tested it and launch. It was great to see what happened. How many users are coming back? You know, or how many users are there? How many are coming back what problems if any are the encountering? For traditional methods like traffic errors in retention their existing at 11 to use you can use to see these you can find the two on the left on the actions on Google console retention like a cohort analysis is available through another tool call chat face chat face is a tool that that you can integrate with your action where you can get
deeper conversational analytics and speaking about some things that are conversational and analytic. Let's take a look at something that's particular to conversational analytics and this is called a session slow here. You can see the pathways a user takes most often the Green Path of the ones that your action handled the red paths are not handled. So in this example book a hotel when he was versus book a hotel that was handled but when the user says feedback it wasn't handled. Now when we talked about no match errors before in the robust grammars tip here is where you can
see how often these no matches happen and where you can figure out how to prioritize address to be both dialogflow in chat face include discussion. Flow View. And if you need to drill down, you can see transcripts including the individual Step 2 user went so you can see what led up to a potential problem so you can try to address. recap Enhancer actions to take him to the next level and increased engagement personalized it to the user ad sounds account for actions running on different types of devices. For example,
someone screen some not. Test it with smaller audiences and then when you launch use the analytics tools here to see what the users are doing. So now you feel to your awesome app. You want to engage your users and reach many more. Tipton re-engage her users during normal interactions with your action. You can ask users to opt-in to receive updates using to subscription models. The first is daily updates for Google pulls an update at a time specified by the user. The
second is push notifications where the action can push updates when appropriate these notifications work on the phone. Even if you don't have an Android app installed and now with cross service notifications coming to the Google Assistant, you'll be able to reach her users on speakers smart displays and other Google devices. Here's an example of tube status. This can keep you up-to-date on your commute conditions. Here is an example of the user configuring the daily update. Here's what it looks like when they're getting the update.
As well as a notification when there are severe delays great way to re-engage. If you want the user to get daily updates you can actually set set this up using the actions console. The second way is in your webhook in your code here. You create a new register update object. You can put in arguments here horoscope sign and then the frequency. Other examples of daily updates are a tip of the day or a surf report. Stop notifications and updates can be a great way to re-engage, but they can also be really annoying. You have to be careful to make it relevant.
So use personalization results for the user's favorite Club instead of the whole league be descriptive the title and the notification to describe the content they're receiving and don't just list the name of the action and third don't spam your users make sure the information is relevant to them or don't do it. Tip 11 make your action easy to discover. We're working hard to make sure all great actions are discoverable. And there is three main ways to get discovered. The first is the assistant Explorer directory II is when the user is talking to the assistant
make sure you come up as an option and the third is action length with your hyperlinks to your action, which you can add to any surface. The best way to ensure your discovered make it good. We check each action and the higher the quality the return rates health and rating the more likely will highlight your action. Follow the design principles in the developer docs to help you help guide you we have some great stuff out there. They're also several talks that I owe that will help. Here's the
assistant Explorer directory. It's available on the web at assistant. Google.com Explorer and in an app and both Android and iOS. The directory is very important because we see that 30% of our third party actions are getting discovered through it. So when our user is browsing you want to make sure you get discovered. The first browsing option are contextual suggestions. These relevant suggestions are based on the user's contacts such as the time of day or location. The second
is dynamic categories. These are things like what's new? What's trending what's popular and now we have editorial pics. This is a new feature highlighting high-quality actions through Visual campaigns. You now know that high-quality is the key to being featured in the assistant directory to trigger more naturally in conversation use built-in intents. This is currently in preview. It allows actions to trigger her relevant queries that are more General. Thea Stilton and Tents provided common
taxonomy for actions across all Google services Google Assistant parses that user query and passes it is structured data. So developers don't have to using these General intent is much more natural for users. And this way users don't have to use your action name a couple examples of built-in intense artella Joker start a calming activity. In dialogflow, you can select the built-in intent you like to be associated with and then adding parameters that can be passed into your action today.
We're making the first set of these intense available. So you can give the assistant a deeper understanding of what your action can do and we'll be rolling out hundreds more in the coming months. So the third way to get discovered is action likes their hyperlinks that point directly into your action. They make your actions discoverable from any platformer surface, and they allow users to engage directly with your action irrespective of how they found your link. The links can be added anywhere websites social campaigns and
more. It's really simple to setup action length. You need to go into the access console publishing URL link and give it a title and then share away. Vinotemp be helpful everywhere users are relaunched in more than 25 locales and 16 languages. We recommend engaging with this Global audience as soon as possible. Flixbus is a bus company and it's available in multiple countries and languages here. You can see identical action screens in multiple languages
English French and German and here we're going to show you how to efficiently localize your action using a third-party localization Library. The first thing to do is create a locales directory. And a resource file or translation file for each Locale in this example. It's Ian - us. Jason that's dance for English United States. Then within the file you create a constant for each string in your action along with the string. Then for each additional language, you create a new Json file and use the same constants, but have translated strings there many
translation services that can help with. And then in your webhook. You use the I 18 and knows library to do the hard work. Hear you're going to configure the i18n object. You're going to set the locales you want to support where the translation files are located and your default locale. Then when the conversation starts you're going to set the that specific users Locale in the i18n object. And finally throughout the conversation you use these constants instead of conditional statements this greatly simplifies the complexity of supporting
multiple languages. We want to ensure that the work that you have put into designing and enhancing your action pays off. These tips will help ensure you acquire as many users as possible and keep them coming back for more. There are so many more resources here to help you build great actions and learn more about these tips. Look for sessions marked for assistant on the agenda. But let me highlight a few for you. We have sessions to talk about how to design for smart display Android and
games. You can learn to enhance your action with transactional capabilities of persona and to personalize. And their sessions on how to set up the alpha and beta releases that we talked about and then build and grow your user base. Finally. We have office hours and a sandbox where you can talk to members of the team. My team works with hundreds of Partners globally helping them create better system experiences. We've seen a lot of these challenges and this list is Created from what we've learned. We hope that by sharing these 12 tips.
Buy this talk
Access to all the recordings of the event
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.