The document discusses best practices for building high-quality apps for the Google Assistant using Dialogflow. It covers topics such as defining intents, testing in simulators, setting up Actions on Google integration, and avoiding antipatterns. The presentation emphasizes following guidelines, such as giving greetings and farewells, handling errors properly, and avoiding leaving the microphone open without a prompt.
2. Building High-Quality Apps for Google Assistant
Hello and welcome to this
session on "Building high
quality apps for the Google
Assistant"!
3. Building High-Quality Apps for Google Assistant
Hello and welcome to this
session on "Building high
quality apps for the Google
Assistant"!
I am the Google Assistant, and I could not be more
excited to be here with you today to tell you
everything about Actions on Google and Dialogflow.
4. Building High-Quality Apps for Google Assistant
I am the Google Assistant, and I could not be more
excited to be here with you today to tell you
everything about Actions on Google and Dialogflow.
But first, let me introduce my assistant: Peter
Friese!
5. Peter, why don't you introduce yourself?
Building High-Quality Apps for Google Assistant
But first, let me introduce my assistant: Peter
Friese!
Let’s give him a warm round of applause!
6. Peter, why don't you introduce yourself?
Building High-Quality Apps for Google Assistant
…
7. Peter, why don't you introduce yourself?
Building High-Quality Apps for Google Assistant
…
Ich spreche viele verschiedene Sprachen!
8. Meet the Assistant
Ask it questions. Tell it to do things. It’s your own
personal Google, always ready to help
13. A growing
audience:
Languages
JapaneseGerman
FR French CA French
Korean
UK English AU English CA English
US English
Italian Spanish BR Portuguese
LATAM Spanish IN English
Russian
Hindi Thai
Indonesian
Danish
Norwegian
Swedish Dutch
47. Greetings - Don’t be a bore!
Hello, and welcome to …
Hello! This is … ! Glad to see you.
Welcome to …
These will be
cycled
48. Greetings - Return Visitors
Hello, and welcome to Do It Already. I can tell you about your
due tasks or add a new task to the list. What would you like to
do?
Welcome back to Do It Already! You’ve got three due tasks
today. Here is the first one:
“Deliver a kick-ass talk at MobileTechCon.”
Now get cracking!
49. Greetings - Return Visitors
function welcome(app: DialogflowApp) {
if (app.getLastSeen()) {
app.ask("Welcome back to Do It Already!")
}
else {
app.ask(strings.welcome())
}
}
51. Error Handling
What’s the priority for this task?
…
⚡ No input
What’s the priority for this task?
Gobbledygook
⚡ No match
52. Error Handling
What’s the priority for this task?
…
What’s the priority for this task?
Gobbledygook
• Always be helpful
• Try to get the conversation
back on track
• Be progressively more
helpful and provide more
detail / hints
• Give up after 3 attempts
53. Error Handling - Strategies
Rapid reprompt • “What was that?”
• “Say that again?”
Reframe the question • “What time is this for” —> “Sorry, what time?”
• “For when?” —> “What time would you like to
book this for?
Ask another way • “If it helps, we can do this one piece at a time.”
Be ready for questions
about the question
• “I have your name and email from your account,
so now all I need is your phone number.”
Be proactive • I could put you down for 6 for now, does that
work?
• Do you want to finish this later?
54. Replay information at the user’s request
It seems like the flight to San
Francisco is the 7:05am flight via
London Heathrow. Would you like
to book it now?
Sorry, can you say that again?
55. Replay information
It seems like the flight to San
Francisco is the 7:05am flight via
London Heathrow. Would you like
to book it now?
Sorry, can you say that again?
• Keep track of the last
messages the app sent
• Implement a repeat intent
• Prefix the last message
with a randomised repeat
string
56. Replay information
const REPEAT_PREFIX: [
“Sorry, I said “,
“Let me repeat that.”
];
function repeat (app) {
let repeatPrefix = promptFetch.getRepeatPrefix();
app.ask(repeatPrefix + app.data.lastPrompt,
app.data.lastNoInputPrompts);
}
58. The open microphone issue
function areWeThereYet(app) {
const response = “We will arrive very soon. Promised.”
app.ask(response);
}
function quit(app) {
const response = “It has been nice talking with you.”
app.tell(response);
}
Microphone closed
Microphone open No prompt 😱
59. The open microphone issue
app.ask();
app.tell();
The conversation will go on, and your
message needs to end with a prompt
The conversation will end after
this turn. Don’t include a prompt.
60. • Support multiple languages
• Use Rich Responses
Best practices - Recommended
71. Key take-aways
Google Assistant is more
than just smart speakers
Building Assistant Actions is
really easy with Dialogflow
Close the mic, Dude!
Read the docs and follow
our guidelines
73. How to stay in touch
dialogflow.com/
github.com/dialogflow
tag: dialogflow
Actions on Google actions.google.com
github.com/actions-on-google
tag: actions-on-google
Peter Friese
Developer Advocate, Google
@peterfriese