Original question in forum: https://productforums.google.com/forum/#!topic/dialogflow/H2nG9UM8fvM;context-place=forum/dialogflow
As I'm making changes to a draft Dialogflow, I can demo the changes on just about every platform within a few minutes. Some propagate the update automatically such as Google Assistant and Text via Twilio but there seems to be no way to update the Dialogflow Phone Gateway draft version.
I've even tried to delete (an hence lose my assigned number) and then reenable the integration.
Does anybody know of a way?
Go to Dialogflow settings -> Environments -> Publish a version -> Add a description -> Choose New Environment (This will be the new environment you are creating besides Draft) -> Write the environment name -> Select all the options you want -> Then, publish it.
Now you will have more environments to select.
Dialogflow's phone gateway is tied to a specific version of your Dialogflow agent. You can change which version that the phone gateway uses (including the draft environment) in Dialogflow's console > Integrations > Phone Gateway > Environment. In the screenshot below the environment the phone gateway is using is the draft environment:
This can be changed by selecting a different environment from the dropbox list box.
Related
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.
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.
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.
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.
I'm using Dialogflow to interact with my users (they can ask questions, ask to receive reports etc...) and I would like to launch an Android application when they invoke one the intents I created, is there a way to that?
Short answer: Not really.
Longer answer: While you can't have one of your Actions trigger any Android Intent directly, you do have a few options to strongly suggest to a user that they do so. For example:
You can use something like Firebase Cloud Messaging (FCM) to trigger a notification/event.
If you're relying on the screen of the Android device, you can send a card that includes a URL, and that URL can deep link into your application if you've configured it.