I am trying to create a site workflow that runs on multiple lists once a week and sends notifications to whoever the item is assigned to, reminding them they have Open or Past Due items that require their attention. I can figure out the logic to create this in a List Workflow but because of the amount of items in each list I would really prefer not to have to manually start the workflow on every possible item. I know there is a way to schedule workflows with Site Workflows but I am unable to figure out the logic necessary to set the condition to capture the data for all Open or Past Due items.
Solved! Go to Solution.
To accomplish this you'll need to query the list with the "Query List" action. Choose "Select Items only when the following is true". Set where the field is equal to Past Due, then add another filter rule OR field is equal to Open. Then choose the columns you want to select, which seems to be the user assigned to the item. This will run through the whole list and grab all the items and put them in a collection variable.
Then create a for each action choose the collection variable. The output value should be a text variable, this will be the single output from the collection. Within the for each, add a notification action and under the To section put the text variable from the for each.
Thank you so much Chadd. I am so close with this now. It all makes sense to me until after I "sort" based on the column "Assigned To" then what do I select as the output?
The Sort portion shouldn't really matter since you plan on sending a notification to all of the people returned in the collection variable. The main portions are the filter, where you want it to be equal to "Past Due" or "Open" - Then make sure the field you are returning in the assigned to field. Call the variable colAssignedTo - within that variable will be a list like this:
Try creating a Workflow History action and assign that col variable to it, that way you can see if it's returning the right information.
If it is, then create a for each like I mentioned before.
So I was able to get this to work exactly as you said but I was wondering, is there is a way to send only one notification as opposed to a separate notification for every item? People are receiving 12-15 emails at once about Open or Past Due items when what I want to do is just send on notification with a link to a view that shows only these items. I am not sure if that is possible but I appreciate your help very much.
So you're saying that one person has multiple open/past due items? In that case when you query the list, it's returning all of those duplicates. Before running the for each, you need to add the action "Remove Duplicates From Collection" - You're on O365 right? Within that action, add the collection variable from the query list action, then use the same collection variable as the output. You can leave the for each unchanged.
I am using SharePoint 2013. If I am understanding you correctly, I would add a "collection operation" that would remove all duplicates and leave the "for each" unchanged. This would deliver only one e-mail to each person collected from the list query and I could send a generic email that would send them to a personal view with all open or past due items?
Correct! I don't have 2013 in front of me, but that operation is right.
More info on the Collection Operation and what each action in it does.
Let me know how it works out for you!