Can I release Google Assistant Private App - dialogflow-es

I'm developing a Google Assistant Action using Dialogflow.
When the development is completed, I want to release this Action to Assistant.
But this Action is purely for personal use, so I worry that the release is rejected.
Has anyone released a private Action?
I don't want Alpha or Beta version app, because these versions are included 'Test Version' phrases when the version load

If the Action is completely private (ie - just for you) then leaving it in an Alpha channel is most appropriate.
If the audience is broader, but still very limited, and you don't want to deal with the "test" phrase, and you are willing to have it reviewed, then you can limit access to it by using the Google Sign In for Assistant, which will give you a user ID which you can check against a whitelist.

Related

Dialogflow Draft impacting released Actions on Google Action

Initial Situation
We have a published Google Action with Version V1. It has intents A and B and uses the Dialogflow ES - Google Action integration. The fulfillment URL for the intents is example.com/v1. It has been reviewed and is in Production and working fine.
New Version Expected Outcome
We want to deploy a new version V2, which has an additional intent C and a new fulfillment url example.com/v2.
According to the documentation
New Action submissions create a snapshot of your Dialogflow agent at
the time of submission. Future edits to your Dialogflow agent do not
impact this snapshot (or version). For edits to go live, you must
submit your draft for alpha, beta, or production release in the
Actions Console.
In the past this also worked. We imported a new version of the dialogflow agent with a new fulfillment URL and the existing production version was not touched and we could submit a new version for alpha, beta review or production review.
Current Problematic Behavior
The production version V1 is not frozen anymore but seems to be directly linked to the Dialogflow draft. As soon as we import the new action or even just change the fulfillment URL this change is reflected also in production without any review.
We've verified this both via selecting a version in the Google Actions simulator, and also by using Google Assistant on a device with another account which is neither developer nor beta tester and being able to invoke the new Intent C and being redirected to the new version of the backend.
One observation is that in the past the versions released through submitting a version in the Google Actions console showed up in dialogflow under published versions with a note Version created from Actions on Google console. However, for the last production version and subsequent alpha versions this entry is missing.
The issue is currently also being tracked in the dialogflow issue tracker here: https://issuetracker.google.com/issues/217720434
I am writing this here because the Google Actions support is very adamant that I should use these "community forums" for technical issues.
We are interested in finding a workaround as this currently blocks submitting a beta version with the new functionality unless we just make the new functionality also available publicly inadvertantly.

Google Assistant - existing dialogflow intents & new actions cooperation

I have a technical question about the Google Assistant - unfortunately, I couldn't find a clear answer anywhere.
At the moment our company have:
the conversational chatbot built on Dialogflow, which is constantly developed by our employees
Google Actions agent. Our developers managed to construct the connection of the Google account and our client's account on our platform using OAuth 2.0 and created the first actions that, by the exchange of tokens, allow the return of certain information from our platform to the Google Assistant and vice versa - providing certain information in the Google Assistant that are sent and saved in the customer's account on our platform.
We would like both actions on actions.google.com (2) and conversations on Dialogflow (1) to cooperate with each other in the Google Assistant. One team is working on the chatbot, and the other on advanced actions, and we would like it to stay that way.
My question is - is the absolute only way to finally publish it on the google assistant is to migrate the chatbot from Dialogflow to Actions Builder and stop using Dialogflow?
Or maybe there is a simpler solution where both these environments (of course woring on one profile / agent) cooperate with each other and it will be possible to continue working on dialogflow?
We understand the advantages of Action Builder, but Dialogflow is just good enough for our needs.
There are a few angles to how you can approach this, depending on your exact needs and limitations you may accept, but the general answer is "yes, you can do both at the same time".
First, Dialogflow ES continues to support the Actions on Google Integration. Just as your Dialogflow agent integrates with other platforms, it should still be able to integrate with Actions.
There are some caveats (and some upsides!) with this, however:
You'll be using the Actions on Google v2 platform, rather than the v3 that comes with the Action Builder (and newer SDK). If the features you need are supported on v2, then you're fine. (Account Linking is supported in v2.) But if you need some of the features in v3, then you will run into problems.
You can't have used the Action Builder on the same Cloud project, and you should start the integration from the Dialogflow side. (But once you do - you'll be able to use the Actions Console to do things such as submit it for review, etc.)
Make sure you do not "upgrade" from Dialogflow to Actions Builder. This severs the two, so you won't be able to update the Action from Dialogflow.
Another approach is that you can use Action Builder, but have it forward all (or nearly all) of the requests to Dialogflow. Under this scheme, you would have an Action Builder project that has as little as one Scene with an Intent that captures all input, sends that to a webhook you control, which sends it to your Dialogflow agent via the Dialogflow API, gets the response from your Dialogflow agent, and forwards that response through Action Builder.
This is a little more complicated, but may offer some benefits if you want to take advantage of more advanced Action concepts that may not be available using v2.

How to enable other people's Android phone to use the test version of your unreleased Google Action?

I am developing a Google Action for Google Assistant and it is not yet a state where I can release. Even so I want it to be available for some tester, and in a near future, my client.
The simulator with the "test" is somewhat limited at auth request, name recognition (since it will only knows my action) and experience (to show my client), so I prefer not to depend on it for this case.
I found it is only possible to interact with a test version of an action if the project owner's account is logged in as a Google account in the phone where you want to call the action. Is it correct? Or there is another way?
I even tried adding my wife's Google account as a viewer to the project, but I am unable to call my action from her phone.
You can add people as a viewer to the project. Before those users can call your action on any of their devices, they will need to use the test console at https://console.actions.google.com/ once, this will enable testing on their device. After that they will be able to interact with your action on their devices.
Do note, the time in which the action is available on their account is limited by a time period (about a couple of months). If they cant access the action any more after a couple of months, just repeat the above step to reactivate testing for their account.
Update
One thing that you could consider in the two approached posted by #Prisoner and me is if your testers need to test on just a device or need access to the console as well. Using the approach from #Prisoner will allow your users to test on devices. The above approach will also allow testers to use the console at https://console.actions.google.com/.
In addition to #Jordi's answer, you can also do an Alpha Release of your Action. This lets you permit up to 20 additional accounts to the released version
Once you permit them using the console, you will send them the opt-in URL, which they should visit on a mobile device with that account. Once they have opted into the Alpha, they can activate it using the regular trigger phrase.

How to implement fulfillment for alpha/beta releases actions google

I've been developing on Actions on Google using Dialogflow. The webhooks worked like charm when using the simulator for testing.
I published an Alpha released but it isn't working at all. The Alpha testers can't get it connect and when I tested that Alpha version on the simulator, it tells " isn't responding right now. Try again soon."
In the documentation "Releasing Your Actions to Alpha and Beta Environments", a paragraph reads:
"Implement fulfillment for alpha/beta releases
The release channel information is not included in the HTTP request from the Assistant to your fulfillment. To handle release channels in your fulfillment, you should provide different fulfillment URLs (for example, one fulfillment URL for the beta and another URL for the production version of your Action)"
I searched everywhere and I could not find any pointers on how to implement a new fulfillment for the Alpha (and eventually the published release).
I have one url that I use in the fulfillment on Dialogflow, so how can I do otherwise?
The same webhook will work for all the versions, (at least it is working for aplha in my case), check for one of the following cases...
Make sure you have added Alpha testers' mail addresses to alpha testers list, otherwise they will not be able to access the alpha release.
Make sure you have deployed the latest updated version of agent on actions on google page. If not do so,
If you are getting a "modified action" message like this, that means you have a change that is not yet deployed.
Deployment of agent is not instant and takes quite a bit of time to get accessible on Google actions platforms. Check the current release status of your latest deployment, it should show "deployed", if it's showing "deploying" you have to wait for some time to get it deployed.
If all of the above is Ok, test the alpha release and check out your web-hook log (even check if web-hook is at least receiving the requests or not) , that will be the only place where you will find any possible error.

Google Actions integration with dialogflow different behavior from draft to alpha or beta

i created a chat bot with dialogflow (V1) and integrated it with google actions for Google Assistant. My company was supported by Google for all development process.
The first release of the chatbot was deployed for all users before 8 may. All works well and the actual release on Google assistant is working well.
The problem now is if i want update the bot with new actions and features the behavior of the chatbot is different in the simulator from draft state to aplha or beta release.
In the webhook the data provided by dialogflow is different (the logs on the cloud function): in the draft all parameters are set correctly , but when switch to alpha or beta version (created from the draft that works well) the parameters are always empty and all the bot answers are wrong.
There are specific actions to make or settings after 8 May to switch from draft to alpha/beta release of Actions on Google to avoid this strange behavior?
Alpha and Beta releases people made last August used to lack the training (machine learning) the agent received. It may be the case here that your alpha and beta versions have the same problem.

Resources