Sessions in Microsoft Power Virtual Agent - power-virtual-agents

Is there a way to use sessions in PVA so that we can greet the user when he comes back or to pickup the chat from where they left off.
tried to find documentation to see the possibilities

Related

How to chat and call automatically in MS Teams?

I'm working on a solution to build a system that automatically alerts users on Microsoft Teams. The order of execution will be:
Automatically scan alarm logs
Sort and send MS Teams messages to personnel for corresponding processing
If the processing staff does not receive the message, make a call on MS Teams to read the pre-recorded voice record.
I used python to automatically get the warning list, to send this alert list to the handler, I have tried MS Teams REST API but it only supports sending messages to Channel. How do I automatically chat and voice calls to an MS Teams user? Can chatbot help me with this problem? I see there are many types of bots that can be added to the conversation:
I think a chatbot is definitely the best way to deal with this. Essentially, you're wanting the bot to message a user on demand, which is something called "Proactive Messaging". You can read more here and here. There are a few things you need to know about this, but in a nutshell you need a way to specifically identify the user for sending the message, which you can get when the user first installs your bot (mostly you need "ServiceUrl" and "ConversationId").
With regards to knowing if the user has read the message, you might want to send an "adaptive card" with a button for the user to acknowledge that they've read the message, and if you don't get a callback within some time frame, start the voice call.

Customer Service scenario with MS Teams using Microsoft Chatbot in SDK v4 and .NET Core 2.2

I am working on a chatbot with LUIS and QnA Maker that works in a customer service scenario with MS Teams as the platform which the customer service is going to use. I am thinking of having the bot as a 1:1 chat for every customer service agent in MS Teams. Whenever a user wants to talk to a customer service agent by typing "i want to talk to a customer service agent" or similar, the bot hands-off to human in MS Teams.
I want to know if having a 1:1 chat in every customer service agent teams is a good idea or should I create Teams and channels under it with every new conversation. This scenario seems limiting to me as bot might hit the channels limit and every conversation is open to everyone who is a part of that team.
Plus, is scenario one plausible, where every agent has a chatbot in their MS Team and the chatbot routes the conversation from user to agent(whoever is free)?
Can the bot keep conversation state and know how to route message to the right agent and user?
Thoughts and help in the right direction please?
I would recommend looking at #tompaana's Human Handover Sample. His samples implements a middleware that forwards activities between Teams and Slack. It's probably a good place to start.

Is there a way to use Google smart home actions while restricting certain users to unlock/lock a specific smart lock door?

I'm currently working on a smart lock project. And we want to let our backend server send commands to the relating smart lock. And we are considering Google smart home actions to send some sort of command to the smart lock from our backend server to open/close the lock. But I want to ONLY let the backend server send these commands to the smart locks, and NOT everybody who is connected to the wifi network (as most of the times everybody on the network can control all smart home devices e.g. set volume of speaker, open front door, dim lights etc. etc.). I have seen some things about account linking inside, but not sure if that's what I need. So my question was: Is there a way using smart home actions to only give one person (or in this case entity) access to do certain actions? Thanks in advance.
You can use two-factor authentication to require a person to give an ack or PIN to send the final command.
The specific architecture of the lock and its connection is up to you, but I don't believe there is a way to limit control of the lock to specific accounts. If there is a Google Home, any individual in the home is able to issue the initial command. If this individual knows the PIN, they can say that as well.

How to use same account for multiple companies (Just like a same account can be used for multiple workspaces on Slack)

I am working on a web application which is based on Google App Engine (GAE). The requirement of the application is that one user can be associated with multiple company accounts.
My application has two main types of accounts. One is that main Admin/Company account. Other is the employee account (i.e. the persons who work under a company). Now, what I want to do is that to allow an employee to work under more than one companies, but he does not have to make a separate account for each company. His single account can be associated with multiple companies.
I have explored different platforms which are already supporting this feature. The major ones which I found are Slack and Asana. And my problem can be perfectly mapped to what Slack is doing right now i.e. I create a single account on Slack and I can join multiple workspaces on Slack using this single account.
I want to achieve the same in my application too. I am curious that how Slack is supporting this feature right now? Does it send some ID with every request to the server which indicates that the activity which just has been done is associated with the workspace under this ID? Or there is some unique sort of token associated with every workspace (on Slack API level)?
I do have such a model in my app. A unique auth_token is associated with every company account. So, I am thinking that when an employee wants to do an activity for a specific company he will send this unique token with the request to the server so that server knows for which company the activity was performed.
Does anybody know what is the best way of achieving this?
There are two different concepts at work here:
Relation between account and company / workspace
The data structure for the Slack account is designed such that it can be linked to multiple Slack workspaces, e.g. in SQL you would have a many-2-many relation between the accounts and the workspaces table.
Staying logged in
The way Slack and others Single-Sign-On provides like Google SSO keep you logged in is by settings a browser cookie. That cookie would usually be some kind of crypto hash and the SSO provider will use it to identify to which account the current user belongs to or to request a login via OAuth if the cookie is missing / invalid.
This can also be achieved partly with server sessions (which also uses cookies). Using server sessions is easier to implement than implementing your own (secure) cookie solution, however the user will only stay logged in as long as the browser stays open. But that should be sufficient for most solutions.
Note that tokens for the Slack API work very differently. e.g. they have to be generated per workspace, user and app.

Building a GPS Tracking Web System

I'd like to develop a tracking system using an API of course (like the famous Orange API).
the idea is simple:
I send a SMS (from my Web interface) to the person i want to track
The person's mobile terminal (GPS like this) send me back automatically
the coordinates by SMS.
The sent information are displayed on the user's web interface.
The questions are simple:
How the terminal can send automatically the response?
How to indicate in the message that the information is for "user4655"?
How to make connection between the information and the database?
Thanks,
Regards.
* How the terminal can send automatically the response?
Ans: You set the gateway and the time intervals you want the device to send the sms to on the device itself.
* How to indicate in the message that the information is for "user4655"?
Ans: The gateway you use will have the API to determine that the number it is sent from. The device will use a registered phone number from either a sim or enabled by one of those cell providers.
* How to make connection between the information and the database?
Ans: I dont understand this. But I'm guessing you will have a database to keep track of the user data. You'll just probably need another table that is a child of the user, which has a list of the data and the time they came in.