LUIS deployed through SharePoint - How to get user data? - azure-language-understanding

We have deployed LUIS V4 in our Azure Platform, and made it available to our employee through SharePoint. It is currently open and does not need log in to be used.
We would like to capture information about who the person interacting with the bot is; is there any way that information related to the user can be retrieved? (employees to use the bot must be authenticated to Azure as it is within a SharePoint, but the bot doesn't require authentication as mentioned)
Thank you!

If you are just using LUIS, then no, it does not do any user specific tasks. It only translates an utterance (phrase) into specific actions (intents and entities), also does not store any state.
So all authorisations and user customisations need to be done outside of LUIS, with plain code. If you are using Azure/Microsoft Bot, you can hook up a channel to LUIS and use the id to identify user (skype id, phone number, microsoft teams id...)
A bit of info for connecting Azure Bot with SharePoint.

Related

How to Get User Data from Microsoft Teams Bot Just Once

My web app bot is installed in Teams as an app. (Only in my company(AD) ) Now, I want to fetch users' information such as email, name etc... I don't want to send oauth card again and again to users.
Is there any solution which provides fetching users' (team members') information? Can you please share all setups in Azure AD and Bot framework?
Thanks!

Can we develop a functional or process bot using azure service

I'm looking for a solution where my bot can understand users request(may be with LUIS this can be achieved) and verifies/validates the user/requirement with master data. If all good, then connect to my native database(Siebel CRM via API) to perform the defined action and log a reference ticket(via API) and finally send an email to user using outlook. Is this achievable using azure service?
Yes, the Bot Framework can do all of those things:
my bot can understand users request
LUIS is perfect for this.
verifies/validates the user/requirement with master data
All of this can be done within Waterfall dialogs or Prompts. You can either store the master data in the bot code, or query it from an external source and have the bot validate against it.
Here's a good sample for prompts and validation.
connect to my native database(Siebel CRM via API) to perform the defined action and log a reference ticket(via API)
The bot runs on C#/Node, so anything (including calling your APIs) that you can do in C#/Node, you can do in your bot.
send an email to user using outlook
Bot Framework has a specific Email Channel for this or you can use the Graph API.
Recommended Resources
Docs and QuickStarts
Samples Repo
Reference Docs: C# / TypeScript
LUIS Docs

How to get Microsoft Graph access token using email id in the skype for business bot to add an event to Calendar

In Skype for Business Bot , User is pre-authenticated, need to get Microsoft graph access token , in order to perform Microsoft Graph operations (such as adding events to calendar) in programmatic way..
Please suggest how Microsoft Graph Apis can be integrated with Azure Bot for Skype for business channel.
We want Skype for Business bot to book the meeting just like described here
But instead of Teams need to use Skype for Business. but basically this code line will ask user to explicitly in this code sample
"await context.Forward(new AzureAuthDialog("
There is another sample that need Adminconsent to update the calendar of specific user
Swati
You cannot reuse anything from the pre-authentication. Like any other channel, you have to go through a specific authentication phase.
You have a great sample on the official repository to do this, here: https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/24.bot-authentication-msgraph

Does a Bot Framework bot need to be registered every time it changes, or only once?

I have created Bot 'MyFirstBOT' where my backend is QnA maker application data. I have given a name to this bot called 'TestJPBOT' and I have enabled the Teams channel for this bot so that we can use this bot on Teams applications. Right now in our organization we are working to register this bot with Microsoft so that we can start using it. I would like to know going forward if I want to make any changes in the bot, like changing its name, profile picture, or something similar, do I need to reregister it every time with Microsoft? Or is there no need?
Per my simple testing using Azure Bot Service env, we don't need register again after change our bots.
Actually, register your bot is populate your bot on Microsoft, equivalent to create a index for your bot I think. You change your bot's profile or code, should not effect the index.

QnAMaker bot archiving conversations?

I'm a user of the Bot Framework, and of the sample QnAMaker also. As the owner of the bot, I would like all the conversations to be archived, so I can browse through them afterwards to learn about the expectations of my bot's users, what conversations went well, went bad, etc.
Is there a built-in mechanism in either the bot framework or the QnAMaker sample to archive conversations and give access to the bot's owner?
At this time, I'm unaware of a built-in feature that accomplishes that. However, you could always extract whatever necessary information (text, timestamp, etc.) and then store it in a database entry indexed by the user's channel id or some other identifying value.
Then you could make an endpoint for a REST API that serves the information back to the user, or just serve a web page that displays the information via HTML.
You can declare variables to store specific information in session and prompt the user for the specific information. Like asking for the users name and invoking session.userData[userNameKey] = results.response;
You can setup a database in Microsoft Azure and add .set('storage', tableStorage); to your bot object if you are using the Azure Table Service.
Check out https://learn.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-state
For QnAMaker, there is a recordQnAFeedback object that you should be able to use to store the dialog in a database as well.
Hope that helps.

Resources