I have a dialogflow requirement to present user a payment link, on the click of which I must hang on 20 seconds (show some busy image or something) and then call on the next Intent.
So far I have been able to present a link using LinkOutSuggestion/BasicCard button. But I do not have idea that how I can make my program proceed further. I know there is a approach to have user input something like "Check Payment", but can we skip this altogether and just pass on to next intent post click of that LinkOutSuggestion or BasicCard Button?
The only way you could skip the part of the user having to input something in the chat is by using a Suggestion. These suggestions cannot be added to a card or open a link, but they do continue the conversation with the text that is used, so you could add a suggestion saying Check Payment.
The linkout suggestion or buttons on card do not support a click event or the possibility to continue the conversation.
Related
I am using contexts within Dialogflow to call the next intent for the user. What I would like to do is have the ability for someone to change their mind on an answer they just entered. For example, as seen in the image below, if I enter a name then it would ask for an email. However, the user should be able to say "can I change my name" and go back to the context where Dialogflow is asking for a name.
I already have that intent implemented but I am trying to figure out how to go back to the question they were going to answer before deciding to change their name. I can use fulfillment to capture the raw API response and possibly get the last context however how can I force the user after changing their name to go back their previous context/intent?
You can do this easily by using the fulfillment. You have to save the previous intent contexts and prompt as well as the next intent contexts and prompt in the parameters of the intent.
I added suggestion chips to the Dialogflow Chatbot, but I want them to continue with an existing flow based on the button selected. How can I achieve that?
For example: How else can I help you?
Locate store Choose an item About Us
I would like the user to go these flows which already exist.
How can I achieve that?
You would make each of these choices a new Intent, and take action based on that Intent being triggered. Intents represent a specific activity by the user - typically something said or entered, or a selection chip being selected. Suggestion chips are handled just like the person entered what was on the chip.
However, keep in mind that these are just suggestions. Users can enter whatever they want. You need to be prepared for them to take the conversation in a different direction or skip ahead in the conversation. For example, in response to your prompt above, they may try to send feedback, or they may enter something like "find a store near me" and ignore the suggestion chip. You need to account for this when designing your conversations and Intents.
I'm currently working on Microsoft Botframework Node.js SDK.
I was wondering if there was a way to hard code a user response for a prompt through the code?
The scenario is to add/ remove people to the meeting. The dialog contains 2 waterfall functions. The first is used to handle card actions, and display the default prompt to enter a username to search for. The second function searches for the username and displays the results in a carousel. Selecting a user from the card adds the person to the meeting (handled in first waterfall function).
Once a user is added to the meeting, the first waterfall function displays the currently added people in the meeting with the option to remove, followed by the default prompt to search users. Since it expects a prompt response, the "remove" actions causes a break and the bot's response is: "I didn't understand. Please try again.".
So is it possible to hard code a null user response through the code when the "remove" action is triggered? Or is there any other way to bypass a prompt without any input from the user's end?
In my agent on DialogFlow, I created a new intent for linear dialog.
I want to get some user's data when the user clicks on the 'get started' button of facebook messenger.
I added the 'WELCOME' event in my intent. :
My issue is : When user clicks on 'get started', my intent is not triggered but my fallback intent does. (i.e event has not been triggered)
I tried to add that training phrase : 'facebook_welcome' (i think it's a bad idea because an event does not require any user input)
Then, the intent is triggered but the agent does not ask for dialog parameters, it says directly the intent's response like if the slot filling would be done.
What do I misunderstand ? Is there any versioning issue (V1 vs V2) ?
Thanks !
MC
Add this new event and try to invoke the agent again. You need to scroll and search this event in the list.
Think I solved this. What I did was adding MessengerGetStarted to Training phrases on my intent. Looks like this is the query-text that Facebook will send to DialogFlow. The FACEBOOK_WELCOME did not work for me either, but this little "workaround" actually did.
I also disabled ML up in the right corner (the three dots) on my intent, just to be sure.
I'm creating a bot in DirectLine. I'm trying to use SuggestedActions to display a suggested action and I don't want to include the text attribute for that. When I try to run my code without the text attribute, I see a blank message being displayed. How can I avoid that?
My code
var msg = new builder.Message(session)
.suggestedActions(
builder.SuggestedActions.create(
session, [
builder.CardAction.imBack(session, "disconnect", "Disconnect"),
]
));
session.send(msg);
The Output i'm getting:
Per my understanding, you want a button which is shown absoluted at bottom and always display to remind your agent that he can disconnect conversation any time.
However, per me testing and understanding, in my opinion, there 2 points that it's maybe not a good idea to achieve this feature:
SuggestedAction is based on Messasge in Bot framework. And basically Bot application is for conversation. So every message between user and bot renderred in different channels should always be contained in a textbox, shown like in your capture. We cannot bypass this feature.
Per your requirements, I think you want this button should be always display unless the agent click it. But I didn't find any feature like this in Bot framework, and you may need to send this meesage additionally beside every message from bot, which is not graceful and will raise unpredictable risk.
My suggestion is that you can create a triggerAction to handle global disconnect requests. Refer https://learn.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-actions for more info.