As a big user of Nintex, I was always a fan of the conditional start feature that allowed me to control exactly when a workflow is triggered. It's not all that clear how you would do this with Power Automate so I thought I would share the approach we use.
I could achieve this by analysing column values at the start of my Flow and terminate it if the conditions aren’t met.
This, however, isn’t the most efficient way to manage your Flows and will result in a lot of unnecessary entries in the run history. You also want to ensure that you aren’t needlessly using up your quota of daily flow runs (which will vary based on your licenses).
The answer is called Trigger Conditions! It’s a fairly well-hidden feature but it is really powerful and will give you full control over when a Flow is triggered.
To set up a quick demo I used one of the new pre-built Microsoft Lists templates called the Work Progress Tracker. It has a load of pre-defined columns, views and conditional column formating to help you get up and running. It looks great straight out of the box and saves me time building out a demo list!
To get conditional starts working in your environment follow the steps below.
In this scenario, we are tracking the progress of project tasks assigned to our team. If progress has been blocked we will send a notification into a channel of a Microsoft Team which is managed by the project managers so that they can take appropriate action to get the project back on track. I am going to configure the Flow to only run if the Progress equals Blocked.
1. Create a new Automated Flow with SharePoint trigger called When an item is created or modified. Add your site and list details.
2. Click on the three dots next to Flow trigger and then select Settings.
3. Scroll down to the bottom of the settings window to Trigger Conditions and click the + Add icon.
4. Enter the following expression into the trigger condition which will query the Progress column and will only run if Blocked has been selected
@equals(triggerBody()?['Progress']?['value'],'Blocked')
This is just a simple example but you can add additional trigger conditions to evaluate multiple values. Below I have modified the Flow to only send if it also has a priority of critical.
Have a play with it and let us know how you got on!
Comments