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

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.

Related

Is there possibility to forward content from WhatsApp to our application using business api?

Is it possible to use the WhatsApp business API to communicate with users and also allow them to forward content from WhatsApp directly to our application. For example enabling Web-hooks for different WhatsApp channels to receive the messages from those channels. If yes, can someone guide me how can we implement this feature? and how can we authorize those channels with our WA business account
Finding sources/documentation for developing needed feature
Whatsapp API allows you to Broadcast messages to Unlimited Users, automate notifications, integrate Chatbots, provide Live Chat on Multiple devices and many more functions. Install the WhatsApp Business API Client and then Install your API client. Once your client is working, you can update your application settings. Start using the client, Register your phone number with an API call to /account and send a test message with a call to /messages . let me know if u find this helpful.
Yes, it is possible. The WhatsApp Business Platform allows medium and large businesses to communicate with their customers at scale. Using their APIs, businesses can connect thousands of agents and bots to interact with customers programmatically and manually. Additionally, the APIs can be integrated with numerous backend systems, such as CRM and marketing platforms
Here is the link for the documentation: https://developers.facebook.com/docs/whatsapp/overview
Link for different types of webhooks:
https://developers.facebook.com/docs/whatsapp/webhooks
There are multiple ways given in the documentation. But keep in mind, do read the documentation carefully, they have their updated and the previous version so use them as per your requirements.

Notifications for inactive users

I’m implementing a solution that will notify users in a scenario very similar to a chat.
I’ll be using SignalR and Azure Notifications Hub for the job.
There are two scenarios that I need to address:
Notifying users that are currently connected and using my app - either web or mobile
Notifying users who are NOT currently using the app
I think SignalR will work just fine for the first scenario which is fairly easy.
My question is handling the second scenario which will require Azure Notifications Hub.
In a typical chat app, though it’s not real-time, there’s little delay before an inactive user receives a notification for a new message he receives.
How do I “trigger” a process that will send a notification through Azure Notifications Hub?
I can think of two ways to handle this:
Figure out a way to keep a list of users who currently have an active connection to my app. These users can be notified through SignalR. So after each new message, I could trigger a notification process that will use Azure Notifications Hub for users who are NOT in the active users list i.e. those who are NOT actively connected to my app.
Another approach would be to assume no one is connected. I could create an Azure Functions app that runs every minute to check on messages that are NOT opened. It would then compile a list of users who need to be notified and call Azure Notifications Hub process to notify them.
I don’t want to reinvent the wheel and want to tap into the experience of those who’ve already implemented a solution like this.
I’m currently leaning towards the second approach. I’d appreciate your suggestions, especially on approaches that I haven’t thought of. Thanks!

Connecting Dialogflow with Api

Can anyone provide any guidance or have any idea on how to connect Dialogflow with a music streaming API such as Apple Music, Spotify, etc to create playlists with my Agent? I've found some research in these locations to confirm that they do offer this service to developers but I honestly don't know where to begin.
I have visited the developer site for Both AppleMusic and Spotify but it isn't clear on how I implement their code with Dialogflow
My main goal is to have a user be able to tell the Agent "I'm in a good mood" and the agent will respond "That's great! I made you a playlist for your day: (Insert Playlist)".
If you wish to integrate Dialogflow with any service using custom behavior or logic you can do that using fulfillment. With fullfilments you can trigger code on a server that you create which interacts with the service of your choice (in your case Apple Music and Spotify).
In this server you can code whatever you want your bot to do when you user talks to your bot. So when they say "I'm in a good mood", the server will add a playlist to their account and once this is completed you tell Dialogflow what to return to the user. The only thing you have to do is make sure that the server returns a response that Dialogflow can understand.

How to obtain an Edmunds API key?

This is my first attempt to use an API. I followed the instructions for registering for an Edmunds API (http://developer.edmunds.com/).
I registered for an account, got an email from them to confirm, clicked on that link, and got a request to register my application, which I filled out.
But when I log into my account and click on "keys", all I get is the message "You don't have any keys yet".
What am I missing? Thanks in advance.
Here is the email response I got from Edmunds:
Joe,
Thank you for your interest in the Edmunds Open API Program.
Unfortunately, we are in the process of retiring our Open API Program. Therefore, we are unable to issue you an API key at this time.
Regards,
Edmunds
UPDATE
The Edmunds API has been shutdown.
I would like to also recommend this website, it contains a list of the latest car information/database APIs.
I can't remember exactly how I created mine, I believe I created my dev account and then received an api key link via email. I clicked the link and it took me to a page where I could setup my app and receive an api key. You should have received said email by now.
If that doesn't work then try emailing: api#edmunds.com
An alternative to Edmunds API would be Marketcheck Cars API
The developer portal is given here with Comprehensive API documentation
The APIs supported are
Inventory Search API
VIN History API
Dealers API
VIN Decoder API
CRM Cleanse API
and lots more APIs coming up like - Market APIs with active and historical market averages, trends, dealer sales stats, dealer ranking, deal ranking, total cost to own, car market values (like Edmunds TMV) coming up

How to implement a "timely query" using Apache+wsgi?

I am new to apache + wsgi programming and I am trying to implement a "email notify" service.
In this service, users will register their email address and interesting game players' name, and web server will timely (for example every 6 hours) query the players' information, if some new matches happen, then send a email to the users who register their email for this player.
Very straight forward approach, but I don't know how to timely invoke the service to query certain informations... I tried to do some Google, but basically I don't even know who should response for this functionality, Apache? or some configuration of mod_wsgi?
Could anyone give me some help?
Use a backend task queuing system like Celery and configure periodic tasks.
http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html
Do not try and do it as part of the web application.