How to access Google Assistant commands (IFTTT vs DialogFlow)? - dialogflow-es

If I have a command for my google assistant to open windows in my house. To complete this request i have a web-hook which is implemented. eg. mywebsite.com/api/open-window
--
Approach 1
When i use the command Open all windows
The google assistant connects to IFTTT which has an applet setup for this.
That applet now connects to my web-hook
--
Approach 2
If i have a DialogFlow assistant called Dr. Autobot
When i use the command Ask Dr. Autobot to Open all windows
The google assistant connects to my DialogFlow which has intents and actions setup
That fulfilment now connects to my web-hook.
--
How do I implement the Approach 1 without using IFTTT?

You can use the smart home platform to make direct calls to your Action based on device types that your Action provides to the user.

Related

Google Assistant - existing dialogflow intents & new actions cooperation

I have a technical question about the Google Assistant - unfortunately, I couldn't find a clear answer anywhere.
At the moment our company have:
the conversational chatbot built on Dialogflow, which is constantly developed by our employees
Google Actions agent. Our developers managed to construct the connection of the Google account and our client's account on our platform using OAuth 2.0 and created the first actions that, by the exchange of tokens, allow the return of certain information from our platform to the Google Assistant and vice versa - providing certain information in the Google Assistant that are sent and saved in the customer's account on our platform.
We would like both actions on actions.google.com (2) and conversations on Dialogflow (1) to cooperate with each other in the Google Assistant. One team is working on the chatbot, and the other on advanced actions, and we would like it to stay that way.
My question is - is the absolute only way to finally publish it on the google assistant is to migrate the chatbot from Dialogflow to Actions Builder and stop using Dialogflow?
Or maybe there is a simpler solution where both these environments (of course woring on one profile / agent) cooperate with each other and it will be possible to continue working on dialogflow?
We understand the advantages of Action Builder, but Dialogflow is just good enough for our needs.
There are a few angles to how you can approach this, depending on your exact needs and limitations you may accept, but the general answer is "yes, you can do both at the same time".
First, Dialogflow ES continues to support the Actions on Google Integration. Just as your Dialogflow agent integrates with other platforms, it should still be able to integrate with Actions.
There are some caveats (and some upsides!) with this, however:
You'll be using the Actions on Google v2 platform, rather than the v3 that comes with the Action Builder (and newer SDK). If the features you need are supported on v2, then you're fine. (Account Linking is supported in v2.) But if you need some of the features in v3, then you will run into problems.
You can't have used the Action Builder on the same Cloud project, and you should start the integration from the Dialogflow side. (But once you do - you'll be able to use the Actions Console to do things such as submit it for review, etc.)
Make sure you do not "upgrade" from Dialogflow to Actions Builder. This severs the two, so you won't be able to update the Action from Dialogflow.
Another approach is that you can use Action Builder, but have it forward all (or nearly all) of the requests to Dialogflow. Under this scheme, you would have an Action Builder project that has as little as one Scene with an Intent that captures all input, sends that to a webhook you control, which sends it to your Dialogflow agent via the Dialogflow API, gets the response from your Dialogflow agent, and forwards that response through Action Builder.
This is a little more complicated, but may offer some benefits if you want to take advantage of more advanced Action concepts that may not be available using v2.

dialogflow, google action and webdemo

Can you like with the Test Simulator have an embedded Google Action or use a Live chat style bot on a website with Google Actions responses? Are there any code labs or third party platforms that do this?
Yes, some of the 3rd party chat windows I know of:
- Smooch
- Kommunicate
You will have to use the Payload response to send specific components (such as cards, quick replies or images)
There's also this Github repository which allows you to set Google Actions replies and it will display it in chat:
https://github.com/mishushakov/dialogflow-web-v2
Or you can write your own in React or Vue.
Actions on Google is the platform for Google Assistant developers and have own library and components. You can use these features and components only on Google Assistant projects, since every platform has different features and capability. If you need to create a chatbot with these kind of features, you should check platform's docs eg. Facebook, Telegram...
If you want to create a chatbot which has some rich responses, Dialogflow has own attributes such as Card, Suggestion. So, you can build your agent and integrate Dialogflow (not Google Action).
You can check here for platform and Dialogflow's response and payload ability.

When a google action is launched implicitly can we skip the part where it prompts the user to confirm?

I am trying to use google assistant sdk on raspberry pi.
I created my custom actions project in google actions console.
I am able to interact from my device using run_assistant_audio by using a phrase like "Talk to my raspberry pi"
I have 2 questions for which I could not find any answers in the documentation.
1) Once I launch my agent via explicit invocation then queries like "What is the weather in Agra" are not working. If I don't launch my agent and just run this query it gives the weather information." Is there a way to keep my agent active all the time and redirect to google assistant for queries which my agent does not handle ?
2) If I try to implicitly launch application google assistant asks for confirmation whether I want to launch my agent. Can this confirmation part be skipped ?
In your current workflow, you cannot use Assistant as a fallback. The model of development is Actions being part of Assistant, not the other way around.
You could use the Assistant SDK on your fulfillment, getting run for fallback, but not using the Assistant on the device.
Additionally, an action is not expected to always be active. As such, your expected behavior is not something that is intended.
If you're doing implicit triggering, then your query is somewhat ambiguous. While Assistant may have a good guess as to start the action, it's possible you didn't want that. The disambiguation prompt is intentional to ensure that it doesn't open up an action you didn't want.

Linking DialogFlow to a Desktop Application

i just started on a project in DialogFlow and i was wondering is it possible to link my dialogflow to a specific desktop application? And if possible, what is the solution?
For example:
By saying "launch app", it will open up the desktop application "app"
While this is certainly something that Dialogflow's APIs can help with - this isn't a feature provided by Dialogflow itself. Dialogflow's NLP runs in the cloud - there is nothing local that it can "do".
However, you can create a launcher app that does this sort of thing by opening the microphone and sending either the stream or a speech-to-text version to Dialogflow through the Detect Intent API. Dialogflow can determine an Intent that would handle this and pass that information back to your launcher, and your launcher can then locate the app and start it.
I'm not sure how practical this would be, however. Microsoft already has this feature built-in with Cortana, and Google is building the Assistant into ChromeOS which will do this as well. While I'm not aware of Apple doing this, I may just have missed an announcement that Siri does this as well. And if there isn't someone who is doing this for Linux using some local speech-to-text libraries, it sounds like the perfect opportunity to do so.
You may try and use different Dialogflow clients available on their GitHub page. Java Client 2 may be helpful to start your work. However, you will be required to write your own UI code and have to consume Dialogflow API.

Launching app from Google assistant via Dialogflow

I'm using Dialogflow to interact with my users (they can ask questions, ask to receive reports etc...) and I would like to launch an Android application when they invoke one the intents I created, is there a way to that?
Short answer: Not really.
Longer answer: While you can't have one of your Actions trigger any Android Intent directly, you do have a few options to strongly suggest to a user that they do so. For example:
You can use something like Firebase Cloud Messaging (FCM) to trigger a notification/event.
If you're relying on the screen of the Android device, you can send a card that includes a URL, and that URL can deep link into your application if you've configured it.

Resources