Dialogflow information/analytics retrieval and feed back to user - dialogflow-es

I am just starting to use dialogflow.
I am wondering if I can retrieve information back to the user (analytics)?
Say a user asks the chatbot "how long have I spent time with you?" or after a few quizzes, the user asks "what is my score"?
The chatbot is being able to tell the user regarding the information.
If so, is it able to do it via the console or needs to code in local?
Thanks

Related

Dialogflow Fulfillment cannot do dynamic quiz chatbot

I hope you're all having a good day.
I'm trying to make a dynamic quiz chatbot in dialogflow.
So, I have a user saying "Let's play a game". It'll then go to the intent and go into fulfillment. The fulfillment will then go into a method and get a list of dynamic questions from my database. There could be any number of questions. So, the bot will ask the first question and then it will wait for the user's answer and see if it's correct. Then it will ask the next question.
So the bot will firstly ask a question, However, I'm stuck at the part where the user will give an answer. Because I have no idea how to get the bot to listen to the user's answer after asking the first question, and go back into the right fulfillment method.
Because if the user answers with "blue", how will the chatbot know that the user is answering a question instead of just randomly saying blue?
You need to make use of contexts.
When the intent is invoked and it fetch the list of questions from your database, you will also set an output-context.
Then you will have to create one more intent which will be invoked when user is giving an answer. In this intent you will set same context in input-context which you have earlier set in output-context.
This way, Dialogflow will know that user is giving an answer, not just randomly saying some words.
Context is the key in conversations.

Basic Concept of Chatbot using Wit.ai

I am trying to create a chatbot application where user can create their own bot like Botengine. After going through google I saw I need some NLP api to process user's query. As per wit.ai basic example I can set and get data. Now I am confused, How I am going to create a botengine?
So as far I understand the flow, Here is an example for pizza delivery:-
User will enter a welcome message i.e - Hi, Hello ...
Welcome reply will be saved by bot owner in my database.
User will enter some query, then I will hit wit.ai API to process that query. Example :- Users query is "What kind of pizza's available in your store" and wit.ai will respond with the details of intent "pizza_type"
Then I will search for the intent return by wit in my database.
So, is that the right flow to create a chatbot? Am I in the right direction? Could anyone give me some link or some example so I can go through it. I want to create this application using nodejs. I have also found some example in node-wit, but can't find how I will implement this.
Thanks
What you need is webhook. You need to call different API's based on the user intent. I believe you can distinguish between different intents using parameters available in request. Check this out - Creating nodejs webhook for dialogflow

Dialogflow Agent Conversation

Is there a way to get the Dialogflow agent's conversation history programmatically?
I made a chatbot using Dialogflow. Now I need to get the conversation history of my agent programmatically.
That feature (an important one) is not available yet.
Since there is not an API call to retrieve a history of conversation So, the only way I know how is to
Go to the Training tab and see the conversations that way, although it only gives the reply in the form of the intent, and not what the bot actually replied.
But if you want to access all conversations history then don't go for one-click integration make your own login system with Outh2 and integrate using Detect Intent Api and store your conversations by logs.
Then you can get conversation history programmatically.
You need to log all the requests by writing your own code if you want
to get the history.
Depends on what history u meant to fetch.
You can easily integrate your agent with google chatbase and you can get the conversation history pretty simple.
You don't need to write any programs and all.
Chatbase Automatically keeps track of history and user messages.
But it can only store history of past 30 days. :)
If you are using the NodeJS library, aling with Dialogflow, one option for you would be to save your conversation inside the user object. That way the data /conversation can be accessed by the user in future sessions.
Here's how I'll go about implementing this:
function saveConv(conv){
Conv.user.storage.convToSave = 'conversation_object'.
}
To access it I'll do:
function getSavedConv(conv){
var savedConv = conv.user.storage.convToSave.
}
Please let me know if this amswered your question.

Microsoft Bot transparent authentication

I just started exploring Bot Framework and I case that I wasn't able to find an answer for came in my head.
I want my bot to say something like: "Hi " when the user type hi, hello etc, but at the same time I don't want to prompt the user to sign-in again, because he already did it when accessing the page. How to achieve that when I insert the web chat as iframe?
The user is authenticated using AAD. I found this article, but i wasn't able to make it working, idk why.
Thanks in advance for you answers.
For your scenario, you can use the BackChannel mechanism. With this, you can pass messages from/to the WebChat Control from/to your page. And more on your question, maybe you can pass some user data to the WebChat when user is logged.

How to implement a chatbot to human executive switch using Microsoft Bot Framework?

The exact point being, that I've created a bot that can take inputs from users in free form text and return relevant web links. Now the problem being, that in case the bot is not able to understand the user query, the control of the conversation has to be passed on to the human executive.
I've researched for over 2 days but could not find any such implementations. The closest I came was third party applications like ChatFuel, letsclap.io provide such a provision. So, there should be a way only that I am not able to find such a thing.
Any help on this would be appreciated.
one possible way is you can make a bridge, idea is as follow:
user send something that the bot cannot reply (conv-1)
make a new conversation with your human executive (conv-2)
forward user message to conv-2
human executive replied to the bot (conv-2)
capture the message and forward back to (conv-1)
See this link on how to start a new conversation:
https://docs.botframework.com/en-us/csharp/builder/sdkreference/routing.html#sendtoconversation
Hope it helps,
Maybe you can create some APIs in a WebApplication that will be used by your bot.
If the LUIS Intent "None" is called, you make a call to that API and start a new conversation with a human.
You can use this same process to manage all conversations in a WebApplication Chat Control

Resources