When you have time-sensitive tasks or documents that require renewal or can expire, SharePoint can be the perfect tool to help you and your company remember to address these upcoming concerns. Using SharePoint Designer workflows, we can set automated reminders to send notifications to assigned parties in order to prevent critical information from becoming overdue.
The first thing we have to do is create the key fields in the list for which we want to set reminders. I’m going to assume that for most of us, the list or document library (this solution will work for both), is already established. With this being the case, I won’t go through the trouble of creating a brand new list. Instead I’ll outline, at a minimum, which fields will be required.
- Assigned To: This field should hold the user who will be notified about the impending expiration. Existing Created By fields can be used, but remember to think holistically about the solution. Sometimes that person will leave the organization, transition to a different department, or be on vacation when you need to notify them. As such, I find it best to have a separate assignment field.
- Expiration Date: This field should contain the date on which the list item or document will expire. It is also possible to use the Created By date, and calculate the expiration date on the fly, but again, thinking holistically about the situation: it is often best to be able to change this date if the expiration rules change throughout the year.
These fields are by no means exhaustive; as the workflow is built, you’ll see obvious places to add additional fields to make the solution more customizable. In fact, at the end of this article I’ll give a list of possible improvements to customize the workflow to your organization and improve your workflow skills.
Moving on to the workflow itself, the biggest thing to understand is how Loops and Parallel blocks work. It is entirely possible to set a workflow with two steps: wait until the expiration date, and then email the assigned user. That looks like this:
However, what you’ll find is that this won’t service the needs of most organizations. If a document changes, or is approved before the expiration date, the workflow won’t be able to reflect this and will still notify the user on the original expiration date. As such, the first thing we need to do is put the “wait” command into a loop.
This means that each time we get to the expiration date, the loop will start over again. However, this will cause a major issue when we reach the expiration date, and the assigned user will get a massive flood of emails. To avoid this, set the looping condition to "Yes" after reaching the date.
Now, in order to take into consideration any changes that happen we have to add a parallel block to our loop. Normally each step occurs in sequence, Step A before Step B and so on. When these steps are set to run in parallel, Step A and Step B occur at the same time. Before Step C occurs, Step A and B must both complete. However, in our case, we need to move on to Step C when either A or B occurs. To set this, create a Boolean variable and set it to "yes". Then right click the parallel block and select Advanced Properties. There is only one property; set it to a new variable.
Now with this property set, create a second block where we will wait for a change in the item. Now the workflow will wait for either a change in the property or a change in the item. If it detects a change in the item, the whole loop starts over again, this can then take into consideration any changes made in the expiration date.
With that you have a working and functional expiration date reminder. Here are a list of additional modifications we’ve used with clients in the past that you can try to help spruce up the reminders.
- Send a notification two weeks before the expiration date.
- Set the notification interval from a field in the item.
- Send notifications after the expiration date.
- Set an escalation contact if the item is overdue that will be emailed automatically.
- Set multiple people to be assigned the same task, list, or document.
As always if you’re interested in us implementing an expiration workflow for your SharePoint site, or need help with other SharePoint problems, please read more about DMC’s Microsoft Consulting Services.