Explicit Invocation that bypasses welcome message - actions-on-google

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

Related

Google Actions rejected in review due to "Mic is open" issue

I'm having trouble submitting my Google Actions skill (this skill is Dialogflow based).
This is the message after submitting my skill.
Your Action leaves the mic open for a user command without a prompt, such as a greeting or an implicit or explicit question.
Note: Thank you for submitting your Assistant Action for review.
However, your Action has been rejected for the following:
1. Your Action violates our User Experience policy. Specifically, your Action listens for a user command by leaving the mic open without a prompt such as a greeting or an implicit or explicit question.
After the Action responds to "メニュー画面”, the mic remains open without a prompt back to the user.
For example,
User:メニュー画面
Action: *Mic is open* At this point, either prompt the user with further options or close the Action.
After reading the feedback, I understand that the phrase メニュー画面 causes the microphone issue.
I've tried to enter this phrase メニュー画面 in my Google Assistant application on iOS and my phone just opens the Setting menu without giving a defined response as I configured in Dialogflow intent.
I've tried to enter this phrase on Google actions web console in Phone mode and nothing happen and the request is empty
Empty response on Google actions
My expectation after entering this phrase: Google actions won't detect any intent that matches this phrase and the DefaultFallback intent will be triggered and Google will reply with some defined responses.
What can I do to resolve this issue? Thank you.
A cursory translation of "メニュー画面" seems to be "Menu screen".
When you're using Dialogflow, the "Default Fallback Intent" will catch any user utterance that does not match another intent. You should make sure this fallback tries to rescue the conversation by reprompting them or ending the conversation.
This means that in practice asking them a question or closing it.
Because once the Action is given this prompt, the surface will open the microphone and listen for the next user utterance. However, if the response is not a question, the user may not know to say something.
Reprompting the user can be a matter of good design or just as simple as adding something like "What do you want to do?" at the end of each response.
Alternatively, you can just mark the conversation as over. This will not reopen the microphone after its response.

Google Action leaves the mic open for a user command without a prompt

I have created Google Assistant Conversation Action that sends user questions via webhook to IBM Watson. When I sent it for review, Google denied it for the following reason:
Your Action leaves the mic open for a user command without a prompt, such as a greeting or an implicit or explicit question.
Example of a user conversation:
.
Google Action review team says the following:
I am happy to hear that 🙂 (mic opens) - At this point, either prompt the user with further options or close the Action.
Do I need to send explicit or implicit questions every time, or would it be OK if I just sent a response with suggestions (quick replies) that can guide the user without asking them for something?
For example:
Action: I am happy to hear that 🙂 (mic opens)
Suggestions: "Tell me about your company"
Example of response with suggestion:
Consider a Google Home, a speaker where you cannot show suggestions. When your Action responds with "I'm glad to hear that." there is no further indication that it is listening or expecting a response. To the person using it, they don't know to say anything, and no reason to believe that the microphone is open.
In order to provide a better conversational experience, you should append a question to the end of each response. It can be something simple, like "What else do you want to talk about?" or you can make it more dynamic depending on the context.
Either way, you will need to provide auditory and visual clues that your Action wants to continue the conversation.

What is the access for a display name I'm given when invoking an action?

When creating my action I'm asked to use a display name for the invoking of the action on the assistant:
Display name is publicly displayed in the Actions directory. Users say or type the display name to begin interacting with your Actions. For example, if the display name is Dr. Music, users can say "Hey Google, Talk to Dr. Music", or type "Talk to Dr. Music" to invoke the Actions.
What I'm a little confused about is in order for the user to invoke my action do they have to say "Talk to xxx"? Or are they allowed to say what's is used for the 'display name'? I see some actions use a name or command and others use the "Talk to".
An example is if my display name is "food store" as an registered app or company can I have the user say "order 20 carrots from food store" or does it have to be "Talk to food store"?
All Actions will be able to be invoked using "Talk to display name". This is like going to the URL of a website directly. This is known as explicit invocation.
You can also make your Action explicitly invokable with additional parameters, so you can say something like "Ask display name to order 20 carrots". These are invocation phrases. This is like going to the URL of a website, but being able to directly type in a path on the site.
In some cases, if a user asks the Assistant a question, or asks it to do something, the Assistant may identify an Action that can do that. This is something like doing a Google search on a question, and Google either providing a link to a website or providing a portion of the site in the sidebar of the answers. This is known as implicit invocation, and while it may work, it is not guaranteed that it works for any specific invocation. In general, your action can suggest phrases that will work, and the more specific those phrases are, the better chance they have of being accepted.
You may also register your Action to handle specific built-in intents. These are phrases that have already been crafted to meet user requests, and that the Assistant will know to pass off to you, since you can handle the request. You can think of them as being similar to smart home requests for other activities. There are a limited number of these intents, but if you have an action that fits the category, it makes sense to support it.

Unable to invoke DialogFlow agent via explicit invocation

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".

Dialog Flow - Integration issues with Google Assistant

We are working on project using Google Home.
Details:
We have built certain intents in Dialog Flow. It has certain follow-up questions to get the parameter values, as a multi-turn dialogue. When testing using Dialog Flow, test console, I am asking
Can you help in booking a table: It prompts back with right question (Where do you want to book a table) as configured in Dialog Flow
Where do you want to book a table : I answer - "Some Restaurant". It prompts back with right question (When do you want to book a table) as configured in Dialog Flow
When do you want to book a table: I answer: "Today" . It prompts back with right question (For how many guests) as configured in Dialog Flow.
For how many guests? - I answer: "4 people." It ends the conversation, as configured in Dialog Flow.
The above conversation works perfectly fine as expected.
When I test using the integration for Google Home (using simulator with action SDK) [See how it works in Google Assistant]
Invoke the app (by using the explicit invocation - Talk to [APP NAME]) - App gets invoked with the right greeting message as configured
After that when I ask the questions as mentioned - above - app leaves the conversation? Nothing is answered back.
Not sure why this issue is happening - anything I am missing in the configuration?
Walk through your intents and make sure the 'set this intent to end conversation' is not set to enabled in Dialogflow (and if you're using a webhook not ending there). Look down at the Responses section in DF.
Start with Welcome Default intent, and then check each intent, all follow-up prompts.
For personal gmail accounts, the Web&App activity, when turned on, it automatically gets enabled.
For gsuite accounts, even when the Web&App activity turned on, it needs to be enabled by the admin of that organization. Only after when it is enabled, the simulator will behave as expected.
I think Actions straight up doesn't work for some (all?) Gsuite accounts, regardless of what permissions you set. Google knows but doesn't care. I spent weeks in an Actions support conversation on this topic and they ultimately punted me to the Gsuite team, who couldn't help. See also:
Sorry, this action is not available in simulation
Actions on Google won't respond to explicit invocations