Key concepts in the Bot Connector API

The Bot Framework and the Azure AI Bot Service allow your bot to communicate with users on Teams, Facebook, and more. Channels are available in two forms:

  • As a service included as part of Azure AI Bot Service.
  • As adapter libraries for use with the Bot Framework SDK.

This article focuses on the standard channels included in the Azure AI Bot Service.

Bot Framework Channels

Bot Framework channels enable your bot to exchange messages with channels configured in the Azure portal. It uses industry-standard REST and JSON over HTTPS and enables authentication with JWT Bearer tokens. For detailed information about how to use the Bot Connector service, see Authentication and the remaining articles in this section.

Activity

The Connector service exchanges information between bot and channel (user) by passing an Activity object. The most common type of activity is message, but there are other activity types that can be used to communicate various types of information to a bot or channel. For details about Activities in the Bot Connector service, see Activities overview.

Authentication

The Bot Framework Service uses JWT Bearer tokens for authentication. For detailed information about how to authenticate outbound requests that your bot sends to the Bot Framework and how to authenticate inbound requests that your bot receives from the Bot Framework, see Authentication.

Client libraries

The Bot Framework provides client libraries that can be used to build bots in C#, JavaScript, Python, and Java.

Note

The Bot Framework JavaScript, C#, and Python SDKs will continue to be supported, however, the Java SDK is being retired with final long-term support ending in November 2023. Only critical security and bug fixes within this repository will be undertaken.

Existing bots built with the Java SDK will continue to function.

For new bot building, consider using Power Virtual Agents and read about choosing the right chatbot solution.

For more information, see The future of bot building.

In addition to simplifying calls to Bot Framework REST APIs, each Bot Framework SDK also provides support for building dialogs that encapsulate conversational logic, built-in prompts for simple things such as Yes/No, strings, numbers, and enumerations, built-in support for powerful AI frameworks such as LUIS, and more.

Note

Azure AI QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.

Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in the Bot Framework SDK, see Natural language understanding.

Note

Language Understanding (LUIS) will be retired on 1 October 2025. Beginning 1 April 2023, you won't be able to create new LUIS resources. A newer version of language understanding is now available as part of Azure AI Language.

Conversational language understanding (CLU), a feature of Azure AI Language, is the updated version of LUIS. For more information about language understanding support in the Bot Framework SDK, see Natural language understanding.

Note

As an alternative to using the these SDKs, you can generate your own client library in the language of your choice by using the Bot Connector Swagger file or code direct to its REST API.

Bot State service

The Microsoft Bot Framework State service is retired as of March 30, 2018. Previously, bots built on the Azure AI Bot Service or the Bot Builder SDK had a default connection to this service hosted by Microsoft to store bot state data. Bots will need to be updated to use their own state storage.

Additional information

Learn more about building bots using the Connector service by reviewing articles throughout this section, beginning with Authentication. If you encounter problems or have suggestions regarding the Connector service, see Support for a list of available resources.