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:
Sign in to the Azure portal.
Select the bot that you want to configure.
In the left pane, select Channels under Bot Management.
In the right pane, select the icon of the channel you want to add to your bot.
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 through Alexa devices that support Custom Skills. |
| Direct Line | Integrate a bot into a mobile app, web page, or other applications. |
| Connect a bot to both Facebook Messenger and Facebook Workplace, so that it can communicate with users on both platforms. | |
| Kik | Configure a bot to communicate with users through the Kik messaging app. |
| LINE | Configure a bot to communicate with users through the LINE app. |
| Microsoft Teams | Configure a bot to communicate with users through Microsoft Teams. |
| Office 365 email | Enable a bot to communicate with users via Office 365 email. |
| 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. |
| Search | Enable a bot to answer user queries via Dynamics 365 federated search. |
| Skype | Configure a bot to communicate with users through Skype. |
| Skype for Business | Configure a bot to communicate with users through Skype for Business. |
| Slack | Configure a bot to communicate with users through Slack. |
| Telegram | Configure a bot to communicate with users through Telegram. |
| Telephony | Configure a bot to communicate with users through the Bot Framework Telephony channel. |
| Twilio | Configure a bot to communicate with users through the Twilio cloud communication platform. |
| 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. |
| Webex | Configure a bot to communicate with users using the Webex. |
| Additional channels | Additional channels available as an adapter through provided platforms via Botkit 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:
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:
- Telegram channel: Use MarkdownV2 syntax for all markdown.
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.