I need to send an email alert if 7 days have gone by since a date was entered in a field called 'Start Date'.
In the Calculate Date field I've got the Date as 'Workflow Context' and then 'Current Date' I've set up a variable called CheckDate which is where the information is stored. I've set the Days to '1'.
On the Query List I've set the Filter to 'Start Date' is equal to CheckDate. I've go the output to 'CheckDate' (I don't think this is right?)
The idea is that I compare the Start Date to the 'CheckDate' and as soon as it hits todays day + 1 an alert I sent out.
This is how I've configured the 'Set a condition' action but I'm pretty sure I've got it wrong...
Can anyone nudge me in the right direction?
I want to clarify what you're asking. You said "I need to send an email alert if 7 days have gone by since a date was entered in a field called 'Start Date'."
If I take your wording exactly as you wrote it, the date that is entered in the field 'Start Date' is irrelevant - you just need to know if 7 days have elapsed since any date was entered there, is that correct?
If that's the case, one way is to trigger the workflow to start conditionally on item modify when 'Start Date(previous value)' not equals 'Start Date')
Save the 'Start Date' to a variable (varDate1), a "Pause" action for 7 days, then Run if varDate1 equals 'Start Date' with a notification in the 'Run if' action.
Hi. No sorry I should have been more clear. What needs to happen is that the user enters a date in the 'Start Date' field and seven days after that entered date an alert is sent out. So if I enter '13th of November' in the Start Date field that an alert is sent out on the 20th of November.
In that case, this one should be easy.
Start workflow on modify with the condition that 'Start Date(previous value)' not equals 'Start Date'. This ensures the flow will only start when the Start Date field is modified.
(If the Start Date field is filled in on the initial item creation, you'll want to start this differently)
Use calculate date > List Lookup > (Source) Current item > (Field) Start Date
Then in the "Days" field , value should be 7. This adds 7 days to Start Date.
Store Date in varDate1 (Date and Time variable).
From here there are a few ways you can finish this, but I like using a "Pause until..." (Workflow data > varDate1) action followed by a notification action.
Keep in mind that if you do it this way, if Start Date is changed multiple times, it won't affect the first run of the workflow, e.g. if Start Date is changed to Nov 13, an alert will be sent on Nov 20 regardless of the fact that the Start Date was changed on Nov 15. Another alert will not be sent.
Create a new Column called "Alert will be sent on" and make it a Calculated column. In the Formula box put [Start Date]+7 and the data type returned will be Date and Time (format: Date only).
You can hide this column from the list view if you like. This new field will dynamically update whenever the Start Date field is changed.
Create a new workflow that will start on modify and use a Pause Until... action > (Source) Current item > (Field) 'Alert will be sent on', and a notification action after that.
You'll want to test this because I'm not sure if the Pause until action will read an updated value or if it will keep the initial value.
better then let the workflow running and waiting for some specific date or time elapsed, is to design a site workflow and schedule it to run daily.
the workflow then checks for which items a notification should be sent out on 'today'
see an example on Cassy Freeman's blog -
I wish Nintex had a way to specify a workflow as "Only run this once per item" but it doesn't.
You'll have to add a column "Has this workflow run yet" with a yes/no value, set default to No and flip it to Yes when the workflow runs, and add a run if action to only run the flow if the workflow has not run yet.
I actually use this on my own site, it will not work without a little regexing. Because when you capture the date value in a variable it captures the TIME value as well, you will have to use regex to strip the time value from the date.
e.g. if you set Start Date to 10/3/2017 and capture that in a variable the value looks like this:
10/3/2017 12:00 AM
But when you compare it to a date column to try and match it, the value looks like this:
and it won't match it ( because your site flow isn't running on all items exactly at 12:00AM) and send the note.
Capturing the date field in a variable appends the time EVEN IF you specified that the column with the date is DATE ONLY.