The document discusses the opportunities presented by bots, including high demand from companies, the ability to create more natural experiences for users on messaging apps, and simpler deployment and updating than traditional apps. It provides an overview of the typical architecture of a bot, including components like the Bot Builder SDK, LUIS, and the Developer Portal. Several use cases for bots are presented, such as managing cloud resources from Skype, handling customer service, and acting as knowledgeable assistants. Guidelines for creating effective bots focus on solving users' needs with minimal effort and guiding users to discover what the bot can do.
3. Once-in-a-decade opportunity
• High demand from companies of all sizes
• Opportunity for more natural experiences
• Users spending more time on messaging apps
• Simpler deployment/update model than apps
• App ecosystem overly crowded
• Everybody wants to automate something
4.
5.
6. Your bot code
Entity
Extraction
Speech
Vision/Face
Natural
Language
Translation
+ Microsoft Cognitive Services
Search
Emotion
Knowledge
API
…
Message input <> output
State Management
Bot Connector Service
Conversation Canvas/Channels
……
…
Other services, APIs,
Databases, Azure Machine
Learning, Azure Search,
etc…
Bot Builder SDK
Web Chat
Direct Line…
Email
Facebook
GroupMe
Kik
Skype
Slack
Telegram
Twilio (SMS)
An x-ray of a typical bot
Bot Builder SDK
Your code goes here
8. LUIS.ai
• Language Understanding Intelligence Service
• Identify entities and intents of messages
• Train through GUI or programmatically
• Built in LUIS intent handling in bot framework
10. Imagine a new kind of news reading app
That “knows” when you’re
driving and switches to a
conversational experience
(driving = busy hands/eyes = speech)
12. AzureBot: Manage your cloud from Skype
Start from the desktop, list
your VMs, start a VM
(it all takes 5 seconds!)
13. AzureBot: Manage your cloud from Skype
Switch to your phone, confirm you want
to star the VM, receive the notification
when done.
-No logon required
-No app sync required
-Woks across all your devices and web
It. Just. Works.
github.com/microsoft/azurebot
17. Call centers/help desk/customer service
Every company deals with this:
First
triage/data
collection
No waiting in line to be helped
Bots handle it
18. Call centers/help desk/customer service
Every company deals with this:
First
triage/data
collection
Simple and
repetitive
solutions
If it is simple and repetitive, it can
be coded. Bots can accelerate it
20. Call centers/help desk/customer service
Complete bot to human hand off
Thank you for providing all this information. I
have John with me now who will take from here
and help you out
Hello, this is John. I understand your computer
won’t power on. Let’s take a look at some service
options
21. Call centers/help desk/customer service
Supervised bot to human hand off
I’ve tried these steps, my computer still won’t turn on
Sounds lovely, thank you
I suggest us to request a hardware service. We can have one of
our service engineers look at your computer
Note to operator: It sounds like the user will need hardware
replacement, what next step should I take?
Apologize to
user
Suggest
hardware
service
Let me type
25. What makes a bot great?
• It is not how “smart” they are
• It is not how much natural language they offer
• It is not whether they use voice or not
It’s whether it solves the user’s needs in the quickest/easiest
way compared to any other option
It’s all about user experience... Just like an app, or a website
28. A bot with a single dialog using 100 LUIS intents is a bad design:
Hello user! How can I help you?
One question
100 LUIS intents, * 100 different utterances
per intent = 10000 different things users
may say (plus the other 90000 possibilities
you didn’t predict)
100 different things your bot can do
Users will only guess 3 or so
So you just wasted 97% of your code
29. So instead:
Hello user! How can I
help you?
Events
Stages
Amenities
What events are you
interested in?
Music
Comedy
Film
Laser Dome
Spectacles
Theater
What music would you
like? (by the way, next
time you could just type
“I’m looking for a song
named xyz” and I will
know what to do)
• Guide the user
• Save time
• Help the user discover what your bot can do
30.
31.
32.
33.
34.
35.
36.
37.
38. • Users are often terrible at using search on web
• Add search to a bot and now you have a great tool to guide the user into refining their search
• Knowledge base, informational, Q&A bots are great scenarios. They typically use QnA Maker and
Azure Search for it
39. • QnAMaker.ai:
• Super low friction way of creating a Q&A bot
• Built in web and document crawler: Parses data and builds the QnA easily
• Not great for too many records
• Not great for deep level customization of the experience
• Azure Search:
• Can work with millions of records like a breeze
• Works with different document formats and data sources
• Takes more effort to prepare/code/fine-tune
40.
41. • Sometimes buttons do everything you need.
• Avoid the engineer’s urge to complicate simple things
Your business requirement is NOT to pass the Turing Test: It is to solve your
user’s problem!
42. • Spec out an “app kind” of bot: https://github.com/MicrosoftDX/botFramework-
botSpecDocs/blob/master/src/CaaP%20Design%20spec.docx
43. • Even if standard channels can’t do it, you can always build your own UI/App/Web
• Think richer UIs with bots, HoloLens, etc. It is all possible
44. • They separate concerns and organize flows, exactly the same way:
45. • This is how we know how to navigate “back”
• Users won’t necessarily think that way
46. • You will almost never get it right at first:
• Iterate, test, learn. Again and agian until it “feels right”
47. • If your bot doesn’t collect data and doesn’t give you ways of understanding what it does well or
not, then it you can’t make it better
Refer to fact #10