Azure Bot Service

Azure Bot Service provides tools to build, test, deploy, and manage intelligent bots all in one place. Through the modular and extensible framework provided by the SDK, developers can leverage templates to create bots that provide speech, language understanding, question and answer, and more. 

What is a bot?

A bot is an app that users interact with in a conversational way using text, graphics (cards), or speech. It may be a simple question and answer dialog, or a sophisticated bot that allows people to interact with services in an intelligent manner using pattern matching, state tracking and artificial intelligence techniques well-integrated with existing business services. Check out case studies of bots.

Building a bot

You can choose to use your favorite development environment or command line tools to create your bot in C# or Node.js. We provide tools for various stages of bot development that you can use to build your bot to get you started.

Bot Overview

Plan

Before writing code, review the bot design guidelines for best practices and identify the needs for your bot. You can create a simple bot or include more sophisticated capabilities, such as speech, language understanding, QnA, or the ability to extract knowledge from different sources and provide intelligent answers. 

Tip

Install the template you need:

Install tools:

  • Download CLI tools to create and manage bot assests. These tools help you manage bot configuration file, LUIS app, QnA knowledge base, and more from the command-line. You can find more details in the readme.
  • Emulator to test your bot

If needed, use bot components, such as: 

  • LUIS to add language understanding to bots
  • QnA Maker to respond to user's questions in a more natural, conversational way
  • Speech to convert audio to text, understand intent, and convert text back to speech
  • Spelling to correct spelling errors, recognize the difference among names, brand names, and slang
  • Cognitive Services for various other intelligent components

Build your bot

Your bot is a web service that implements a conversational interface and communicates with the Bot Service. You can create this solution in any number of environments and languages and we offer easy getting started tools for Visual Studio or Yeoman or directly within the Azure portal. Look below for some of the tools and services you can use.

Tip

Create a bot using SDK, Azure portal, or use CLI tools.

Add components:

  • Add language understanding model LUIS.
  • Add QnA Maker knowledge base to answer questions users ask.
  • Enhace user experience with cards, speech, or translation.
  • Add logic to your bot using the Bot Builder SDK.

Test your bot

Bots are complex apps, with a lot of different parts working together. Like any other complex app, this can lead to some interesting bugs or cause your bot to behave differently than expected. Before publishing, test your bot.

Publish

When you are ready, publish your bot to Azure or to your own web service or data center. You can set up continuous deployment that allows you to develop your bot locally and is useful if your bot is checked into a source control like GitHub or Visual Studio Team Services. As you check your changes back into your source repository, your changes will automatically be deployed to Azure.

Connect         

Connect your bot to channels such as Facebook, Messenger, Kik, Skype, Slack, Microsoft Teams, Telegram, text/SMS, Twilio, Cortana, and Skype to increase interactions and reach more customers.

Evaluate

Use the data collected in Azure portal to identify opportunities to improve the capabilities and performance of your bot. You can get service-level and instrumentation data like traffic, latency, and integrations. Analytics also provides conversation-level reporting on user, message, and channel data.

Azure Bot Service

[This topic is pre-release documentation for V4 SDK content and is subject to change. You can find V3 SDK content here]

Azure Bot Service provides tools to build, test, deploy, and manage intelligent bots all in one place. Through the modular and extensible framework provided by the SDK, developers can leverage templates to create bots that provide speech, language understanding, question and answer, and more. 

What is a bot?

A bot is an app that users interact with in a conversational way using text, graphics (cards), or speech. It may be a simple question and answer dialog, or a sophisticated bot that allows people to interact with services in an intelligent manner using pattern matching, state tracking and artificial intelligence techniques well-integrated with existing business services. Check out case studies of bots.

Building a bot

You can choose to use your favorite development environment or command line tools to create your bot in C#, JavaScript, Java, and Python. We provide tools for various stages of bot development that you can use to build your bot to get you started.

Bot Overview

Plan

Before writing code, review the bot design guidelines for best practices and identify the needs for your bot. You can create a simple bot or include more sophisticated capabilities, such as speech, language understanding, QnA, or the ability to extract knowledge from different sources and provide intelligent answers. To get started, you can use the CLI tools, Azure portal, or the templates below.

Grab the template you need

.NET JavaScript
VSIX template Yeoman template. Use @preview to get v4 template.

Explore or install the tools, if needed

  • Download CLI tools to create and manage bot assests. These tools help you manage bot configuration file, LUIS app, QnA knowledge base, and more from the command-line. You can find more details in the readme.
  • Emulator to test your bot
  • LUIS to add natural language to bots
  • QnA Maker to respond to user's questions in a more natural, conversational way

Build your bot

Your bot is a web service that implements a conversational interface and communicates with the Bot Service. You can create this solution in any number of environments and languages and we offer easy getting started tools for Visual Studio or Yeoman or directly within the Azure portal. Look below for some of the tools and services you can use.

Some of the many components available include:

Components Description
LUIS Add language understanding
QnA Maker Add a knowledge base to answer questions users ask
Dispatch tool If using more than one model, intelligently determine when to use which one
Rich media Enhance the user experience with media cards or speech
Speech Convert audio to text, understand intent, and convert text back to speech
Spelling Correct spelling errors, recognize the difference among names, brand names, and slang

Note

The table above is not a comprehensive list. Explore the articles on the left, starting with sending messages, for more bot functionality.

Test your bot

Bots are complex apps, with a lot of different parts working together. Like any other complex app, this can lead to some interesting bugs or cause your bot to behave differently than expected. Before publishing, test your bot.

Test bot with the emulator or Test bot in Web Chat.

Publish

When you are ready, publish your bot to Azure or to your own web service or data center. You can set up continuous deployment that allows you to develop your bot locally and is useful if your bot is checked into a source control like GitHub or Visual Studio Team Services. As you check your changes back into your source repository, your changes will automatically be deployed to Azure.

Deploy to Azure via continuous deployment.

Connect         

Connect your bot to channels such as Facebook, Messenger, Kik, Skype, Slack, Microsoft Teams, Telegram, text/SMS, Twilio, Cortana, and Skype to increase interactions and reach more customers.

Choose the channels to be added.

Evaluate

Use the data collected in Azure portal to identify opportunities to improve the capabilities and performance of your bot. You can get service-level and instrumentation data like traffic, latency, and integrations. Analytics also provides conversation-level reporting on user, message, and channel data.

Explore how to Gather analytics.