Can I trigger a Google Assistant action without a conversation? - actions-on-google

I'm trying to develop an action for my Google Assistant. I'd like for it to be fire and forget type deal (i.e. 'Add x to my todo list').
The problem is, the assistant won't recognise the command without me first starting a conversation with the assistant app that the action exists within.
(Hey Google, I want to talk to ... )
I'm using webhooks to call a webserver that will handle the request.
I can't use IFTTT in this instance as it needs to be available for everyone in my home. (IFTTT actions are private or public to EVERYONE)
Is there any way to trigger an action without having to say anything else (besides 'Hey Google')?

There's a few ways to complete a quick action. There is implicit triggering, when your action gets matched based on a certain set of requests.
You: Hey Google, add paying taxes to my to-do list
Google: Ok, for that you may want to try talking to My App.
You: Okay
My App: Ok, added paying taxes
That may work, although still may require an extra step with the Google Assistant. Alternatively, you can also launch a specific intent in a conversation without a full conversation.
You: Hey Google, tell My App to add paying taxes to my to-do list
Google: Ok, getting My App
My App: Ok, added paying taxes
A third alternative would be to use the Google Assistant shortcuts feature which will take something you say and interpret that as something else. It only works for static utterances, so it may not work in your case.
You: Hey Google, add paying taxes to my to-do list
Google: Ok, getting My App
My App: Ok, added paying taxes
In this scenario, you'd need to have the shortcut "add paying taxes to my to-do list" to be interpreted as "tell My App to add paying taxes to my to-do list".
If this is designed to be used by several people in your home, you may need to think about how and whether each account should be able to access the same lists.

Related

Google Action certification taked too long

We are a smart home product development company and we have been working on voice assistants integration and Google action is actually part of our assistant integration. We developed and submitted our initial google action for the certification that will be shipped with our product to the customers. As per in the action console release page, they state the review may take 5-7 days and will be notified via an email once review is completed but it's been longer than said days now, we didn't hear back anything yet. We are unable to find any support email to google action for direct inquiry hence we don't have any clues what's the actual status with our google action. Is there any support email, we can directly reach out to google action support rep like in Alexa? The critical part is our marketing team has planned to release the product within next couple of weeks. So, we have to make sure the google action developed is on Live.
This is a dedicated page for actions that are stuck in review, but it also offers some other support options.
https://support.google.com/actions-console/contact/support

Action with different fulfilment URL based on user's location

I work for a company that is building a Google Action which will be available in AU, NZ & UK. Depending on the location of the user, the fulfilment URL needs to be different as each country has its own APIs, etc.
We could achieve this easily by deploying three separate apps, restricted to their particular country, each having their own fulfilment URL. However, if my understanding is correct, they would all have different invocation names which is not ideal.
Another way we could potentially achieve this is by making the user choose which market they want (AU, NZ, UK) on the account linking page and then use the APIs for that market. However it doesn't seem to be a great UX.
Ultimately the key goals we're trying to achieve are
Users in AU, NZ & UK can all invoke the Google Action by saying "Ok Google, Open App", rather than "Ok Google, Open App NZ", "Ok Google, Open App UK", etc.
Users don't have to choose market (AU, NZ, UK) they belong to - it happens automatically
We can use the correct API based on the market the user belongs to.
There is no way to have different fulfillment URLs for the same Action.
You also have a slight issue when getting their location - you need to request it explicitly from them. Once you have this, however, you can store it (with their permission) to use it again in future requests, so you only have to do it once.
You will need to check to make sure it is one of the locations you serve, and you may want to allow them to change it (what if someone from the UK is traveling to AU?).

Can I have a "semi-private" google action?

I'm attempting to write a google action that is only intended for use by me and my immediate family. I have it working currently in the simulator, and on my device, but I haven't "released" it yet.
This may be a result of it being still in the testing phase, but it seems to be able to be invoked only by my google account. Everything I do with the action works, but neither my wife nor kids can use it; they just get "I don't understand".
What do I have to do to allow other voice-recognized google accounts to be able to use my action?
This is intentional - your Action is currently in a "development" state. While you can permit it to other developers, this isn't a great approach.
You can "release" it into an Alpha channel and let a limited number of accounts have access to the Alpha channel version. This isn't quite a "private" action, but it doesn't require review from Google, and it does let you limit which accounts have access to it. Once they're in the Alpha channel, they can activate the Action just like public Actions.

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

Request payment part way through course

I'd like students to be able to access the first couple of lessons in Moodle before being presented with a request for payment. I've searched for ages on Google and found nothing, and also searched for all the possible terms I could think of here, and again come up short. Apologies therefore for the lack of contributing research/evidence.
I'm using Paypal as the chosen method of payment at the moment. Moodle is version 3.2.
Is there a way to add this kind of option to the 'access restrictions' in the courses themselves?
There isn't an existing way to restrict activity access based on the users enrolment type.
Without writing some custom code, the easiest way to do this is probably to have a separate course containing the pay-walled content, with paypal enrolment set up.
Add an activity to the free course with a link to the paid course. Use access restrictions to hide it until the other activities are complete.
When a user completes the free course content, the link to the paid course will be revealed, and they can click to enrol using paypal.