Workflow: Reminder Before Due Date – MOSS vs. WSS

In this post, I’ll show you how to create a workflow that reminds you a week before an item is due.  This item could be anything in SharePoint, such as a document or task.  In the example, I’ll use a task, and the built in Due Date field.  Note that a Due Date field could be added to any type of list or library in SharePoint.  There are probably many ways to go about solving this, but this (MOSS) way is my favorite.  First I’ll show you how it can be done in MOSS, and then how it can similarly be done in WSS, and the drawbacks involved.

Here is a little more information, so you’ll understand the reasoning behind some of this.  With Information Management Policy settings in MOSS, we can set up a rule that will kick off a workflow on a certain date based off of a date field in the list.  Therefore with MOSS, we don’t have to leave workflows running and waiting.  You’ll see what I’m talking about when I compare these two methods.  In this MOSS method, the first thing that may seem strange, is that I’m not just creating a calculated column.  That’s because a calculated column won’t be available in the information management policy settings.

MOSS Reminder Workflow

  1. In the SharePoint task list, create a new column called Reminder Date, and set it as a Date field.  Uncheck the “Add to default view” box, and click OK.
    CropperCapture[67]
  2. We don’t want this field to be displayed to users when they are filling out the form, so we hide it.
    In the list’s settings, click Advanced Settings.  Change Allow management of Content Types to Yes.  Click OK.
  3. In the Content Types section of the list’s settings, click the name of the one content type in there.  In this example, it’s “Task”.  Then, in the List Content Type information screen, click the name of the Reminder Date field.  Change it from Optional to Hidden, and click OK.
  4. Now it’s time to create a workflow that will set the Reminder Date.  In SharePoint Designer, open the site, and click the File menu, and New… Workflow.
  5. Call it Task Reminder, and connect it to the Tasks list.  Set it to run on create and on change.
    CropperCapture[68]
  6. There need not be a condition, and the actions are the following:
    ”Add Time to Date”
    ”Set field in Current Item”
    CropperCapture[73]
    (trick: to get that last underlined field to show a variable, choose workflow data as the source)
  7. Click Finish to save the workflow.

    Another important thing to note is that if your SharePoint Server has not been upgraded to service pack 2, this workflow could end up running in an infinite loop.

  8. Create a new item in the task list, and see this workflow in action.  It fills in the Reminder Date field automatically.  You can add this field to the default view, for testing purposes, so you’ll see the value get filled in.
  9. The next step is to create the workflow that actually sends the reminder email.  Call it Task email, and uncheck all the boxes as so:
    CropperCapture[75]
  10. Click Next.
  11. Create one action, to send an email to the person that the task is assigned to, and make the email say whatever you want.  Then click Finish.
    CropperCapture[76]
  12. Next, to set the policy…  On the list settings screen, click Information Management Policy Settings. (This is only available in MOSS, not WSS)
  13. Click the name of the content type, in this case it is Task.  Select Define a Policy, and click OK.
  14. Put a check box next to Enable Expiration.  Fill in the section as follows.  Remember, that when I created the Task Email workflow, I unchecked all the boxes that indicate when the workflow is supposed to run, but I can still kick it off using a policy!
    CropperCapture[82]
  15. That’s it.  Test it out.  Make sure you fill in the Assigned To field on the tasks, so that the reminder email will go out.

Another note…  It doesn’t let you put a ZERO here, for + 0 days.  This is why I set my reminder date to calculate –8, since I know I’ll have to put a +1 here.  Math.  Negative 8 plus positive 1 equals negative 7, which equals a reminder 7 days ahead of the due date.  Click OK.

About Information Management Policy settings and starting a workflow:
Each time after you edit the Task Email workflow in SharePoint Designer, you have to go back to the screen in the above screenshot, and RE-select the current workflow name, and click OK.

WSS Reminder Workflow

This section will show how different it is creating the same workflow in WSS.  Since we don’t have the benefit of information management policy settings, we have to set a workflow to run, waiting for the reminder date to arrive.

  1. Create a new SharePoint Designer workflow, connect it to the tasks list, and set it to run each time a new item is created.
  2. The actions should be as follows:
    CropperCapture[83]
    ”Add Time to Date”
    ”Log to History List”
    “Pause Until Date”
    ”Send an Email”

That’s all the WSS workflow entails, but there are a couple of drawbacks:

  • If the due date is more than about 2 or 3 months away, that paused workflow becomes more unreliable.  There is an underlying “Workflow History” list on each site, and apparently it auto-purges records that are over 60 days old.  I hear that this auto-purge can cause problems in long-running workflows.
  • Even if the workflow is set to run on create AND on item change, the reminder variable still doesn’t change when the task item’s due date is modified.  There’s got to be a way around this, which would most likely entail a more complex workflow… but I’m sure it would have pausing involved.

UPDATE: 3/2016 – This is one of the most commonly asked about topics.  There is a product called Pentalogic Reminders that is great for this since SharePoint just sucks when it comes to trying to do this with out of box functionality. They even have an app in the SharePoint store, for Office 365!

102 comments

  • Hello all,
    I want to set up a system which should run daily and trigger email to a person that all due tasks in list.. is it possible??

  • Hi!
    Does the workflow runs at any specific time?
    I’ve created the workflow and in my list, I have 4 cases which need to be notify Today.
    Does the workflow run at the end of the date or something like that?
    Thanks!

Leave a Reply