1. Introduction: Many times when designing workflows there is a need to use a Workflow Timer. As you may know a workflow timer will process workflows at a specified time or interval. While SharePoint Designer does not provide an out of the box (OOTB) capability for creating workflow timers, still, there is a way to create a workflow timer using SPD workflows.
2. Scenario: In our simple scenario we want our example workflow to run every five minutes. Now, given this is not a very realistic scenario, most users will want the workflow to run once a day, week, month, etc. However, once we have designed the mechanism to run a workflow every five minutes, it’s a simple matter of changing the pause delay to increase that to any duration needed.
3. Explanation: Essentially we will have two workflows, running on two separate lists; one workflow, “Endless Loop”, creates an endless loop and the other workflow, “Delay”, one creates a delay or timer. The logic for the Endless Loop workflow looks like this:
a. Calculate (increment) the loop counter
b. Update the item in the Delay workflow with the counter value
c. Log the Event
The logic for the Delay workflow looks like this:
a. Calculate (increment) the loop counter
b. Pause (Delay) for a period of time
c. Update the item in the Loop workflow with the counter value
4. Overview: To build a Workflow Timer we will need two SharePoint lists, and two SharePoint workflows. The first list will contain our Loop workflow, and the second list will contain our Delay workflow. For obvious reasons we will call the first list “Endless Loop” and the second list “Delay”. To create the lists follow these steps:
a. From the SharePoint site create a custom list, call it “Endless Loop”
b. From the Loop list add a custom Number column, call it “Counter”, set it’s number of decimal places to 0 and it’s default value to 1, finally add it to the default view
c. Create 1 item in the list and title it Endless Loop
d. From the SharePoint site create a custom list, call it “Delay”
e. From the Delay list add a custom Number column, call it “Counter”, set it’s number of decimal places to 0 and it’s default value to 1, finally add it to the default view
f. Create 1 item in the list and title it Delay
To create the workflows for these lists follow these steps:
a. From SharePoint Designer create a workflow that is associated with the Endless Loop list, call it “Endless loop”
b. Set this workflow to be started manually and to start automatically when an item is changed
c. Create 1 step for the workflow, call it “Endless Loop”
d. Create a condition – If Created By is not empty – this means the workflow will always run
e. Add a Do Calculation item, set it to Calculate Endless Loop: Counter plus 1 (output to Variable: calc), the configuration should appear as below:

f. Add an Update List Item activity, update the Delay list, Delay item, changing the value of Counter to the workflow calc variable’s value, configure the activity as shown below:
g. Add a Log to History List activity, configure the log to write “Endless Loop – Ran”
h. The complete workflow configuration should appear as below:
i. From SharePoint Designer create a workflow that is associated with the Delay list and call it “Delay”
j. Set this workflow to start automatically when a item is changed
k. Create 1 step for the workflow, call it “Delay”
l. Create a condition – If Created By is not empty
m. Add a Do Calculation item, set it to Calculate Delay:Counter plus 1 (output to Variable: calc), the configuration should appear as below:
n. Add a Pause for Duration activity, pause for 5 minute (this is only a place holder testing value that can be increased to whatever value is needed for the delay)
o. Add an Update List Item activity, update the Endless Loop list, Endless Loop item, changing the value of Counter to the workflow calc variable’s value, configure the activity as shown below:
p. Add a Log to History List activity, configure the log to write “Delay – Ran”
q. The complete workflow configuration should appear as below:
5. Test the Workflows: To test the workflow we only need to start the Endless Loop workflow from our item in the Endless Loop list. After a while we will see that the two workflows will keep initiating each other forming an endless loop.
6. Now Add Your Activity: Now you only need to add your activity to the loop, the best location being right after the Pause for Duration action in the Delay workflow. Once you add your activity here, it will run at the interval that you set in your Pause for Delay.
7. References: Use SharePoint Designer to Email Daily Task Reminders
2. Scenario: In our simple scenario we want our example workflow to run every five minutes. Now, given this is not a very realistic scenario, most users will want the workflow to run once a day, week, month, etc. However, once we have designed the mechanism to run a workflow every five minutes, it’s a simple matter of changing the pause delay to increase that to any duration needed.
3. Explanation: Essentially we will have two workflows, running on two separate lists; one workflow, “Endless Loop”, creates an endless loop and the other workflow, “Delay”, one creates a delay or timer. The logic for the Endless Loop workflow looks like this:
a. Calculate (increment) the loop counter
b. Update the item in the Delay workflow with the counter value
c. Log the Event
The logic for the Delay workflow looks like this:
a. Calculate (increment) the loop counter
b. Pause (Delay) for a period of time
c. Update the item in the Loop workflow with the counter value
4. Overview: To build a Workflow Timer we will need two SharePoint lists, and two SharePoint workflows. The first list will contain our Loop workflow, and the second list will contain our Delay workflow. For obvious reasons we will call the first list “Endless Loop” and the second list “Delay”. To create the lists follow these steps:
a. From the SharePoint site create a custom list, call it “Endless Loop”
b. From the Loop list add a custom Number column, call it “Counter”, set it’s number of decimal places to 0 and it’s default value to 1, finally add it to the default view
c. Create 1 item in the list and title it Endless Loop
d. From the SharePoint site create a custom list, call it “Delay”
e. From the Delay list add a custom Number column, call it “Counter”, set it’s number of decimal places to 0 and it’s default value to 1, finally add it to the default view
f. Create 1 item in the list and title it Delay
To create the workflows for these lists follow these steps:
a. From SharePoint Designer create a workflow that is associated with the Endless Loop list, call it “Endless loop”
b. Set this workflow to be started manually and to start automatically when an item is changed
c. Create 1 step for the workflow, call it “Endless Loop”
d. Create a condition – If Created By is not empty – this means the workflow will always run
e. Add a Do Calculation item, set it to Calculate Endless Loop: Counter plus 1 (output to Variable: calc), the configuration should appear as below:
f. Add an Update List Item activity, update the Delay list, Delay item, changing the value of Counter to the workflow calc variable’s value, configure the activity as shown below:
g. Add a Log to History List activity, configure the log to write “Endless Loop – Ran”
h. The complete workflow configuration should appear as below:
i. From SharePoint Designer create a workflow that is associated with the Delay list and call it “Delay”
j. Set this workflow to start automatically when a item is changed
k. Create 1 step for the workflow, call it “Delay”
l. Create a condition – If Created By is not empty
m. Add a Do Calculation item, set it to Calculate Delay:Counter plus 1 (output to Variable: calc), the configuration should appear as below:
n. Add a Pause for Duration activity, pause for 5 minute (this is only a place holder testing value that can be increased to whatever value is needed for the delay)
o. Add an Update List Item activity, update the Endless Loop list, Endless Loop item, changing the value of Counter to the workflow calc variable’s value, configure the activity as shown below:
p. Add a Log to History List activity, configure the log to write “Delay – Ran”
q. The complete workflow configuration should appear as below:
5. Test the Workflows: To test the workflow we only need to start the Endless Loop workflow from our item in the Endless Loop list. After a while we will see that the two workflows will keep initiating each other forming an endless loop.
6. Now Add Your Activity: Now you only need to add your activity to the loop, the best location being right after the Pause for Duration action in the Delay workflow. Once you add your activity here, it will run at the interval that you set in your Pause for Delay.
7. References: Use SharePoint Designer to Email Daily Task Reminders