Which bot framework to use (if any) for a Kik, Facebook, & Slack messaging bot using javascript? - botframework

I'm building a chatbot that will need to be launched on Kik, Facebook, and Slack. I'm unsure of where to start in terms of using a bot framework or whether I should create something custom myself.
I don't believe I will need any NLP. The user is going to be pushed down a very structured path, that will use buttons to guide the users to the next prompts and will also share with the user links and media.
Microsoft Bot Framework seems like the main framework I should look at, but its unclear to me how useful it will be if I end up wanting to deliver responses that are custom to each messaging platform. Meaning, on Facebook I may want to take advantage of a custom feature that they have like buttons or templates and on Kik I will want to take advantage of suggested keyboards.
Any suggestions or guidance is appreciated.

BotFramework will do the translation for you. Write to the BotFramework schema and it will using buttons for Facebook and keyboards for Kik.

Related

Chatbot with map/location picker

I am planning to build a chat bot using either azure framework composer, aws lex or google dialogflow but none seem to offer an easy way to have a map/location picker. It should be an straight forward interaction with user where based on a button click the user can then pick the precise location from the map.
Has anyone done something like that?
Many thanks.
I don't believe that any pure NLU framework is going to offer you that level of functionality.
The true purpose behind the likes of Amazon Lex, Google Diaglogflow is to perform intent detection and classification. It is up to the developer to build out the desired functionality associated with each of the configured intents.
What it may practically come down to is presenting the chat user with a map/location popup within the chat widget. The user could then select their current/desired location which gets sent back to the NLU framework for fulfillment.

Chatbot with multiselect option (for Microsoft Teams) [duplicate]

We have a chatbot which interacts with user based on related queries provided as buttons. But the issue here is he can only select one query through button. So I wanted a way through which user can select multiple query from dropdown or checkboxes. Upon searching I cam across this link:
"Allow users to multiselect option in BotFramework"
Now this is something which can help me, but I wanted to confirm that the adaptive card c# bot framework in used in the link can is compatible with Azure bot services or not ?? Can I use this Adaptive Card botframework in Azure bot services ?
I am noob in this and just started with chatbots and all so any suggestion will help or if there is any other better way to implement multi-select options then it will do as well.
Adaptive Cards have little to do with the Azure Bot Service. When it comes to whether or not Adaptive Cards are supported, that is entirely determined by the front end because that's where an Adaptive Card renderer would be. In the case of chat bots the front end would be a chat platform, which the Bot Framework calls a bot "channel." It's important to understand that a lot of bot behavior is channel-specific, and so you need to consider what channel you're using. The two main Bot Framework channels that support Adaptive Cards are Microsoft Teams and Bot Framework Web Chat. You can see an official list of platforms that support Adaptive Cards here: https://learn.microsoft.com/adaptive-cards/resources/partners
If you're using a channel that doesn't support Adaptive Cards, there may be some other channel-specific feature that allows users to select multiple options, such as Slack's block kit. If there isn't, then you may have to design the bot to gather information through a dialog. This could be complicated, but the FormFlow library might help. If you build your own dialog then there's no reason it couldn't still use buttons. You could have a submit button that the user clicks after they've clicked the other buttons, though this might require some more advanced bot development skills.
If you'd like to know more about Adaptive Cards, please have a look at my blog post: https://blog.botframework.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/

Calling an external API from MS Teams chat

Can anyone offer guidance on how to call an external API from within MS Teams chat/posts initiated by an #mention or #hastag? The service I want to build would use the mention/hastag to call an API and return various types of meta data that would then be added to the chat, post, etc. Wondering if Flow or Yo Teams is the best way to go.
The best approach for this would be to create a bot, which gets a name that can be '#' mentioned (e.g. if you bot is called MyBot, you could mention #MyBot in a Teams channel, and it will get notified). Once it receives the notification, the bot can do anything you need it to do.
If you have development skills available (yourself or someone on your team), have a look at the Teams Bot development documentation to get started. If not, Power Virtual Agents could suit your needs (it's like a "drag and drop" bot creator.

3D Avatar Implementation on Botframework V4

I'm searching for knowledge sharing on how to connect a 3D avatar with a bot.
Something like done on Bot Libre https://www.botlibre.com/forum-post?id=682689 .
The implementation can be on WPF, UWP or web.
I'm currently working with Botframework V4.7 and C#.
Thanks in advance,
Amintas
This will likely require you to build a custom connector to pass your bot's incoming and outgoing activities thru to the Bot Libre system. There are examples out there of connectors/adapters that have been built by 3rd parties, such as this Twilio WhatsApp adapter, this Twitter adapter, or this Alexa adapter if you are planning on building in C#.
Any adapter you build won't need to be as full fledged as these are as you are only designing for what you know you need, and not for the masses.
You will also need to research Bot Libre to see which API endpoints might be relevant to you. You can see a listing of APIs here. Really, this holds true for any service like Bot Libre that you decide to land on.
Hope of help!
It depends on the Channel your bot is deployed on and what does the channel supports. For example if your bot is deployed in Facebook Messenger, you can achieve this by creating a web page that renders a 3D Avatar and using Bot Framework you can send a web_url button from which the user will press and the web page will open up inside of messenger with the rendered avatar.

How to integrate Speech to Text with QnA Maker Based Bot?

I have developed a FAQ Bot using C# and Bot Builder SDK 3.15.3. We have a large set of question/answer pairs which are uploaded to a QNA Maker Service. I have enabled the Direct Line Channel and the bot is displayed on a web page. I have used the Web Chat control provided by Microsoft with some customization and skinning.
Now I want to enable voice interaction with the bot, for that I decided to use the Microsoft Speech to Text Cognitive Service.
What I want to do is that when ever user speaks some utterance, I want to send the utterance to my bot service similar to like text is sent. Then inside C# code I want to run the Speech to Text and further do a Spell Check on the text retrieved and finally send to QNA Maker Service. The response for now will only be showed as text, but can also opt to read the response for the user.
Kindly guide my how this is achievable, as after looking at CognitiveService.js and other articles on enabling speech, I notice that Web Chat control directly sends the voice input to speech to text service.
You can make a hybrid between a calling bot which utilizes speech to text and a QnA bot to achieve your goal. For the calling bot, look over the SimpleIVRbot sample to get you going. For QnAMaker, you can reference the SimpleQnABot. It shouldn't take too much work bridging the two into a single unified bot. Just be sure to remove duplicate code and combine files where necessary.
Hope of help!

Resources