Bot Framework Overview

The Microsoft Bot Framework is a comprehensive offering that you use to build and deploy high quality bots for your users to enjoy wherever they are talking. The framework consists of the Bot Builder SDK, Bot Connector, Developer Portal, and Bot Directory. There’s also an emulator that you can use to test your bot.

A bot is a web service that interacts with users in a conversational format. Users start conversations with your bot from any channel that you’ve configured your bot to work on (for example, Text/SMS, Skype, Slack, Facebook Messenger, and other popular services). You can design conversations to be freeform, natural language interactions or more guided ones where you provide the user choices or actions. The conversation can utilize simple text strings or something more complex such as rich cards that contain text, images, and action buttons.

The following conversation shows a bot that schedules salon appointments. The bot understands the user’s intent, presents appointment options using action buttons, displays the user’s selection when they tap an appointment, and then sends a thumbnail card that contains the appointment’s specifics.

salon bot example

To build your bot, the Framework provides a .NET SDK and Node.js SDK. These SDKs provide features such as dialogs and built-in prompts that make interacting with users much simpler. For those using other languages, see the framework’s REST API. The Bot Builder SDK is provided as open source on GitHub (see BotBuilder).

To give your bot more human-like senses, you can incorporate LUIS for natural language understanding, Cortana for voice, and the Bing APIs for search. For more information about adding intelligence to your bot, see Bot Intelligence.

When you finish writing your bot, you need to register it, connect it to channels, and finally publish it. Registering your bot describes it to the framework, and it’s how you get the bot’s app ID and password that’s used for authentication. Bots that you register are located at My bots in the portal.

After registering your bot, you need to configure it to work on channels that your users use. The configuration process is unique per channel, and some channels are preconfigured for you (for example, Skype and Web Chat). For information about configuring channels, see Configuring Channels. The framework also provides the Direct Line REST API, which you can use to host your bot in an app or website.

For most channels, you can share your bot with users as soon as you configure the channel. If you configured your bot to work with Skype, you must publish your bot to the Bot Directory and Skype apps (see Publishing your bot) before users can start using it. Although Skype is the only channel that requires you to publish your bot to the directory, you are encouraged to always publish your bot because it makes it more discoverable. Publishing the bot submits it for review. For information about the review process, see Bot review guidelines. If your bot passes review, it’s added to the Bot Directory. The directory is a public directory of all bots that were registered and published with Microsoft Bot Framework. Users can select your bot in the directory and add it to one or more of the configured channels that they use.

Section Description
General FAQ

Technical FAQ
Contains frequently asked questions about the framework.
Support Provides a list of resources where you can get help resolving issues that you have with using the framework.
Downloads Provides the locations where you can download the .NET and Node.js SDKs from.
Samples Provides the locations where you can get the C# and Node.js code samples from.
Emulator Provides details about getting and using the framework’s emulator, which you can use to test your bot.
User Experience Guidelines Provides guidelines and best practices for crafting a bot that provides the best experience for the user.
Bot Intelligence Identifies the APIs that you can incorporate into your bot to provide a better user experience. Adding intelligence to your bot can make it seem more human-like and provide a better user experience. For example, the Vision APIs can identify emotions in peoples’ faces or extract information about objects and people in images; the Speech APIs can covert text-to-speech or speech-to-text; the Language APIs can process natural language and detect sentiment; and you can use the Search APIs to find information that may be of interest to the user.
Bot Builder for Node.js Provides details for building bots using the Node.js SDK.
Bot Builder for .NET Provides details for building bots using the .NET SDK.