SlideShare a Scribd company logo
Bot. You said bot? let build bot then!
A developer introduction to a new world of apps
Laurent Ellerbach
laurelle@microsoft.com
Technical Evangelist Lead
Microsoft Central and Eastern Europe
https://blogs.msdn.com/laurelle
https://github.com/ellerbach
Many thanks to our sponsors & partners!
GOLD
SILVER
PARTNERS
PLATINUM
POWERED BY
What are bots?
Bots are not
Bots are not: Artificial Intelligence (AI)
• Bots can be simple task automation utilities
• Example: Password reset bot. There’s no AI here. Just
ask a couple of security validation questions, then
reset the password
• They may have AI as well, if the scenario applies
Bots are not: Natural language only
• The more your bot depends on natural language, the riskier the user
experience becomes. Typing isn’t always the best option.
• Move away from natural language as quickly as possible in the
navigation.
• “Drive” the user as much as you can (menus, choices, etc)
• Typing a lot on a mobile device: Bad experience
• Example: AzureBot “stop vm1” is a command, not natural language.
Less typing = better
Bots are not: Text interfaces only
• Bot channels are evolving quickly to support richer
experiences: Media, buttons, custom controls. These are
coming. Text is not the best experience for everything,
sometimes all you want is a button, or an image, or a
link…
• Examples:
• Skype allows audio and 3D bots as well.
• Slack, Facebook and Skype have buttons/custom UIs
So… what are bots?
Bots are apps. Really. That’s it.
Bots are apps
• They solve problems, like apps
• They are cross platform, you can run them anywhere, on
any device
• They are actually easier to build and deploy across
platforms than apps
• Very similar capabilities: Push notifications? Check.
• You can publish your bot instantly on Facebook, Skype,
Slack, Kik, email, custom hardware devices, anything.
Where to start?
• https://dev.botframework.com/
• One platform for multiple channels
• Same code, can be specific per
channel as well
• Fully REST API
Demo
Creating my first bot
• Hello world with a bot in C#
Demo
BrickBot: a real Lego bot
https://brickbat.azurewebsites.net
Architecture
How do we build great bots?
1. Start by asking what problem are we trying to solve. Refine until it
looks like a tangible problem and not “magic”
2. Ask how a bot will be a better experience. User experience is
EVERYTHING
3. Avoid too much natural language. Careful with unrealistic
expectations. Natural language recognition is limited. Menus work
great. Commands work great. Buttons, etc.
4. Collect data. Pump it to Azure. Use the same architecture you would
use with IoT scenarios (IoT hub, stream analytics, power BI, etc). You
can only analyze and improve your bot if you’re collecting metrics
for it
5. Iterate, improve
Demo
What about authentication?
• Every channel generate a unique encrypted ID per
user (for web, context lost when browser closed)
• Authentication can be done thru any method using
external webpage and calling back the bot thru web
API
– Example available on Github
• Objects are serialized so context data stored per user
A concrete example: my house
A raspberry in the garden
• RPi v2 running Linux with Mono +
Atmega328
• Posting info on a Windows Gateway
• Connected to Azure IoT Hub
The Sprinkler board v3
• Raspberry Pi 2
• Windows IoT Core
• Code ported from
.NetMF
• Not that straight forward
(web server, UWP concept)
• Offer much simpler and
modern development
• Added connection to
Azure IoT Hub
Overall architecture of the garden
433MHz
receiver
ATmega328
sensors
SQL
Azure
Azure
Event
Hub +
Stream
Analytics Web App
+
Javascript
Browser
sprinkler
Netduino running .NET Microframework
Gateway
App
IaC – Azure Resource Manager json
deployment
Recommen-
dation
workflow
Automation and
Machine Learning
APIs
The bot architecture: example with email
Raspberry PI running
Linux and node.js
Azure IoT Hub
Message
(picture)
SQL Azure
Blob storage
Web App, Bot framework
Bot providers
Natural language recognition
• Part of Azure Cognitive
services
• Natural language
recognition
• Few native languages
supported so far
• http://www.luis.ai
Integration of external services
• Magic of API
• Netatmo connected thermostat, getting temperature,
programs, changing presence mode
• Endless possibilities of integration (my next steps: wine cellar
inventory, weight…)
Demo
http://blogs.msdn.com/laurelle
http://github.com/ellerbach
http://dev.botframework.com
www.InternetofYourThings.com

More Related Content

PDF
The fight for surviving in the IoT world - Radu Vunvulea
PDF
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
PDF
Docker adventures in Continuous Delivery - Alex Vranceanu
PDF
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
PPTX
Serverless Single Page Apps with React and Redux at ItCamp 2017
PDF
Windows 10 Creators Update: what’s on tap for business users - Ionut Balan
PDF
Blockchain for mere mortals - understand the fundamentals and start building ...
PDF
The best of Hyper-V 2016 - Thomas Maurer
The fight for surviving in the IoT world - Radu Vunvulea
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Docker adventures in Continuous Delivery - Alex Vranceanu
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
Serverless Single Page Apps with React and Redux at ItCamp 2017
Windows 10 Creators Update: what’s on tap for business users - Ionut Balan
Blockchain for mere mortals - understand the fundamentals and start building ...
The best of Hyper-V 2016 - Thomas Maurer

What's hot (20)

PDF
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
PDF
Provisioning Windows instances at scale on Azure, AWS and OpenStack - Adrian ...
PDF
The best of Windows Server 2016 - Thomas Maurer
PDF
From Developer to Data Scientist - Gaines Kergosien
PDF
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
PDF
Creating Web and Mobile Apps with Angular 2 - George Saadeh
PDF
Developing PowerShell Tools - Razvan Rusu
PDF
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...
PDF
Kubernetes - Cloud Native Application Orchestration - Catalin Jora
PDF
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
PDF
What's New in Hyper-V 2016 - Thomas Maurer
PDF
Enforce Consistency through Application Infrastructure - Florin Coros
PDF
IoT in the Cloud: Build and Unleash the Value in your Renewable Energy System
PDF
Open Source IoT Project Flogo - Building a Custom Apache Kafka Connector
PDF
Flogo - A Golang-powered Open Source IoT Integration Framework (Gophercon)
PDF
Internet of Things 101 - For software engineers
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
PDF
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
PDF
Using Bluemix and Node-RED for Fast Prototyping
PDF
New NeXt for Advanced Developers
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
Provisioning Windows instances at scale on Azure, AWS and OpenStack - Adrian ...
The best of Windows Server 2016 - Thomas Maurer
From Developer to Data Scientist - Gaines Kergosien
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
Creating Web and Mobile Apps with Angular 2 - George Saadeh
Developing PowerShell Tools - Razvan Rusu
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...
Kubernetes - Cloud Native Application Orchestration - Catalin Jora
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
What's New in Hyper-V 2016 - Thomas Maurer
Enforce Consistency through Application Infrastructure - Florin Coros
IoT in the Cloud: Build and Unleash the Value in your Renewable Energy System
Open Source IoT Project Flogo - Building a Custom Apache Kafka Connector
Flogo - A Golang-powered Open Source IoT Integration Framework (Gophercon)
Internet of Things 101 - For software engineers
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
Using Bluemix and Node-RED for Fast Prototyping
New NeXt for Advanced Developers
Ad

Viewers also liked (9)

PDF
How to Start-up a Start-up - Mihail Rotenberg
PDF
Assembly of Japanese bicycle requires peace of mind - Peter Leeson
PDF
Strategies for securing your banks & enterprises (from someone who robs bank...
PDF
The Microsoft Cloud and Server Strategy - Ben Armstrong
PDF
BUILD with Microsoft - Radu Stefan
PDF
7 Habits of Highly Paid Developers - Gaines Kergosien
PDF
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
PDF
Xamarin Under The Hood - Dan Ardelean
PPTX
ITCamp 2017 - Ciprian Sorlea - Fostering Heroes
How to Start-up a Start-up - Mihail Rotenberg
Assembly of Japanese bicycle requires peace of mind - Peter Leeson
Strategies for securing your banks & enterprises (from someone who robs bank...
The Microsoft Cloud and Server Strategy - Ben Armstrong
BUILD with Microsoft - Radu Stefan
7 Habits of Highly Paid Developers - Gaines Kergosien
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Xamarin Under The Hood - Dan Ardelean
ITCamp 2017 - Ciprian Sorlea - Fostering Heroes
Ad

Similar to ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then... (20)

PPTX
Mat Velloso - Bots in the real world
PPTX
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
PPTX
Global Azure2021 Verona.pptx
PPTX
Intro to Chatbots using Microsoft bot framework and Azure cognitive services
PPTX
Using Chatbots in Extension Programming
PDF
Lessons learned from building a commercial bot development platform
PPTX
Conversational UI Bot Framework
PPTX
Chatbot ppt
PPT
Building a bot with an intent
PPTX
Making IoT LINE Bot with Azure, obniz, Ngrok
PPTX
An introduction to Microsoft Bot Framework
PDF
Bot design AIsatPN 2018
PDF
Create a Bot with Delphi and Telegram - ITDevCon 2016
PPTX
Ai chatbot ppt.pptx
PPTX
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDF
Introduction to Facebook Messenger, Conversational UI & NLP
PPTX
The Software Challenges of Building Smart Chatbots - ICSE'21
PPTX
conversional ai.pptx adaqwerqREQWRW3RWETRFWE
PPTX
Introduction to BOT Framework- Global Azure Bootcamp 2017
PDF
Building an Open Source iOS app: lessons learned
Mat Velloso - Bots in the real world
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
Global Azure2021 Verona.pptx
Intro to Chatbots using Microsoft bot framework and Azure cognitive services
Using Chatbots in Extension Programming
Lessons learned from building a commercial bot development platform
Conversational UI Bot Framework
Chatbot ppt
Building a bot with an intent
Making IoT LINE Bot with Azure, obniz, Ngrok
An introduction to Microsoft Bot Framework
Bot design AIsatPN 2018
Create a Bot with Delphi and Telegram - ITDevCon 2016
Ai chatbot ppt.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
Introduction to Facebook Messenger, Conversational UI & NLP
The Software Challenges of Building Smart Chatbots - ICSE'21
conversional ai.pptx adaqwerqREQWRW3RWETRFWE
Introduction to BOT Framework- Global Azure Bootcamp 2017
Building an Open Source iOS app: lessons learned

More from ITCamp (20)

PDF
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
PDF
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
PDF
ITCamp 2019 - Peter Leeson - Managing Skills
PPTX
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
PDF
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
PDF
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
PPTX
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
PPTX
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
PPTX
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
PPTX
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
PPTX
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
PPTX
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
PPTX
ITCamp 2019 - Andy Cross - Business Outcomes from AI
PDF
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
PDF
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
PPTX
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
PPTX
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
PDF
ITCamp 2019 - Peter Leeson - Vitruvian Quality
PDF
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
PDF
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Modernizing your data center with Dell and AMD
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
KodekX | Application Modernization Development
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Modernizing your data center with Dell and AMD
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KodekX | Application Modernization Development
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation_ Review paper, used for researhc scholars

ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...

  • 1. Bot. You said bot? let build bot then! A developer introduction to a new world of apps Laurent Ellerbach laurelle@microsoft.com Technical Evangelist Lead Microsoft Central and Eastern Europe https://blogs.msdn.com/laurelle https://github.com/ellerbach
  • 2. Many thanks to our sponsors & partners! GOLD SILVER PARTNERS PLATINUM POWERED BY
  • 5. Bots are not: Artificial Intelligence (AI) • Bots can be simple task automation utilities • Example: Password reset bot. There’s no AI here. Just ask a couple of security validation questions, then reset the password • They may have AI as well, if the scenario applies
  • 6. Bots are not: Natural language only • The more your bot depends on natural language, the riskier the user experience becomes. Typing isn’t always the best option. • Move away from natural language as quickly as possible in the navigation. • “Drive” the user as much as you can (menus, choices, etc) • Typing a lot on a mobile device: Bad experience • Example: AzureBot “stop vm1” is a command, not natural language. Less typing = better
  • 7. Bots are not: Text interfaces only • Bot channels are evolving quickly to support richer experiences: Media, buttons, custom controls. These are coming. Text is not the best experience for everything, sometimes all you want is a button, or an image, or a link… • Examples: • Skype allows audio and 3D bots as well. • Slack, Facebook and Skype have buttons/custom UIs
  • 9. Bots are apps. Really. That’s it.
  • 10. Bots are apps • They solve problems, like apps • They are cross platform, you can run them anywhere, on any device • They are actually easier to build and deploy across platforms than apps • Very similar capabilities: Push notifications? Check. • You can publish your bot instantly on Facebook, Skype, Slack, Kik, email, custom hardware devices, anything.
  • 11. Where to start? • https://dev.botframework.com/ • One platform for multiple channels • Same code, can be specific per channel as well • Fully REST API
  • 12. Demo
  • 13. Creating my first bot • Hello world with a bot in C#
  • 14. Demo
  • 15. BrickBot: a real Lego bot https://brickbat.azurewebsites.net
  • 17. How do we build great bots? 1. Start by asking what problem are we trying to solve. Refine until it looks like a tangible problem and not “magic” 2. Ask how a bot will be a better experience. User experience is EVERYTHING 3. Avoid too much natural language. Careful with unrealistic expectations. Natural language recognition is limited. Menus work great. Commands work great. Buttons, etc. 4. Collect data. Pump it to Azure. Use the same architecture you would use with IoT scenarios (IoT hub, stream analytics, power BI, etc). You can only analyze and improve your bot if you’re collecting metrics for it 5. Iterate, improve
  • 18. Demo
  • 19. What about authentication? • Every channel generate a unique encrypted ID per user (for web, context lost when browser closed) • Authentication can be done thru any method using external webpage and calling back the bot thru web API – Example available on Github • Objects are serialized so context data stored per user
  • 21. A raspberry in the garden • RPi v2 running Linux with Mono + Atmega328 • Posting info on a Windows Gateway • Connected to Azure IoT Hub
  • 22. The Sprinkler board v3 • Raspberry Pi 2 • Windows IoT Core • Code ported from .NetMF • Not that straight forward (web server, UWP concept) • Offer much simpler and modern development • Added connection to Azure IoT Hub
  • 23. Overall architecture of the garden 433MHz receiver ATmega328 sensors SQL Azure Azure Event Hub + Stream Analytics Web App + Javascript Browser sprinkler Netduino running .NET Microframework Gateway App IaC – Azure Resource Manager json deployment Recommen- dation workflow Automation and Machine Learning APIs
  • 24. The bot architecture: example with email Raspberry PI running Linux and node.js Azure IoT Hub Message (picture) SQL Azure Blob storage Web App, Bot framework Bot providers
  • 25. Natural language recognition • Part of Azure Cognitive services • Natural language recognition • Few native languages supported so far • http://www.luis.ai
  • 26. Integration of external services • Magic of API • Netatmo connected thermostat, getting temperature, programs, changing presence mode • Endless possibilities of integration (my next steps: wine cellar inventory, weight…)
  • 27. Demo