Once you have started with Microsoft Flow in your production environments you will find that you want to update those Flows without affecting the existing production flows. Small changes you might dare to risk but what if you have a number of days work to do to existing flows. How do you now update those flows?
In this post I’m going through the different options that are currently available within Microsoft Flow.
Approach 1 – Directly update your flows
This might feel risky as you might make mistakes. With the right experience you could potentially go for this option. Or you could even ask someone else with the right experience to do this, but whatever steps you take this is the risky approach.
Approach 2 – Create a test/development tenant (1st half)
This sounds like the sensible option to me. You simply recreate the flow in a different tenant and still connect to your production data and you can update your flows without updating the production tenant. Unfortunately you will see the following failures appear.
When you look at the failure details it looks like running flows connecting to data across tenants isn’t supported/working:
{“error_description”:”Exception of type ‘Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException’ was thrown.”} clientRequestId: c6b2be29-9d0a-40a3-a7a7-37f250ec8356 serviceRequestId: f9575e9e-9032-5000-6015-e841744aa5d7
Approach 3 – Create a test/development tenant and replicate data (2nd half)
Same as approach 3 but now we also replicate the data in the test tenant. Now you will find that you will need to update all of the actions with the right base Url:
Unless of course you develop your Flows properly and rather than select the Site Address from the drop down you use the Enter custom value option and then use variables to select the site.
Conclusion this is also not really an option as you can’t easily copy your flows form one tenant to another.
Approach 4 – Create a copy of your flow
In our 4th approach we start with an existing flow and use the save as option to create a copy of the flow.
Give the flow a new name.
Now we have two versions of the same flow. But one is active and the other one is not active.
Now we can make our updates to the dev version of flow and test this flow. Note that if you run this flow and it updates data it will update your production data!
Once you have made your changes to the dev version of the flow you could test the flow while the production flow is still working. You could even consider putting a switch inside your flow that makes the flow run in Development mode or production mode so that you can avoid updating production data. Then once you are done, simply toggle to off/on for your production and development version of your flows and you are up and running. How about a roll back plan? Well that is easy simply switch the on/off the other way around again.
Nice.
I post my Idea “Staging and Production environment for flow”.
Pieter,
Thanks for discussing these options. I think the approach you have in #3 should be explore more in an enterprise environment. I was also thinking that perhaps there might be a tool out there that can read a JSON file of the flow and quickly do a find and replace strings before loading into the next environment. For example, as admins you could have simple EXCEL file with VBA scripts that will read the JSON file and perform string functions to reset the parameters. This way, you could change the GUID of views as you move them from one to the next.
You might want top have a look at John Liu’s Flow Studio. https://flowstudio.app