Recurring workflow design

Topics: Administration, General
Dec 11, 2014 at 2:22 PM
Is there a way to setup a recurring workflow using the existing workflow features? The use case I have in mind is appointment reminders. I'd like to be able to have a workflow run each day that sends a reminder email (and possibly do some other actions) for appointments (content items) that are scheduled for the next day.

I'm aware that I can create a module and implement a background task but I'm wondering if this can be accomplished with the out of the box workflow activities. Doing it as a workflow would provide the flexibility to easily update the process with new steps in the future.

Dec 11, 2014 at 3:28 PM
A workaround for a periodic signal is to use another dedicated workflow which simulates this activity
For the starting activity, you can create for example a content type dedicated for this purpose
Then, you create an instance of this type that you will update only once to start a continuous timer loop

Specific content type update (used once) => Exclusive branch
Exclusive branch (Done 1 )=> Timer activity (e.g one day) => loop to Exclusive branch
Exclusive branch (Done 2) => Signal activity

Update your specific content type once, but at the time you want your process to be executed every day
So, in another Workflow you can use this periodic signal as a starting activity that you can stop when you want

Note: Right now, I didn't see how to stop / restart the Timer loop itself in the 1st Workflow. Only by editing and saving it, but it's still running somewhere, you can see this in the Worflows page counters. But normally, it's not necessary to completely stop the first Workflow that only fire a signal

Note: I tried it quickly, not sure that the signal will be triggered each day at the exact same time. But, I have seen that if you stop and restart the site, the periodic signal works again automatically

For others details, see my answer on this ticket on orchardpros

Feb 19, 2015 at 6:52 AM
Hi There

Check out the following Thread.

You can implement a scheduler in workflows.