Data sovereignty for Teams bot framework channel - botframework

I have a customer wanting to use Bot Framework that has very strict data sovereignty requirements - anything to / from the user must stay in Australia. The bot endpoint is inside their Azure environment (Australia East) in an ASE. They want to use Teams as the channel. Their Teams / Office 365 sub is in Australia. They are concerned that the bot registration itself is in the Global region, whereas the other bits they control are in Australia.
Can we confirm that all elements of communications would stay within Aus? I'm not quite clear on the fine details of how messages from a Teams chat are routed through the bot connector service on their way to the endpoint in Azure. I've seen various diagrams such as this one, but nothing that goes into the level of detail we need - https://github.com/OfficeDev/microsoft-teams-faqplusplus-app/wiki/Solution-overview

I think you need to stick to APAC serviceUrl. (/apac)

Microsoft confirmed for us that if the Teams instance is in Australia, and that if the Azure tenant is hosted in Australia, then user traffic to/from the bot will remain within Australia.

Related

create service desk with human agents based on ms bot framework

I am looking for example or guidence to use MS Bot Framework for service desk agents who is answering chat coming from MS Bot Framework too. Exist some example for ver 3 and ver 4 but they are not complete and outdated. I think MS Bot WebChat control can be used successfully for agent to talk to customer same as customer using it. Needs to implement some kind of real-time dashboard with current customer's chats and provide functionality to agent to join/disconnect live customer's chats.
Thanks

Microsoft Teams and Skype For Business issue - multiple conversation with the same user

I have a very strange issue with Teams and Skype for Business.
I have a customer (outside of my company), who was using Skype For Business. He was using an SFB self-hosted server.
I was also using Skype For Business with my Office 365 tenant at this time because Teams was not yet created. And we have set the federation between my customer's domain and mine, so we were able to chat on Skype For Business.
A few years ago, I migrated to Teams. I was able to see my customer (who was still in Skype For Business) in my Teams and I was able to chat with him. I was not able to share my desktop with him except in Teams meeting, but I know that this is a limitation due to the cohabitation between Teams and SFB.
Now my customer moved to Teams. When we chat in Teams, I have two separate discussions:
One discussion where I can talk with him, marked with a small Skype logo -> my customer can only read this conversation, he can't respond;
One discussion where I receive the response from my customer and where I can't respond...
This means that I have two separate discussions in Teams for each member of the customer crew... And I don't know how to merge or remove one.
The customer has the exact same situation on its side.

What's the difference between Azure Bot Service and QnA Maker Knowledge Base?

I don't understand the difference here, but there must be one. With the Azure QnA Maker, I can create a list of questions and interact with the Knowledge Base via an API and get answers back. What additional features does the Bot Service offer?
QnA service can only retrieve answers from the Knowledgebase, nothing else. You can think it as a fancier Database, you can query it using human language.
Bot Service is the application layer, you can build other business logic in this layer to make your Bot looks smarter. e.g. User asks "What's the weather tomorrow", when your bot service receives this message, you can call the weather API to get the weather, instead of forwarding the question to the QnA service. The bot service also provides interfaces to integrate with different chat channels like Teams, Slack, etc.
Of course, you can do much more in the bot service based on your own business needs. If your bot is solely used for QnA, this layer indeed will seem to be a thin layer wrapper.
The Azure Bot service is just a bot managing SaaS which offers multiple things like ability to automatically push you bot onto multiple channels(teams, slack, facebook etc.) without needing to code the adaptors. It also offers other services like hosting your bot onto the Azure cloud servers and other services like LUIS (Microsoft's NLU), QnA maker, speech service etc.
The web channels adaptor is mostly free which the bot hosting and other services are paid

How to host BF Skills in Teams App Store?

We have a bunch of Microsoft BF Bot Skills that we are using with our Virtual Assistants. Not all skills are applicable to all our users. Teams being our collaboration platform, I was thinking if we could host these skills in our Teams enterprise app store and then let our users dynamically add them to the VA as needed. Is this even possible? Has anyone tried something like this?
Unfortunately, I don't believe this would work as they are currently designed. The relationship from bot:skill is managed, primarily, by the bot via AppId's, keys, endpoints, etc., shared between the two. The issue is each skill uploaded into Teams would require it's own manifest whereas normally only one is promoted, the primary bot. By each skill having its own manifest, Teams is going to treat it as an individual app. I believe this would interfere with the bot and skill properly connecting.
That being said, you could forgo the current bot:skill design and create smaller independent bots. By using proactive messages, it is perfectly feasible to send messages between bots. As a user interacts with the HR bot and answers some question about payroll, that message is forwarded as a proactive message to the Payroll bot which does stuff and then returns a message back to the HR bot and, subsequently, to the user.
Hope of help!

Does the Microsoft Bot Framework "phone home", or otherwise send data to 3rd parties?

So let's say I make a bot and place it in my ASP.NET MVC project. When the user queries the bot, and the bot replies to the user, is any data sent to Microsoft, or other third-parties?
Data goes to the channel you're using; so if you use the Facebook Messenger channel, Slack channel, or another 3rd party (non-MS) channel, data is going to Facebook, or Slack, etc.
CLARIFICATION EDIT: When you use the Bot Connector Service, i.e. when you register a bot at dev.botframework.com and enable any of the channels there, your conversation data will go to Microsoft. Addresing your original question directly; yes, data is sent "home". However, if you use a 3rd party channel, the data is just translated by Microsoft into the channel-specific format, sent to the 3rd party and NOT stored by Microsoft. What the 3rd party does with that data, e.g. use it for mining, store it indefinitely, is up to them.
As indicated below, using Microsoft channels will involve the data being handled and stored temporarily by Microsoft.
If you use any of the Cognitive Services, e.g. LUIS, by signing up for the service you've indicated your willingness to allow Microsoft to retain the data indefinitely and use it for various pursuits, one of them being to improve their products and services. I highly recommend visiting this page and reading through it.
EDIT: LUIS doesn't store the application data for improving its services, the data is stored for use by the developers to improve their own specific models.
EDIT: LUIS also allows developers to add "&log=false" to their endpoint and it will disable logging of data.
When using MS channels like Web Chat, DirectLine and Bing channels, data is retained and the content encrypted for up to 24 hours. This is for queuing and dispatching the messages on these channels.
When you move from dev to production and change from using the Bot State Service to your own storage service, you control the State data. All data on the Bot State Service is encrypted. That said; we encourage developers to move over to their own state service as soon as possible. This can be done by using BotBuilder-Azure which has examples on how to use Table and DocumentDB to manage state as opposed to using the Bot State Service.
Within the Bot Framework itself, conversation data is not used for mining or improving models or anything in the Bot Framework.

Resources