“I feel like I’m building the same processes over and over again, I could save so much time if I had reusable Power Automate flows!”
If you’ve been building flows for some time, you might notice a pattern – not every flow is completely unique. There might be a difference here and there, and some flows are completely unique, but there’s also an overlap in the functionality. A core part of the flow that’s included in every similar process. Are you always building it from the scratch? Repeating the same work for every flow?
One of the goals of automation is to save work, to get rid of repetitive tasks. But what else is building the same flows again than a repetitive task? You already did the work once, why do it again?
If you feel that the process you’re automating is not that unique, that it’s something more people in your organisation could use, maybe it’s a good idea to make it reusable!
How to build reusable flows
Reusable flows must be easily configurable
Since the flow should be reusable on different data sources, involving different people, you should hard code as little as possible in the flow. Reusability doesn’t mean that you have to go through each action and update it. Reusability means that you open the flow, change a few actions at the beginning, and that’s it.
More specifically, it’ll be 2 actions at the beginning – the trigger that must be always hard coded, and a variable with configuration. Everything else in the flow should reference the trigger or the variable.

Reusable flows are not hard coded
Once you have the configuration, no more using drop downs in the actions! Every reference should lead to the configuration (or environment variable), to a single source. A simple update in the configuration will then easily reconnect the flow somewhere else.
However, it means you won’t be able to use some of the default features. For example, to create or update SharePoint items you’ll have to define the data in JSON, or use HTTP requests to create or update the item.

But you can take the configuration one step further – not only having a configuration variable, but the configuration variable can reference a configuration list. Use the variable to get data from the list that can contain less technical settings.
What about connections?
The part that could be a bit problematic are connections as the only way to dynamically define connections are connection references in Solutions. But if you don’t want to use the same connection in every flow, Solutions are not the solution in this case. Instead of having a connection reference use the personal connection in all the actions.

How to reuse the flow?
Now you have everything ready – the flow has configuration at the beginning, all actions are dynamically configured using a configuration variable / lists, and it’s using user connections in the actions.
One way could be to simply copy/paste the flow, especially if you’re including error handling in the flow – just copy the whole Scope with the flow and paste it in another flow. But that’s not ideal – you can’t include the trigger and the variable in the scope, meaning you’d have to move them separately. On the other side, you could keep a library of the flows (represented by JSON codes) that users would just copy/paste into their flow.
If you want to copy the whole flow, the best way is to use the ‘Save As’ functionality.

This button will create a 1:1 copy of the flow while replacing all the connections by the connections of the copying user. If you ‘Save As’ a flow, it’ll use your connections. If you share the flow with somebody else and he’ll ‘Save As’, it’ll use his connections. Which is what you want to do – prepare a template, share it with others, and let them ‘Save As’ their own copy. Just make sure that you have a backup in case somebody starts modifying the flow.
Summary
If you feel like you’re building the same flows, or if you want to speed up automation in your organisation, building reusable Power Automate flows might be the way to go. Move the flow configuration at the beginning of the flow or into configuration lists, reference this configuration instead of hard coding the actions, and use the user connections. Such flows will be easy to copy and reconfigure, making your work more easily accessible not only to you, but to other people in your organisation too.
The principles in this article are what makes the Approval process template so powerful – no need for developers, no need to repeat the same work, a reusable flow that can be used by anyone.