How to send multiple response from Dialog flow using different type of rich responses - bots

Is there any way to create a Dialogflow response like this?. After providing all those required values user will hit Confirm. Then the intent will get triggered. I'm planning to integrate my bot into Facebook, Telegram, and WhatsApp

Related

Is it possible to have DialogFlow read your emails and create responses?

I've been playing around with DialogFlow but I don't see any way for it to receive my support emails. Am I missing something or is that not allowed?
How do I get DialogFlow to receive my emails?
Dialogflow is not designed for this particular usecase. It is designed for creating chat agents, so you get out of the box integration with messenger, slack etc.
However you can programmatically send emails to Dialogflow using SDK and receive the responses.

Is there a way to push notification via a chatbot deployed in facebook developed with dialogflow w/ node.js for fulfillment

I'm developing a facebook/workplace chatbot using dialogflow with node.js for fulfillment. Can't seem to find resources for pushing notifications.
I want to be able to trigger sending the message by visiting the webhook url.
You need to use the Facebook Graph APIs to send a facebook notification to a specific user. User can click on the notification to launch the facebook messenger chatbot.
Here is a quick example.
https://graph.facebook.com/v3.0/{user_id}/notifications?template={your_message}&href={link}&access_token={page_access_token}
You can read more about it here: https://developers.facebook.com/docs/graph-api/reference/user/notifications/
Basically, you need to run a web service which when called makes the calls to the facebook notification APIs.
All you need to do is pass the user id, the message/link to be displayed in the notification and the page access token.
When someone first sends you a message via Facebook, Facebook provides you the page-specific user id which you can store in the database.
Page access token can be accessed by going to https://developers.facebook.com/apps

Intercept fulfillment response

Im using fulfillment to get data from database. And I have integrated my bot with facebook.
And currently I'm customizing db response as per facebook in my api itself and sending it to the dialogflow.
And I want to integrate it with skype too.
Now my question is, can I customise my api response in dialogflow instead of in API. As I want to integrate my bot with multiple platforms so accordingly their response will be formatted as per facebook or skype.
So i will need to create another api for skype too. I want to avoid this.
So I want to get output from my api and format it in dialogflow itself using custom payload. So is it possible to work in this way?
Sure! You get the stored data using your API and then you format the response for the platforms you are going to use. In this example, the payload contains different responses for Google Assistant, Facebook and Slack.
Also, take a look at this NodeJS library which makes easier develop your fulfillment code.

Is it possible to connect Dialogflow (Api.ai) with Slack so that humans can monitor and possibly even intervene or add to the conversation via Slack?

I know Dialogflow (Api.ai) can be a bot in Slack. But what about monitoring the conversation and possibly manually intervene in the conversation? If possible, what would be the general direction to implement this?
So Slack has Open APIs for interacting with the Slack App. Here
Since you want to monitor the conversations so Events APIs and Conversations APIs would help you to notify as well as capture the conversations.
conversations.history will help you to fetch the messages within public or private channels.
Since you want to intervene in the conversation then I suggest using chatbot, which will provide a suitable way to intervene and respond to some particular events. Bot Users
Dialogflow has an sample on how to do this: https://github.com/dialogflow/agent-human-handoff-nodejs
You'll have to build you own front end for the human to override the response and call the Dialogflow query API to integrate:
Slack <--> Front end w/human override <--> Dialogflow's query API <--> Dialogflow Agent
Yes, it's possible. Just login to DialogFlow with your Google credentials, then on the left sidebar you can see the Integrations Tab. Click on it. You will find a bunch of different integrations for line, telegram, Twilio, kik, Viber, Skype and a lot more.
Click on Slack. It will ask you for some details for connecting with endpoints such as client ID, token, client secret. You can get it from the Slack API. You can also check the Slack API integration link here. After everything is properly set up, click the "Test in Slack" button in the DialogFlow Slack integration.

Making Api.ai parameters required based on source.

I am new to dialogflow. I have the following requirement.
If user pings from api.i webview , a parameter should be made required.
If user pings from facebook messenger, a parameter should not be made required.
To achieve this, you can mark the value as required in your intent, then tell Dialogflow to use your webhook for slot-filling.
When the intent is matched, your webhook will receive a request that, if from the Facebook integration, will contain the originalRequest from Facebook.
If you detect the Facebook integration, you can respond to Dialogflow from your webhook including a value for the parameter, and Dialogflow will not prompt for it. If you do not detect Facebook, respond without the value and Dialogflow will prompt the user for it.

Resources