Good day. I have a list with many columns but I have 2 columns, one called Priority and the other Status. I'll like to create a workflow that

  1. If priority is High, send an email twice a week on Mondays and Thursdays;
  2. If Priority is Medium, send an email once a week every Monday;
  3. If priority is LOW, send an email every two weeks on Mondays.

This should always be running and sending reminders until column Status is not "Completed".

Any help is really appreciated.

1 Answer 1


Your best choice would be to write a timer job. But if you can't, you could write a workflow that runs on create and on change. You would get the last modified date, pause until the day you want it send, send an email, and then restart the workflow.

To get a string representing day of week: Copy 2 characters from start of [Modified Date (as Long Date)] output to Variable: DayOfWeek (e.g. Mo, Tu, We, Th...) Then, if DayOfWeek = Mo send an email and pause (# of days depending on priority). Then restart the workflow.

Continue for each possible day of week. Wait for Status = Complete and stop the workflow.

  • Hello, Thank you very much, I wasn't able to restart the workflow automatically after the first run. I was thinking on duplicating the workflow definition and use the command "Start a List Workflow" to run a new workflow in the same item and loop until completed. Regarding the timer job you mention, how can I achieve it? Best Regards.
    – Noah
    Mar 7, 2016 at 17:50
  • I think the Start a List Workflow can be used to call the same workflow, rather calling a duplicate workflow. Timer jobs have to be developed in .NET and deployed as a farm solution. I've never written one, but there are many examples online.
    – Erin L
    Mar 7, 2016 at 17:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.