Explore the concept of bots and discover the motivation behind working with these new apps with messaging platforms. This book is an accessible resource teaching the basic concepts behind bot design and implementation. Each chapter builds on previous topics and, where appropriate, real working code is shown that implements the concepts. By just picking up a code editor, you can start creating smart, engaging, and useful bot experiences today.__Practical Bot Development__ will teach you how to create your own bots on platforms like Facebook Messenger and Slack, incorporate extension APIs, and apply AI and ML algorithms in the cloud. By the end of this book, you'll be equipped with the information to reach thousands of new users with the bots you create!The book is a great resource for those looking to harness the benefits of building their own bots and leveraging the platform feasibility of them.**What You’ll Learn** * Understand the general architecture of a bot * Distinguish between a great bot experience versus a bad bot experience. * Explore the ideas behind natural language processing and apply them to bot development * Implement real Messenger, Slack, and custom channel bots using Node.js and the Microsoft Bot Builder framework * Deploy bots to Facebook Messenger and Slack **Who This Book Is For**Engineers, hobbyists, and the design oriented community looking looking for an introduction to the technologies and concepts involved in building bots. The experience level could be from beginner to expert, although some familiarity with Node.js and APIs will be assumed. Chapter 1: Introducing BotsMotivation: apps vs bots and interacting with computers using Natural Language Interfaces. Google Now, Siri, Alexa. Great progress in recent years in both translation, voice recognition and natural language understanding technologies. Democratization of AI and Machine Learning APIs. Bots as a new way of implementing user interfaces.Use Case: describe a bot to help users order ticketsUse it to describe the following concepts:Natural language recognitionText conversationsRich media conversationsBot-led conversationsHuman hand offEmbedding into messaging appsChapter 2: Bot User Design (UX)Motivation: there is a good way for bots to communicate to you and there is a bad way. This chapter will distill some common "good" approaches to a bot and Also show some examples of bad communication.conversational User ExperienceText vs rich conversationsBot initiated conversationsPerceived performancePersonalized contentConcise and clear messagingConsistent voiceDo one thing well, provide valueChapter 3: Natural Language UnderstandingMotivation: part of the reason bots are becoming a thing is that natural language recognition technologies are widely available and easier to use.Intent classificationEntity Extractors - Named Entity ExtractionLUISHow to create a modelHow to train LUIS to recognize intents and entities (use ticket ordering bot as a use case)Action Fulfillment - not used in LUIS anymore, but still used in cloud based, intent-led bot frameworks. It is interesting to know when creating bots.Chapter 4: Introducing Microsoft Bot Builder FrameworkMotivation: cloud bot services vs bot as a web service models. We favor bot as a web service model for ease of use, control, extensibility etc.MSFT bot builder framework - what is it?Node.js and why we use the Node.js version vs the C# versionCore conceptsIntro to emulatorNode.js samplesHow to run sampleSome basic bot samplesChapter 5: Dive into Bot BuilderMotivation: we need to go over the different concepts inside the bot builder framework and how they help us build bots.DialogsMessagesConnectorChannelsConversation StateRecognizersActionsProactive messagesChapter 6: Putting it all togetherMotivation: Build a sample bot that uses all of the concepts in the previous chapterBack to ordering tickets bot - lots of codingChapter 7: Advanced bot builder topicsMotivation: Expand sample from #6 with some more advanced concepts like proactive messaging, better dialog management, custom recognizers, deeper action support, group chats, etc.Lots of code hereChapter 8: Deploying to Channels and sending custom dataMotivation: a bot is useless unless it is connected to a channel. Let's see how this is done. We introduce the bot framework web site.Focus on Messenger and SlackShow some custom functionality such as messenger square cards or slack updating messagesChapter 9: Custom channelsMotivation: sometimes you would like to support a custom channel that is not supported out of the box by Microsoft. How do we do this?Using direct lineUsing vanilla bot builder interfacesChapter 10: Making the Bot smarterMotivation: there is a lot of easy to use AI/ML services out there. What are they and how can they help our bot be smarter.VisionEmotionLanguage DetectionSentimentLinguistic AnalyticsQnA MakerWhy use these? Why not use these services? What is the goal of your bot?Chapter 11: Communicating using Custom GraphicsMotivation: rich content and graphics can better capture information than plain text using dynamically generated imagesAdaptive Cards - adaptivecards.io - one option, easier to deal with Custom HTML generation - generate images from html using PhantomJS on the serverChapter 12: Human HandoffMotivation: customers want to keep in touch with your brand, what happens when a human is needed?Chapter 13: Logging and Bot AnalyticsHow do we log data?What are the interesting measures that we look for in a bot?What systems are out there and what can they can us figure out about our customers and bots?Chapter 14: Other bot implementation platformsBrief overview of the technology field: Api.ai, wit.ai, IBM conversation, amazon, etc.Goal of this chapter will be to demonstrate that these frameworks have very similar approaches in terms of NLU, conversation management, state, etc. Knowledge from this book will allow you to develop using the other systems. Explore the concept of bots and discover the motivation behind working with these new apps with messaging platforms. This book is an accessible resource teaching the basic concepts behind bot design and implementation. Each chapter builds on previous topics and, where appropriate, real working code is shown that implements the concepts. By just picking up a code editor, you can start creating smart, engaging, and useful bot experiences today. Practical Bot Development will teach you how to create your own bots on platforms like Facebook Messenger and Slack, incorporate extension APIs, and apply AI and ML algorithms in the cloud. By the end of this book, you'll be equipped with the information to reach thousands of new users with the bots you create! The book is a great resource for those looking to harness the benefits of building their own bots and leveraging the platform feasibility of them. What You'll Learn Understand the general architecture of a bot Distinguish between a great bot experience versus a bad bot experience. Explore the ideas behind natural language processing and apply them to bot development Implement real Messenger, Slack, and custom channel bots using Node.js and the Microsoft Bot Builder framework Deploy bots to Facebook Messenger and Slack Who This Book Is For Engineers, hobbyists, and the design oriented community looking looking for an introduction to the technologies and concepts involved in building bots. The experience level could be from beginner to expert, although some familiarity with Node.js and APIs will be assumed. Explore the concept of bots and discover the motivation behind working with these new apps with messaging platforms. This book is an accessible resource teaching the basic concepts behind bot design and implementation. Each chapter builds on previous topics and, where appropriate, real working code is shown that implements the concepts. By just picking up a code editor, you can start creating smart, engaging, and useful bot experiences today. Practical Bot Development will teach you how to create your own bots on platforms like Facebook Messenger and Slack, incorporate extension APIs, and apply AI and ML algorithms in the cloud. By the end of this book, you'll be equipped with the information to reach thousands of new users with the bots you create! The book is a great resource for those looking and harness the benefits of building their own bots and leveraging the platform feasibility of them