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.