With Amazon Alexa it is possible to invoke an intent from a skill in 2 ways:
"Alexa start [skill name]."
And then proceed to ask that skill for a specific intent.
"Alexa tell [skill name] to [specific intent]."
With Google Assistant I only know of calling an action by:
"Okay Google talk to [action name]."
And then proceed to ask that action for a specific intent.
Is there an equivalent invocation to call specific intents from actions directly with the Google Assistant?
Yes, you can do "Hey google, ask [action name] to [invocation phrase]" as part of an explicit invocation. The documentation sometimes calls this a "deep link".
If you are using the Actions SDK, the Intent that matches the invocation phrase will be triggered.
If you are using Dialogflow, then you need to create an Intent that will match the invocation phrase and set it to be an additional welcome intent in the Invocations tab for the Action.
Related
Is it possible to mix a Smarthome action and a conversational action so that user have only to peform one account linking operation?
A smart home action must be a separate project from your conversational action. This means you will need to have each separately link their accounts. Although you can link them to a single backend, they will need to be implemented orthogonally.
We are developing interactive audiobooks for voice and have problems with some of our continuations with google assistant.
Example: In our story "Das tapfere Schneiderlein", the user hast to decide if he wants "Pflaumenmus" (plum butter) or "Apfelmus" (apple puree).
In the Test-console, everything works fine, both answers lead to the correct audio.
BUT with Google Assistant on Mobile device, only Pflaumenmus works. If I answer "Apfelmus", the action leaves conversations and opens Apple puree recipes with Google search. (see example image below, it's German, but still understandable I guess)
As we can never now, what our customers might answer, how can we prevent this from happening? (We are using Actions Builder.)
Example
This might be a result of an update regarding the Google Assistant Actions fallback intent behavior change that we announced on October 15/2020.
Follow the message from Google to make it work as you expect:
In order to provide a better experience, we now allow users to ask for some Assistant features, such as the weather or time, from within your Action. To perform this function, the Assistant detects if your Action matched a user's query with a fallback intent or NO_MATCH intent. If that is the case, and an appropriate response is available, Assistant responds to the user's request. If no response is available, or Assistant doesn't understand the query, the conversation continues within your Action.
As of October 15, 2020, this new behavior applies only if the fallback does not use a webhook. Starting January 15th 2021, we'll start enabling this feature for any Dialogflow fallback intent or Actions Builder NO_MATCH intent whether or not they use a webhook.
This change should not impact the operation of your Actions, unless you are using fallbacks as a way to collect input from your users. Going forward, you should only use fallback intents or NO_MATCH intents as a way to reprompt the user in the context of your Action. If you want your Actions to attempt to capture data from a wider range of user responses, create an intent that uses a Free form text type if you use Actions Builder. If you use Dialogflow, add an intent with a #sys.any type as the training phrase.
I'm not sure if this is due to the Dialogflow testing environment, or if there is something else I am missing.
I have app ABC that has a default welcome message "hi" and also some intents for specific responses. I would like the user to be able to invoke a response by saying "Hey Google, ask ABC what is it's favorite color?" and have the intent passed to ABC. However, instead of answering the "what is your favorite color?" ABC responds with the default "hi".
Can I fix this or does the app have to first pass through the welcome message?
In the integrations section of Dialogflow check your integration settings for your Google Assistant action. There is a section there to add implicit invocations where you can select other intents that should be able to launch your app. Select the intents you want and then these should work
I am unable to invoke a intent say, "ABCwelcomeintent" which has event trigger of "GOOGLE ASSISTANT WELCOME". This intent has been mapped to explicit invocation in Google integration settings and synced with actions list.
The training phrases include ABC and talk to ABC (both). I am able to invoke by just saying talk to ABC to Google Assistant.
Can we invoke the app by just saying,
ABC
only and not
talk to ABC
I want to invoke bot without trigger "talk to" and just only ABC. Such way is not mentioned according to the official documentation. Please update the official documentation if there is a way.
The reason for this is my current live bot is unhealthy according to health check probe bot by Google which tries to invoke the bot by just querying "ABC". So I also need to do the same way. And this Health check probe bot will take down my live bot from Production to obsolete.
You may use implicit invocation to make Google Assistant suggest user to use your Assistant App. Otherwise, for explicit invocation, you will need to say "Ok Google! Talk to", "Hey Google! Speak to", "Ok Google! ask" to start the conversation with your assistant app.
It sounds like you have two different issues here.
Health Check
The health check is done through an automated process that sends a payload identical to what it would send if a user triggered it, with a flag indicating it is the health ping. No user actually says anything.
If the health check is failing, then it means that your service isn't responding in some fashion. Check your logs and Dialogflow's logs to indicate what might be happening - is your webhook responding? Are you sending back invalid data? Is Dialogflow misconfigured? There may be many reasons for this. In order to figure out which, we would need to see a lot more information to help you - details of the error Google is reporting from the health check, your Dialogflow logs, the results of your own testing in the simulator, etc.
Name Triggering
Triggering based on just the command "ABC" is a separate issue - there are many ways that your action could be invoked.
All Actions will start with "Hey Google, talk to " or "Hey Google, ask ".
If you have identified specific built-in Intents that your Action can handle, you may also have registered these.
Additionally, Google will identify Implicit Triggers that it may suggest to users that might trigger your Action. You have little control over this, but this is somewhat like SEO - if your Action does this, then Google may suggest it.
Finally, users can setup a Routine or Shortcut which triggers your Action when they say "Hey Google, something".
I'm building an action for Google Assistant using DialogFlow.
And for this action, I want an intent say "Call X" with which the user can call "X".
Here "X" is not a contact in the user's device but a contact defined within my intent's response.
Is there any option with which I can achieve any of the following for my action?
Make a Call to X, or atleast
Open up the dialer with the defined number from my action
Please guide me on this.
What you can do is Use a Helper Intent Through which you will get the permission from the Phone to make calls and then perform the Action using fullfillment logic.