Igor FesenkoApplication Architect, SoftServe Inc.
Engineer<T> where T : C# | Azure | JavaScript
Microsoft® Most Valuable Professional (MVP)
Who Are We?
Igor FesenkoApplication Architect, SoftServe Inc.
Engineer<T> where T : C# | Azure | JavaScript
Microsoft® Most Valuable Professional (MVP)
Who Are We?
Igor FesenkoApplication Architect, SoftServe Inc.
Engineer<T> where T : C# | Azure | JavaScript
Microsoft® Most Valuable Professional (MVP)
Viktor KryzhanovskyiSoftware Engineer, SoftServe Inc.
Engineer<T> where T : C# | Angular | StackOverflow
ProblemSolver<T> where T: ANY
Who Are We?
Viktor KryzhanovskyiSoftware Engineer, SoftServe Inc.
Engineer<T> where T : C# | Angular | StackOverflow
ProblemSolver<T> where T: ANY
Who Are We?
Global Trends And Analysis
80% In 2020
64%
https://chatbotsmagazine.com/chatbot-report-2019-global-trends-and-analysis-a487afec05b
What Do People Actually Think About Chatbots?
It’s faster than other means of communication
With such communication advice are of higher quality, it is a manifestation of customer care
The answers are more honest
Why Chatbots Fail?
Too many unhelpful responses
Bad suggestions
Redirects to self-service FAQs
… and more
Just Take A One Platform For Your Liking
IBM Watson Microsoft Bot Framework
wit.ai Dialogflow (api.ai)
Choice Is Yours… But That Needs Consideration
Communication channels
Pricing
Imperative (How) VS Declarative (What)
Technology stack
Best Place to Start
https://github.com/microsoft/botframework-sdk
https://github.com/Microsoft/BotBuilder-Samples
https://github.com/microsoft/botframework-solutions
https://github.com/BotBuilderCommunity/
Regular Expressions - Caveats
“Read-only”
Regular expression Denial of Service - ReDoS
const string JiraIssueRegex = @"(?i)((?!([A-Z0-9]{1,10})-?$)[A-Z0-9]{1}[A-Z0-9]+-\d+)";
const string JiraIssueStrictMatchRegex = @"(?i)(^(\s*)[A-Z0-9]{1}[A-Z0-9]+-\d+)";
// check it here https://regex101.com/r/1nR3ZK/1
const string JiraIssueUrlRegex = @"^https:\/\/(.+)\.(atlassian\.net|jira\.com)\/browse\/(.+)";
const string CancelCommandRegex = @"(^(\s*)cancel)";
Reply
Text
Simple
Cards:
Rich UI
Platform specific
Actionable
Different types (SignIn, Adaptive, etc)
Our Choice Is Adaptive Card
Mobile support
Frequent updates
Big community
Great designer tool
More: https://adaptivecards.io/
Inspection Middleware
Bot emulator 4.0+
https://docs.microsoft.com/en-us/azure/bot-service/bot-service-debug-inspection-middleware