Clicking https://www.messenger.com/t/xxxxxxxx will take you to a bot and continue the conversation, if there was no conversation it'll begin it's 'firstRun' sequence.
Is it possible to create links that will execute a specific dialog and pass in data? It should ignore previous dialog state/stack and start a new stack with the specified data as argument to that dialog.
This is not possible. The url is used to identify the user/bot in messenger. The bot doesn't see the url so it can't read from it.
I would suggest taking a different approach. You could let the user pass in the code instead of adding it to the url.
There is a new functionality in Messenger platform that allows you to send specific messages to a bot: https://developers.facebook.com/docs/messenger-platform/referral-params
I haven't tested it yet, but it may help you.
Related
I'm building a teams app that contains some tabs and a bot.
Is it possible to, when an action is performed on a tab (i.e. clicking a button), initialize automatically a chat with the bot, or send a specific message?
Tks
Based on the comments above, what you're looking to do is implement "pro-active" messaging, where the bot itself initiates the conversation. It's definitely possible, and you can read more to get started here and here. The most important thing to know is that your user has to have installed the bot already, to get a "conversation context", but if they've installed the app, which includes the bot, to get the tab, then you're fine. You need to get some variables when they do install the app, which you hook into the conversationUpdate event to get access to. Give it a go and let me know if you have specific questions, here on SOverflow.
I'm building my first chatbot using Dialogflow. During my chat sessions, I would like to move on from one intent to another, without having user input in between. This can be seen in this image on Imgur.
The layout of the chat so far can be seen here.
I'm supposed to move from showing the video or article directly to "allright has your car..." without any user input, but I don't seem to be able to. How do I solve this?
I've tried using in and output contexts, but that didn't seem to work.
Thanks in advance!
Events can be triggered through Dialogflow fulfillment or the
detect intent API. These events can be handled in your Dialogflow agent or in fulfillment.
Check documentation here: Dialogflow Events
This means you will need to programmatically do this
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.
I’m coding a bot using PHP-BotMan for complexity reasons and using Dialogflow query api to extract and manipulate the informations from the response. I saw examples and hints from people here and on dialogflow forum suggesting using context or events, some of them mixing both. What is the better way to handle this?
The flow of the application is:
user messages bot
bot queries (text or/and #event?) dialogflow
internally process a reply or return dialogflow slotfilling* request
text response bot reply user with last reply or asking to fill slot
Also, how can I be sure that a slotfilling process is finished with “actionIncomplete” only having two values, NULL or TRUE? The dialogflow query response doesn’t show wich slotfilling parameters are required or not…
Thanks for the help!!
slotfilling is when dialogflow sends a text response requesting required parameters to finish an intent, adding those replied values to the context
I was trying something similar to your scenario, here are few points i found helpful:
When Slotfitting with webhook, i can't use the "Required" params field since i have to control the input parameters via webhook (query database to provide options). Which means actionIncomplete field is not useful anymore.
I personally prefer to use context as it can add/remove params which gives you more control.
Hence the dialog was designed to use webhook to check all required params before move on to next conversation flow. and pop quick replies menu to ease and restrict possible input from users.
HTH.
Slackbot can be configured to respond something when you say some selected key words. Can that feature be use to trigger actions.
For example, when I say meeting, can it execute the command /todo #me meeting due today?
You can setup custom triggers for the slackbot, but it won't do what you're looking for because the todo-bot actions don't seem to trigger from another bot.
To setup custom slackbot responses you'd go to Customize Slack, then select the tab option for the Slackbot. From here, if the word in the left column is seen in a channel, slackbot will respond with the text on the right. It can't grab any info like the channel name or user name, just respond with text. This is useful for reminders like the wifi password or some brief custom help message.
Todo-bot now has webhooks. I haven't used it myself, but I've linked to the introduction page below. You can't do this entirely from within slack; An outside piece of software or server would need to be setup to monitor slack for triggers and create custom prefabricated todo's.
https://help.todobot.io/hc/en-us/articles/115010096748-Incoming-Webhooks