MS Teams Bot- options to Save data in user instance of teams - botframework

I have created a Teams bot application, which needs to save data received from users. I am currently using azure cloud storage for that, but now as the client requested I want to save the data in the user's MS teams instance. What are my possible options?

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

Extract Dynamics 365 read audit log data from security compliance center

I want to extract the read audit data from Microsoft security & compliance center and I have enable the audit logs for read audit logs and now I need to extract from Microsoft security & compliance center and I see the audit log created in Microsoft security & compliance center. Now I want extract or export data from Microsoft security & compliance center to Azure event hub using console app or web api.
Can anyone help me, how can I extract the data from Microsoft security & compliance center I used XRMToolBox using audit history extractor and it is extracting the audit data from CRM but I need extract or export the read audit data for Dynamics CRM from Microsoft security & compliance center.
How can I build the process? I checked my website I don't see any proper resource.
It’s little bit tricky and not so straight forward. You can get a webhook trigger for new data once ready, then you need to parse it and send to your event hub.
Office 365 Management Activity API reference
The Office 365 Management Activity API aggregates actions and events into tenant-specific content blobs, which are classified by the type and source of the content they contain.
To begin retrieving content blobs for a tenant, you first a create subscription to the desired content types. If you are retrieving content blobs for multiple tenants, you create multiple subscriptions to each of the desired content types, one for each tenant.
After you create a subscription, you can poll regularly to discover new content blobs that are available for download, or you can register a webhook endpoint with the subscription and we will send notifications to this endpoint as new content blobs are available.
Note:
When a subscription is created, it can take up to 12 hours for the first content blobs to become available for that subscription. The content blobs are created by collecting and aggregating actions and events across multiple servers and datacenters. As a result of this distributed process, the actions and events contained in the content blobs will not necessarily appear in the order in which they occurred. One content blob can contain actions and events that occurred prior to the actions and events contained in an earlier content blob. We are working to decrease the latency between the occurrence of actions and events and their availability within a content blob, but we can't guarantee that they appear sequentially.
Sample logs and schema reference.

why Botkit stores data in json_file_store?

So, we are trying to implement slack integration with our product, botkit uses json_file_store to store channel, team, user related information, why does botkit stores such data? Is there way to avoid storing such data on production environment? or should I use any other slack bot client?
You can read more about how and why Botkit stores data here:
https://botkit.ai/docs/storage.html
Youll want to use at least the simple storage to keep track of things like team/user/channel id in slack, especially if the bot is to be installed or interact with multiple teams or users. This data does not persist like using a dedicated storage connector, and if you are worried about data leakage you can use the Events API in concert with Botkit middleware to limit the data that is sent to the app too and from slack.
https://botkit.ai/docs/readme-pipeline.html

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.

Ability to set users free/busy in MS Exchange Server

We are trying to integrate our app with MS Exchange. One of possible features of that integration is to let other apps know if our app user currently performing some important work, so other users should see him as busy.
All APIs I found allow to get user free/busy status, but not set. Is there public api for a writing side?
The free/busy time option on Microsoft Exchange is generated from the Outlook/Exchange Calendar entries from the users. These infos are fetched from the users calendar by the Availability service as written by Microsoft here. So if you wish to "SET" something, you need to create an calendar entry for the user. If you try to add something to the backend environment which is managed by Microsoft Exchange you might cause issues for the users as they do not see that in there calendars. That is also the reason why you are unable to find a "free/busy time writing API". So please create a calendar entry for your purpose and let the MS Exchange Availability service do the rest.
A good starting point to understand the construct is:
Availability service in Exchange 2013

Resources