Expiration e-mail reminders is a frequent task in SharePoint, but surprisingly, according to SharePoint StackExchange question "how to run workflow for item expiration?", some people still don't know how to deal with this. Here is the original question:
As I understand WF are triggered with events (or event). I have a expiration column and I need to send notification 45 and 30 days prior to the expiration data. What are my option?
For me, the task is obvious and easily could be accomplished with a simple SPD workflow.
All you need, is to substract 45 or 30 days from the expiration date, then pause until resulting date value, and after the pause, just send the email.
But what if the Expiration Date value will change during the pause?
Especially for this kind of challenges, where is an excellent solution in SharePoint Designer workflows. Parallel execution blocks!
You can use them in conjunction with steps, following way:
So now, if you change the item Due Date field during the pause, new workflow instance will be started to work with new value of Due Date, and the previous instance will stop with the message "Due Date has changed! Stopping.":