Waiting in a SharePoint Designer 2013 Workflow

All too often when building workflows in SharePoint Designer there is a need to pause the workflow for a duration of time, or while waiting for values to change within SharePoint list\library.  Microsoft has provided methods or actions within a workflow to accommodate this for quite some time.  The method to accomplish while similar between versions has changed with the latest iteration of SharePoint Designer.  For this reason I wanted to discuss waiting in a SharePoint Designer 2013 workflow today.  I know that most are now moving to SharePoint 2016 or SharePoint online, but while Microsoft has released newer versions of SharePoint, it hasn’t released a new version of Designer since 2013.  So whether you are on SharePoint 2013 or a later version, this post is relevant for the foreseeable future. 

Waiting in a SharePoint Designer 2010 Workflow

The duration pausing of a workflow hasn’t changed between versions of SharePoint Designer.  So I won’t be discussing that today.  Waiting for a change however has changed.  In SharePoint Designer 2010 a user can tell the workflow to wait for a value to change in the item the workflow is running against.  This action is called “Wait for Field Change in Current Item“.  It is found in the List Actions section of the Actions menu in a workflow:

Then in the workflow you can select the field to watch and then have a number of conditional operations like “is equal to” , “is not equal to”, “is not empty”, etc. 

This makes things very easy for the different types of fields you are going to have or even different ways of working with choice fields.  For example, in my illustration above if the default value of the status field is In Progress and I want the Workflow to wait until that status changes then I can set it as follows:

Waiting in a SharePoint Designer 2013 Workflow

Things have changed a bit in Designer 2013.  You still have the duration pause and you also have a item value changing pause but now you have a new method called: “Wait for Event in List Item”

This option watches for either a new item event or a item changed event to occur within any list within the site the workflow exists in. 

This is a nice addition that allows changes to other areas to affect your workflow, but it poses a problem.  If the list or library that you are connected to is active, then the workflow is constantly going to be waking up and processing.  This doesn’t seem to be a big deal, but I will illustrate why in my next post.  I don’t want to do it here as this post is just meant as a general overview.  But keep that in mind if you want to use this. 

Wait for Field Change in Current Item – So Close, Yet So Far

The other wait method we are familiar with is still called the same, but its functionality has changed.  Now when you add the action to your workflow its going to look a bit different. 

No matter how many times you click on that “to equal” text, it’s not going to act like the SP2010 action and give you a list.  That means you are limited to waiting till a field becomes a single particular value on the list item.  So what if you have a field with a dozen options and you want to wait until it is no longer the set value (like my example above)?  Does this mean we can’t do this anymore? 

In fact you can.  Not only that, but you can do it a couple of ways.  My next couple of posts on this is going to discuss those options and let you know the best way to do it (and yes there is a best practice when it comes to this).