Intent clashes with the Google Adapter - dialogflow-es

Any questions that are general seems to quit the actions and provides a result from the Google Assistant itself. The sample utterances are given below:
Check my calendar / Check my emails / What is covid
Have anyone faced this issue before and have a potential solution?

This is likely because you are handling those questions using a Fallback Intent. A recent change with how Actions on Google works means that the Assistant will close your Action and handle the user statement itself under these conditions:
You are handling it through a Fallback Intent in Dialogflow or through a No Match Intent in Action Builder and
The phrase is one that the Assistant can handle itself
You don't get any indication that it is doing so.
To work around this problem, you should use an Intent that matches a phrase with the the #sys.any type in Dialogflow or an intent that accepts "free form text" using Action Builder.

Related

DialogFlow "preview intent" without causing fulfilment

Is there a way to preview the intent response with confidence score without actually triggering parameters to be filled, possible fulfilment web hooks to be called, etc.
I know Amazon Lex has a "preview intent" call that lets you preview what the response might be before actually doing the official call for a response/fulfillment.
I'm trying to be able to filter the the responses from multiple bots and choose the one with the highest confidence score and I don't want to trigger fulfilment for any bot that isn't going to be used in the dialog.
Dialogflow as of today, does not provide an option to predict the response of an intent before it is being triggered.
Dialogflow ES has Intent matching, and you might be able to do something like the next-best-intents solution, if that helps.

How can I manage suicidal intents using actions-on-google npm package

My setup:
I'm using actions-on-google to create a custom action for google assistant, every intent is a fallback in dialogflow that is then redirected to my server where I check the intent with a custom nlp engine and then respond to it, using the actions-on-google package.
The issue:
But when an intent is suicidal, for example: "I want to kill myself", google stop the action and give a response instead of letting my custom action handle it. Is there a way to avoid this?, it also happens with certain words like "Save" in that case google stop the action and ask me if I want to save an event or whatnot.
Can I override this behavior?
You're running into a "feature" that Google calls "no-match yielding". In some cases, if you're using a Fallback Intent in Dialogflow, and the Google Assistant itself can handle the question - it will do so.
To avoid this you can use regular Intents that match the #sys.any System Entity.
However, if all you're doing for everything is sending it to your NLU, then you don't need to be using Dialogflow at all. You can just use the Actions on Google v2 to send all TEXT Intents to your NLU for processing.

Dialogflow: following up on quick reply directly to webhook

I am building a simple quiz bot with Dialogflow.
When I detect a "start of quiz", I am able to send a Quick Reply with 3 proposals, thanks to the fulfilment on the Question intent.
However, when the user clicks on one of the proposed answers, I need to have that response back to my backend so I can check the result and finally give a score, for example.
Basically, the "response-check" intent should be automatic right after the quick reply and Dialogflow should not try to understand that response.
Is there any way to easily achieve this?
Using "events" you can directly trigger an intent. Or if you are only using Dialogflow console for training, better to have an output context say "check-answer" as an input context to your answer checking intent and use the same "check-answer" as output context to all your questions intent.

The words "not working" always trigger the default intent in Google Assistant

I have been working with Google Dialogflow to create a Google Assistant experience.
My GA Action is to Raise Support tickets and those tickets are raised in our system via API.
We ask the user to describe the Issue they are facing, We have used a fallback Intent to capture the Issue/Ticket Description(Since the reply can be any free text, is this the best way to capture free text?).
Once the user gives a description, A webhook is called and the results are sent to our backend to capture.
We have noticed that when the user uses the words "not working" as a part of the issue description, it always calls the welcome intent, instead of going to the follow up Intent. If the user describes the Issue without using those words, it works fine. Below are 2 different responses.
I personally feel that this is a bug in GA, is there any way to solve it?
I think you're doing some things wrong. I don't have enough information to understand 100% what you are doing, but I will try to give you some general advice:
A fallback intent is used to 'fall back' to this intent when a user asks something that is nowhere provided in one of your other intents. That's why your fallback intent has the 'input.unknown' set as action. It will be triggered when the user gives some input that is unknown for your application. F.e. I don't think your '(Pazo) Support Action' will provide an answer if the user asks to book a plane to Iceland, so that's when your fallback intent comes in to give an answer such as 'Sorry, I can't answer that question. Pazo is here to give you support in... What can I do for you?'
Your user can either register a complaint or raise a support ticket if I'm getting this right? I recommend you to make two seperate intents. One to handle the complaints and one to handle the support tickets.
Before developing advanced actions with a seperate webhook and a lot of logic with calling an API etc., I recommend to go through the documentation of Actions on Google:
https://developers.google.com/actions/extending-the-assistant

How to ensure my Google Home Assistant application is not rejected?

During our testing, we were unable to complete at least one of the behaviors or actions advertised by your app. Please make sure that a user can complete all core conversational flows listed in your registration information or recommended by your app.
Thank you for submitting your assistant app for review!
During testing, your app was unable to complete a function detailed in the app’s description. The reviewer interacted with the app by saying: “how many iphones were sold in the UK?” and app replied “I didn't get that. Can you try with other question?" and left conversation.
How can I resolve the above point to approve my Google Assistant action skills?
Without seeing the code in question or the intent you think should be handling this in Dialogflow, it is pretty difficult - but we can generalize.
It sounds like you have two issues:
Your fallback intent that generated the "I didn't get that" message is closing the conversation. This means that either the "close conversation" checkbox is checked in Dialogflow, you're using the app.tell() method when you should be using app.ask() instead, or the JSON you're sending back has close conversation set to true.
You don't have an intent to handle the question about how many iPhones were sold in the UK. This could be because you just don't list anything like that as a sample phrase, or the two parameters (the one for object type and the one for location) aren't using entity types that would match.
It means that somewhere, either in your app description or in a Dialogflow intent(they have full access to see what's in your intents) you hinted that “how many iphones were sold in the UK?” would be a valid question. Try changing the description/intents to properly match the restrictions of your app.

Resources