Trigger a dialogflow intent using an event from external nodejs server - dialogflow-es

There is a scenario with google action and dialogflow if there is no intent match i want to start conversation between the google action user and customer support person.
For example, consider web browser chat application. In the browser we can create event listeners and from our nodejs web server we can send the messages by emitting an event. We can do this to and fro from client and server. I want to implement something similar to this.
Is this possible with google action and dialogflow?

Related

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

Maintaining a chat between user and agent using Google Actions

I am creating an app using Dialogflow and Actions on Google Node.js library.
The logic I am trying to implement is as follows:
User says: Initiate chat.
That user request triggers my webhook which then supplies the agent response.
User replies back to the agent - this is the tricky part because the user reply can be anything, thus the wrong Intent or the Fallback Intent can be triggered.
Is there a way to allow for the unpredictability of a user's response and to keep conversation going between user and agent? In another words, always trigger the same Intent (Chat Intent) regardless of what the user says?
In Dialogflow, you can configure the Default Fallback Intent to connect to web fulfillment. In your fulfillment, you can then route the user's query to your webhook and process a response however you'd want.

Chatbase integration with Dialogflow chatbot which is integrated in an app through a third party API

I have a Dialogflow agent which is integrated in an app and a web version. I want to integrate this chatbot with Chatbase to get analysis metrics of the bot. However, as of chatbase documentation we cannot integrate Dialogflow hosted bots with Chatbase but if I have a server in the middle of my app and chatbot which is saving all the data, can I integrate chatbase with it?
The typical way to integrate Chatbase is to have it called as part of fulfillment. This requires you to set each Intent to use fulfillment, but you can still set the reply as part of the Intent, if you wish. In your webhook, you would call Chatbase to record the event, but not return any response in the webhook, and Dialogflow will use the Response set in the UI.
Chatbase reports are built upon user messages and intents, however there is value in sending us the bot messages to provide context to the Transcripts feature. You can create a server to server integration to send us the JSON payloads in real time, or in batches of up to 100.

Asynchronous messaging in api.ai

I require to send messages asynchronously from my service to api.ai and then api.ai would send it to Facebook Messenger.
To achieve asynchronous messaging I have used custom events.
But on using custom events, events are getting triggered from webhook, and messages are going to api.ai but it is not further displaying anything to facebook messenger
Probably you want to add a delay before api.ai replies to user input, right? Than you need to add a delay in your Facebook integration app.
Consider the follow flow
User type a message in Facebook messenger window
Facebook sends the message to your integration app
Integration app sends the message to api.ai
Api.ai responds to the message and send the reply to the integration app
Integration app wait for a while and than sends the reply to Facebook
Regards

Communicating with the web server using Google Home

I have a social networking website developed in php which is hosted on the server. Here people can talk to each other through messages.
I want to send and receive the messages, to the other users through google home. It is not like a chat bot. But here, the first user will send message from google home to the website and then the second user will send the message from the website to the first user who will receive it through google home.
Can this be achieved? Do I have to develop some kind of mobile App, so that user has to send the message to the mobile app and then the app sends the data to the server.
or do i have to use the webhook which is available in api.ai?
Any help will be appreciated.
You do not need a mobile app - it sounds like most (but not all) of what you're trying to do would be handled using API.AI's webhook Fulfillment.
However, you're also trying to do asynchronous operations (send a message or a notification to Home without the user prompting for it). This currently isn't possible - you can currently only send a message in response to the user taking some action.
One possible workaround for you is to allow the user to ask "how many messages are waiting for me" or something similar at any point. You can also play multiple messages in reply to a message they might send. However, you have limits (about 5 seconds) on how long you can wait to send a reply to a user instruction.
You can implement a chat bot e.g. via Dialogflow (former api.ai), however you can just react on inputs. You cannot push a message on Google Home (yet). So you could the bot read your mailbox but not implement a chat.

Resources