Template Mode in api.ai is not working with Google Assistant - dialogflow-es

I have on Dialogflow agent and I want to sync it with google assistant.
For user says section, I want to use Template mode. It works fine in api.ai, but when I click on option 'See how it works in Google Assistant', it throws error like 'Request contains an invalid argument.
Query pattern contains invalid characters in custom intent '999154f0-830a-480b-bdc9-2e9e89f45cdd': $SchemaOrg_Color:color $SchemaOrg_Text:query $quantifier:quantifier #sys.unit-currency:unit-currency $Filters:Filters'
After checking each and every annotations, I came to know that #sys.unit-currency:unit-currency is creating issue. Its working with api.ai agent but not with google assistant.
I've attached screenshot of intent. What's need to be corrected? I went through many blogs, but not able to find any help regarding this.

Related

How to find KnowledgebaseId in Dialogflow?

// const knowledgeBaseId = `the ID of your KnowledgeBase`;
I can't seem to find the knowledgebase ID in Dialogflow nor in the Cloud Console. Please help.
It's weird I my self couldn't find the KnowledgeBaseId even though I skimmed through dialogflow docs several times. But after several hours of searching I found a way that we could get it.
You should go to the the Knowledge base you created and right side there is chat window where you can test your chatbot response.
Type anything and you'll get a response card and below that there is an option called Diagnostic info.
Click it and you'll see the RAW API response and there you can see the KnowledgeBaseId inside it (it may be referred as source there). It should be in the format Format: projects/<Project ID>/knowledgeBases/<Knowledge Base ID>

Dialogflow query working in console but not when you use embedded url

I have made a query flow in dialogflow and it has four intent and in the last intent it uses a webhook to get data from server side and displays the result. It is trained automatically and works perfectly in dialogflow console returning response and query answer. The issue is it does not work when I use embedded url. It fails to recognize the name intent and asks (Can you repeat again or fallback intent). I've removed all intents and made query again, there is no similar name intents. Yet it works well in console and not in embedded url.
For the webhook part I've used node.js service.
Please help in this issue.
By 'embedded url' if you mean Dialogflow Web Demo (DWD), you should keep in mind that DWD can be used only for simple text messages. It does not support messages from webhook or even rich responses. However, if you steel need a web widget to embed your bot to your webpage you either create your own or you should use third party solutions (like Kommunicate). Here's the link regarding the limitations of DWD.

It's possible to create one-shoot app with Actions on Google?

I am completely new to the "Actions on Google" world, but following some tutorials (like this) i have already achieved good results.
My test
With Google Assistant and/or Google Home mini send my commands to a personal nodejs online server.
To do this:
i have created a new project on https://console.actions.google.com/
selected conversational option
selected create action / custom intent option
from Dialogflow i have personalized the Default Welcome Intent and created a new Intent with the Fulfillment option set to Enable webhook call for this intent
And obviously, from Dialogflow > Fulfillment, i have enabled the Webhook option (with the url of my nodejs app), and not the Inline editor.
This procedure works, when my app recognizes my custom intent, the answer is sent to my nodejs app online.
My problem
The procedure works, but i always have to do 2 steps before i can perform my action:
1) Hey Google, talk with "nameofmyapp"
2) Say the command
My goal
Execute my command directly without always having to do this 2 steps.
Absolutely! Google calls this "deep linking". With this, you'll be able to do something like
Hey Google, ask nameof myapp to command
See the documentation for details, but in short you'll
Make sure you have an Intent for the command in Dialogflow, with several possible phrases that can be used to trigger it.
These phrases should be what you'd say under "command" in the example above - you'd omit the "to" part.
Go to the Integrations section in Dialogflow, under the Google Assistant integration.
In the Implicit invocation section, select the Intent that you'd like to allow as a deep-linked Intent.
If the command takes action and then should quit, make sure either you have set this in Dialogflow or your fulfillment calls app.close();

Actions on Google: Request contains an invalid argument

I have a Google Assistant app already in production, which gives First Aid treatment procedures whenever someone is in need. I built this app with Dialogflow. It was running well for the past few months, but now whenever I call something after the app's first statement, it gives me this error:
Request contains an invalid argument.
The query pattern 'Where can I get `$SchemaOrg_Number:ordinal aid information?'
contains an undefined parameter` (name: 'ordinal' type: 'SchemaOrg_Number').
This error comes when I try to implement my app from Dialogflow to Google Assistant, and from the error message, it is not clear that exactly which part of the program is faulty. I have no idea where to go from here and I'd love your help. Thanks a tonne!
Here's my Dialogflow Screen
Here's the AoG Simulator Screen where the error happened
This error must have occurred due to the incorrect phrases in the Actions of your app. To check this go to Actions tab from the AOG console. Check every intent for any error. Also, check that the parameter used in the query must be defined below the phrases.
Actions menu screenshot
Parameters screenshot

Google actions not showing cards in test

I've created a simple helper in api.ai to tell and added a few intents with responses that link to google actions. When I link my agent to a google project and test it with those intents i get the following errors:
expected_inputs[0].input_prompt.rich_initial_prompt: the first element must be a 'simple_response' or a 'structured_response'.
and
expected_inputs[0].input_prompt.rich_initial_prompt.items[0].basic_card.image: 'accessibility_text' is required.
these are both classified as Malformed Response Errors, but I don't really understand seeing as I didn't write any code, simply just used used the UI for api.ai and google projects
Any ideas?
The problem is that the Actions on Google responses still require a text response to be displayed and/or spoken in addition to the card responses. So in the Actions on Google section of the response, you must either set "Use response from the DEFAULT tab as the first response" on:
or you must add a Simple Response:
When you enter a Basic Card, if you enter an Image URL, you must also enter the Image Accessibility Text:

Resources