Configure a bot to run on one or more channels

APPLIES TO: SDK v4

A channel is a connection between a communication application and a bot. A bot, registered with Azure, uses channels to help the bot communicate with users. You can configure a bot to connect to any of the standard channels such as Alexa, Facebook Messenger, and Slack. For more information, see Azure Bot registration. You can also connect a bot to your communication application using Direct Line as the channel. For more information, see Connect a bot to Direct Line.

The Bot Framework allows you to develop a bot in a channel-agnostic way by normalizing messages that the bot sends to a channel.

  • The service or an adapter translates communication between the Bot Framework Activity schema and the channel's schema.
  • If the channel doesn't support all aspects of the activity schema, the Bot Connector Service tries to convert the message to a format that the channel does support. For example, if the bot sends a message that contains a card with action buttons to the email channel, the connector might send the card as an image and include the actions as links in the body of the email.
  • For most channels, you must provide channel configuration information to run a bot on the channel. Most channels require that a bot have an account on the channel. Others, like Facebook Messenger, require a bot to have an application registered with the channel.

To configure a bot to connect to a channel, complete the following steps:

  1. Sign in to the Azure portal.
  2. Select the bot that you want to configure.
  3. In the left pane, select Channels under Settings.
  4. In the right pane, select the icon of the channel you want to add to your bot. You may need to scroll down to see the list of all Available Channels.

After you've configured the channel, users on that channel can start using your bot.

Channels list

The connection steps are different for each channel. See the related article in the table below more information.

Channel Description
Alexa Communicate with users via Alexa custom skills.
Azure Communication Services Use Azure Communication Services Chat to add a bot to the chat features of your website.
Direct Line Integrate a bot into a mobile app, web page, or other applications.
Email Enable a bot to communicate with users via Microsoft 365 email.
Facebook Connect a bot to both Facebook Messenger and Facebook Workplace, so that it can communicate with users on both platforms.
GroupMe Configure a bot to communicate with users through GroupMe.
Kik Kik no longer supports new bot development.
LINE Configure a bot to communicate with users through the LINE app.
Microsoft Teams Configure a bot to communicate with users through Microsoft Teams.
Omnichannel Integrate a bot to start a conversation with a customer, provide automated responses, and then shift the conversation to a human agent if required.
Outlook (preview) Configure a bot to communicate with users via quick actions from within Outlook.
Search (preview) Enable a bot to answer user queries via Dynamics 365 federated search.
Skype Skype no longer supports new bot development.
Slack Configure a bot to communicate with users through Slack.
Telegram Configure a bot to communicate with users through Telegram.
Telephony Telephony is in preview and isn't currently accepting additional customers.
Twilio (SMS) Configure a bot to communicate with users through the Twilio cloud communication platform.
WeChat Configure a bot to communicate with users using the WeChat platform.
Web Chat Automatically configured for you when you create a bot with the Bot Framework Service.
Additional channels Additional channels available as an adapter through Botkit provided platforms and community repositories.

Select the protocol schema transformation version

As described above, a channel converts incoming messages from other services to the Bot Framework protocol schema. Likewise, messages sent by the bot to other services are transformed from the Bot Framework native schema to the format of these services. This process is called schema transformation. The Bot Framework Service maintains backward compatibility of the protocol to avoid changing the behavior of existing bots.

Occasionally, a change in the schema transformation process needs to take place that can, potentially, change the behavior of the existing bots. An example of such a change could be any bug fix, if some of the users have taken a dependency on the existing (however erroneous) behavior. Another example of such a change would be updates or improvements in other services that would benefit bots; however adopting these updates can, potentially, change the existing behavior.

By controlling the schema transformation version of their bots, bot developers can control when (if ever) to enable new behavior. By default, newly created bots get the most recent schema transformation version. Existing bots can be upgraded to the newest version when they're ready to take advantage of the improvements introduced in this version. Any bot can be upgraded or downgraded at any time.

You can change your bot's schema transformation version in the Configuration pane under Settings:

The Schema Transformation Version field in the Configuration pane

Supported schema transformation versions

  • Version 1.3

    • Date introduced: May 2021
    • Changes:
      • Direct Line: Remove Deserialize/Reserialize of Adaptive Cards. The content of Adaptive Cards will be passed to the client as is.
  • Version 1.2

    • Date introduced: April 2021
    • Changes:
      • Slack channel: Attachment name is used for Message Text value.
      • Facebook channel: Upgrade to Facebook Graph API v9.0.
  • Version 1.1

    • Date introduced: April 2021
    • Changes:
  • Version 1.0

    • Original version

Connect your bot to one or more channels

The publishing process is different for each channel. For more information, see the article for each specific channel.

Next steps

The SDK includes samples that you can use to build bots. Visit the Samples repo on GitHub to see a list of samples.