Microsoft Bot Integration with Whatsapp

You can try using the Direct Line as stated in the documentation!

You can enable your own client application to communicate with your bot by using the Direct Line channel.


There are a two possibilities to connect a bot to additional channels, using a custom adapter and using the DirectLine API.

My preference would be to use an adapter, since you will have a direct connection to the WhatsApp service which offers a lot of flexibility. However in some scenarios you could benefit from using a proxy service connected to the Direct Line.

In the end, you could use any provider you like, as long as they offer an API. For example providers like Twilio, RingCentral, InfoBip, LivePerson.

My recommended approach: Custom Adapter

  • Bot has a direct connection to the WhatsApp service, using an extra endpoint in the bot
  • Well written adapters transform all Bot Framework SDK activities to the WhatsApp service, and vice versa. (example).
  • Multiple adapters could be used with the same bot project
  • Adapters could offer specific helper functions for the channel, callable from your bot project. (example)

Currently the following adapters for WhatsApp are available in the BotBuilderCommunity.

  • Twilio WhatsApp adapter (Javascript)
  • RingCentral (WhatsApp) adapter (C#)

Examples of how to build a custom adapter can be found on the BotBuilderCommunity. (C#, Javascript)


Alternative approach: Proxy service connected to DirectLine

  • DirectLine API communicates via a self-hosted proxy service to the WhatsApp service
  • Proxy service could be used for C#/NodeJS/Python bots, not language specific
  • Well written proxy services transform all Bot Framework SDK activities to the WhatsApp service, and vice versa.

Example of how to build a proxy service can be found here: C#, Javascript.