Here’s a way to get even more value from the new “conditional start” capability in Nintex Workflow for Office 365.
Normally, a workflow kicks off when an item is created or modified. With Conditional Start, we provided the ability to set a condition or expression that must also be true for the workflow to start. (If you’re not yet familiar with it, I recommend this recent post: What's New? Conditional Start in Nintex for Office 365.)
In using conditional start, you might find yourself asking how to handle the situation when the value of a field item changes from A to B.
In Nintex Workflow for SharePoint, you’ve had the option to check previous values for the existing columns in a list, and use that to create the logic of your start condition. (See the screenshot below from an Nintex Workflow for SharePoint.)
This option hasn’t been available in Nintex Workflow for Office 365 because of a constraint in the relevant Microsoft APIs. But don´t worry, I´m here to bring you solutions not problems.
Here´s workaround to solve this problem: we just need to get the previous workflow instance to write the prior values of the list item in column(s). Here’s what I mean.
Let’s say I have a list with Column1 and Column2. And let’s say I want the workflow I created in this particular list to be triggered only when I modify an item -- specifically, when the value in Column1 changes from A to B.
We need a way to check the value of Column1 before the item was modified to compare it with the current value. To do that we’ll create another column and call it Column1Prior. Having both previous and current values, now it’s easy for me to create that condition in the Start Option. Don’t worry, we can hide Column1Prior so the end user won’t see it.
We also need to keep Column1Prior updated, so we’ll add an “Update list item” action to our workflow. This will set the value of Column1Prior to equal the value of Column1 at the end of the workflow instance. This way, every time a workflow finishes running, Column1 and Column1Prior will have exactly the same values.
In this example I’m using only one extra column because I only need to check the previous value of Column1. If I want to create more complex start logic, I’ll need to check the prior values of more columns. I can escalate this approach and create as many extra columns as needed.
And there you have it! Some of you have asked me directly about this scenario, so now everyone has the answer! Happy Nintexing!