Updated: Aug. 2, 2017
Please note that Scheduled workflows feature has been released as of July 2017. Please see Tee Up Your Work - Scheduled Workflows Are Available for Office 365! for more details on this fix.
As many of you are aware our product teams are working hard in extending the capabilities of Nintex Workflow for Office 365. Some features might currently be missing but will certainly make it to the product soon. In the meanwhile, most of the features you might miss can still be implemented, simply by thinking a bit outside the box.
One of these features is scheduled workflows. In this post I will show you how you can use existing workflow actions, SharePoint features and quite simple logic to allow workflows to run on a schedule power users can easily maintain themselves.
What do we need?
I provided the templates for the following as part of this post. Feel free to download and use them.
A SharePoint List
The list will contain one item per workflow you want to schedule. Each item will represent one scheduled workflow and consist of the following columns:
- Workflow Title - The name of the scheduled workflow;
- Schedule Frequency - Specifies the time in-between workflow runs. This is the number of minutes. That can also be changed to hours or days if you need to, by simply changing the corresponding workflow action.
- Schedule End Date - Sometimes you want to run a scheduled workflow only to a certain date. Note that the workflow will run at least once on the specified date. This field is optional.
The provided workflow template can be used as a base for each scheduled workflow you want to create. This is the minimum functionality required to mimic a scheduled workflow. What happens in the workflow? Lets dissect the following screenshot:
- Loop until Schedule End Date - This is using the Loop with Condition action which will continue to loop until today's date reaches the specified Schedule End Date which is part of each element's metadata.
- Set dateToday to today's date - This sets a variable, called dateToday, to today's date
- Pause for specified frequency - This uses the Pause for Duration action to pause the workflow for the number of minutes specified in the item's metadata
- The red rectangle - This is where your actual workflow logic goes. The rest has to stay as is, but this is where you build the logic for your scheduled workflow.
How do I schedule the workflow now?
To get started, create a list based on the list template in the .zip archive.
Next you need to build your scheduled workflow within the Scheduled Workflow list. For that use the provided workflow template. Set it to a manual start as you only want it to start once the schedule is in place.
After publishing the workflow, go to the list and create an item. Provide details as required and then manually start your workflow on that one list item. The workflow will then run on this item on the specified schedule.
Obviously this is a sequential workflow, but the logic will also work in a state machine. When I have more time, I will provide a template for that too.
Feel free to provide feedback and comment on the approach. Hope this helps everyone who needs scheduled workflows in the interim.