4
votes

I want to create a workflow on a Sharepoint list and it should send a notification email.

The problem is that I want this workflow based on expiry date(send an email 30 days before the expiry date) and I am not creating or updating any new list items.

I know workflow can only be created if any item are changed/created but I have seen some buzz around on the net that this can be possible using SPD.

Any suggestions would really be appreciated.

Thanks,

5

5 Answers

2
votes

Create a SharePoint Designer (SPD) workflow Select your task list Set it to run on Create Click Next In the Actions section add these three actions: - Add time to date - Pause until date - Send email

My example looks like this after the properties are set:

Add -7 days to Tasks:Due Date (Output to Variable: ReminderDate) then Pause until Variable: Reminder Date then Email this message (you can hard code the address or use the assigned to... )

Notes for this very simple example: - If someone edits the task and sets a new due date, this workflow will still send the reminder based on the old date. - It does not check to see if the Due Date is at least two days in the future.

Ref: http://social.msdn.microsoft.com/Forums/en-US/acb12dd2-d6a5-4b7e-b233-037558bfa2e5/start-workflow-x-days-before-expiry-date?forum=sharepointcustomizationlegacy

1
votes

The possible work around would be to start a designer workflow when the is created/updated. Within the workflow use 'Pause Until' condition as shown below: Pause until (ExpiryDate-30) Send Email

The 'Pause Until' condition pauses the current workflow instance untill the specified date comes. This is likely to solve your problem. Thanks,

-Aniket Banerjee, Senior SharePoint Developer, Mindfire Solutions

0
votes

This should give you a good start - it covers workflow, timer jobs and some 3rd party products that can do what you are after.

Dated reminders in sharepoint calendars

0
votes

Create a workflow when the item is created. Do not use Pause Until(ExpiryDate -30) send Email. there is a big issue with this is that users may change the expiry date.

My suggestion is to use Pause some days, such as 1 day. the logic would be like this.

In the Actions section add these three actions: - Add time to date (-30 days)

  • loop while today <= expiryDate (changed if user change it) - 30 Pause 1 day

  • Send email

in this case, whenever the users change the expire date, it will get it for each iteration.

0
votes

You can create a workflow to start when item is created or modified. This work flow check whether the date is due by comparing due date files with current date. If it is not due, set the workflow to pause for 1 day then modify any field in the list (you can create a field that does nothing but just for this purpose). Once modified, the workflow terminates but the modification will trigger another workflow, that workflow will check the due date again and pause for another day until the due date is matched.