In the previous posts we saw how to create a bot using botframework and integrate it to LUIS platform to process the textual user input and generate user intents and entities which are more likely to be understood by our application then normal text.

In  this post we will integrate our Office365 assistant bot into Skype bot in a simple configuration steps. we do not need to rewrite any of the code we've already have before. In a similar manner our bot can be connected to other various bots.

Creating a Skype bot
without digging into further details about Skype bot , you  can find a lot of details here , the most important step is when creating a bot under messaging webhook make sure you got the URL copied from your generic bot

Use the below URL and place your bot Id as query string parameter
https://skype.botframework.com/Dev/?botId={Your bot ID here} for example using our previous bot example we can use


Testing our bot in Skype
after creating the bot you will find a button that suggest adding the bot as Skype contact it will redirect to a URL


After adding the bot as Skype contact we can find it online as in the below image

As we can see the Email assistant bot is not available for messaging, so let's start our bot locally

In the generic bot definition we need to publish accessible URL we can easily deploy our bot to azure website or simply use a tool like ngrok to tunnel connection to our localhost

now a *.ngrok.io link will be generated so let's substitute end point with this new value and let's add /api/messages as a suffix.

now let's really test our bot integration with Skype

Connected bots vs. Specific platform bots

Building bots as connected bot not vs. building  a platform specific bot is basically depends on your bot scenario for example connected bots are good if you don't require a specific requirement based on the bot conversation context and you would like to share the same behavior between different bots. However having the conversation context of the bot is a good advantage so we can deliver a tailored experience based on user behavior which depends on the platform capabilities.