Designing Quality Conversation for Google Assistant
When we are creating a custom action the first thing which we have to do is design the conversation
Objectives
Rules for Conversation design
Greetings and setting expectations
Use personalization for existing users
Error Handling
Improve your actions with logs
Rules for Conversation Design
- The first rule is to write sample dialogs (Kind of a movie script)
Source: Google I/O ‘ 19
2. Don’t expect the sample dialogs to be perfect for the first time
3. Once the script is ready have a group of people and read them aloud
Source: Google I/O’19
4. Whenever you test your sample dialogs by reading aloud just turn back and do the conversation, the reason is when humans try to communicate there are others ways they would communicate like eye contact, body language, poses
5. When the question is confusing the other guy might look at you which may make you to repeat the question again(for humans it would work but what about machines)
6. Reason for doing like this is computers don’t understand your body language or poses or even eye contacts which means you have to write the scripts which machine can understand
7. How many sample dialogs do i want to write? There is no hard rule it depends on you
8. But there are two ways you should focus like
Happy Path — Everything goes in the flow
Sad Path — Humans won’t respond to what is been asked or they might answer it in a different way E.g. (Consider the name onion how it is spoken is Tamil, Malayalam, Telugu, Hindi, etc)
Happy path — Source: Google I/O’19
Happy path — Source: Google I/O’19
2. Greetings and setting expectations
Source: Google I/O’19
Let’s see sample greetings and will check how it is made better
Pet-Adoption, Source: Google I/O’19
In the above image, you could see the assistant has asked a question for that the user might think like they can ask any questions which would result like below
Are poodles smart?
which your action can't handle because it can answer only questions about animals.
It will be very vague when u have these kinds of questions so it would be good if we avoid these kinds of questions at first. The above question can be rewritten like below
Pet-Adoption, Source: Google I/O’19
If you notice the above image there is a highlighter for the animal which means a user can ask about a cat/dog/elephant. we have to handle it.
To handle it we would use Dialogflow
Source: Google I/O’19
Once we use Dialogflow it will be like the below image
Source: Google I/O’19
Here’s another example of how Dialogflow extracts intents
GDG Intent — Source: Google I/O’19
We can make the above conversation even different by changing the ssml(speech synthesis markup language)
Source: Google I/O’19
If you see the right-hand side there is an audio tab where we can design our ssml. reason for doing this is to give a better user experience
If you compare the text on the left side and the audio text on the right-hand side you can see the question mark at the last is replaced with . in audio. It is not correct if the user sees it for that we can use the node library and create the voice design like below
Source: Google I/O’19
In the above image, you can see that we have used to outputs like one for the speech and another for the text
The end goal of greetings and expectations is Create a good user impression at the first
3. Use personalization for repeat users
We can create a custom greeting for the users who come back to our action
For that in our action, we will handle like below
Source: Google I/O’19
Here we have given the condition like is the user last seen then we would give a separate greetings else we would give the introductory greeting
Remembering some information by asking user permission
Build better voice apps. Get more articles & interviews from voice technology experts at voicetechpodcast.com
Suppose if your action is about weather you can ask the user for the zip code first and then you can show the weather of that particular zip code and then you can ask permission to the user whether your action can remember the zip code?
pet adoption — Source: Google I/O’19
We can handle it like the below code
conv.data.zipcode will store the information only until the session gets expired
conv.user.storage.zipcode is the longtime storage
Source: Google I/O’19
Helper Functions: Source: Google I/O’19
4.Error Handling
When someone says something that your action didn’t expect. Will see how we can make your actions to tackle those situations
Context-sensitive error handling
Rapid reprompt
Error acknowledgment
Escalated error
Context-sensitive error handling
Source: Google I/O’19
The user gives up if we didn’t handle things properly. To handle the error we would reprompt the same question to the user to bring him back to track like the below example
Source: Google I/O’19
Rapid reprompt
It is similar like context-sensitive error handling
Source: Google I/O’19
If you see the conversation where the chocolate shop action has asked about the recipe but the user has replied in percentage soon the action repeated the question back which makes the user back to track
Error acknowledgment
Suppose if your action can’t do anything with the question the user asked your action can acknowledge the user like below
Source: Google I/O’19
Escalated error
Combining the error acknowledgment and ask the new question can be done using escalated error like below
Source: Google I/O’19
4. Improve your actions from logs
Once your action is deployed you can improve your action by seeing the logs in Dialogflow like below and update it.
Source: Google I/O’19
Source: Google I/O’19
Even if the user asks something which your action can’t recognize we can manually link to the intent like below
Source: Google I/O’19
Congratulations!
You learned some of the tips on how to create a conversation design in google assistant
Happy Learning!!!!
Resource Links
- Conversation Design - https://developers.google.com/assistant/actions/design