Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

We're using SharePoint Server 2007 and it's List feature for task delegation and progress report. Can I somehow set or develop a email reminder which could alert the user if his task passed defined dead-line?

These are my columns in my custom list: - Title (single line of text) - Assigned To (Person or group) - Description (Multiple lines of text) - Status (Lookup) - Due Date (Date and Time)

How can I loop thru this list and send email to 'Assigned To' person if today's date beyond 'Due Date' and if Status equals 'Pending' or 'In Progress'?

share|improve this question
add comment

3 Answers

up vote 0 down vote accepted

Using a workflow, you'd create an on creation workflow in SharePoint Designer that pauses until the Due Date. The next action would be If Status equals Pending or if Status equals In Progress Email user. Configure the email step to sent the email to the assigned to with whatever verbiage you'd like in the email body. This gets you the basic functionality.

To turn this into a looping workflow scenario to achieve your desire to send reminders every hour until it's done, you'll want to to is create an additional column in the task list, a number format works great for this. After you email the user, you'll want to look up the value of this number field, add 1 to it, and update that column to that value.

Now let's head back to step 1 of this on creation workflow. Add an else branch to step 1 to check if the due date is less than the current time, if so, pause for an hour, then check to see if it's complete. If not email the user and update the column. You'll also want to make sure that you set this workflow to trigger on change too. You'll now have a fully operational reminder system that will continue to check every hour and email the deadbeat task assignee.

Now you'll need to branch off into another workflow. On your on creation workflow, you'll want to update this value. This will triger your on change workflow, which you would pause for 1 hour, check to see if it's completed. If it isn't email the user, and update that column.

The reason you have to do this is because as of Service Pack 2 for Sharepoint 2007 I believe it was, Microsoft removed the ability for workflows to trigger themselves causing continuous looping. This makes it so that as one workflow ends, it causes another one to start, giving you the looping that you need.

share|improve this answer
    
I should select "Automatically start this workflow when a new item is created"? What if someone changes the Due Date later? –  user3101 Apr 19 '11 at 14:27
    
Yes. Once this is working, you can expand it to on change scenarios and build workflows that trigger each other to create reminders for tasks that are not getting completed. –  PirateEric Apr 19 '11 at 14:36
    
Great, this is working. I've defined 2 steps, 1st step pauses until due date and 2nd has checks if status equals pending or in progress and sends an email. Now I wish to expand it and send reminder every hour. I've added action after email 'pause for 1 hour', but I dont think this is correct, this will just pause and do nothing after that? Will the workflow pause right here or go back to 1st step? –  user3101 Apr 19 '11 at 15:17
    
This is the part where you'll need to branch off into another workflow. What you'll want to to is create an additional column in the task list, number format works great. On your on creation workflow, you'll want to update this value. This will triger your on change workflow, which you would pause for 1 hour, check to see if it's completed. If it isn't email the user, and update that column. –  PirateEric Apr 19 '11 at 15:29
    
You'll then need to co back to your on creation workflow and add in an else branch to step 1 to check if the due date is less than right the current time, if so, pause for an hour, check to see if it's complete. If not email the user and update the column. You'll now have a fully operational reminder system that will continue to check every hour and email the deadbeat task assignee. –  PirateEric Apr 19 '11 at 15:32
show 5 more comments

You can do a secondary workflow, here are some walk throughs

http://office.microsoft.com/en-us/sharepoint-designer-help/create-a-secondary-workflow-HA010237656.aspx

http://sharepointmagazine.net/articles/the-dog-ate-my-task-use-sharepoint-designer-to-email-daily-task-reminders

Or use a paid product for reminders

http://www.pentalogic.net/sharepoint-products/reminder

share|improve this answer
    
I'd plug Nintex Workflow if we're talking thrid party tools. –  PirateEric Apr 19 '11 at 12:29
add comment

From StackOverflow - Dated reminders in sharepoint calendars

Expanding on Andy's answer (http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx) if you just put code to send an email in the Execute method of the timer job this doesn't give you anything more than cron.

What you could do is to write code to iterate through the Calendar (actually an Event List) finding any events due soon and sending email to whomever is in the Assigned To field. This could then be called from the Timer Jobs Execute method or using a normal scheduled task. This will be easier to administer changes than cron and could be used for other types of tasks.

A link to get you started - Iterate through Items in a List

Another option would be to use Workflow to send out emails from the calendar

This CodeProject article shows how to develop a feature to send scheduled reminders

Yet another option would be to use one of the 3rd party tools that do this (disclaimer - I work for the first company)

Finally - whichever method you choose (custom code/workflow/3rd party) you will likely run into trouble with recurring events as SharePoint doesn't provide a way to get an 'expanded' list of all occurrences.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.