I have a workflow running that assigns a task to multiple people. First to respond gets it - other person is notified they are no longer needed. In an effort to spread the workload evenly, I would prefer to assign the task via round robin (using a group of 4+ people) rather than whoever gets to it first. I've seen some SPD workflows set up to do this, but can I do it in Nintex?
(the question form made me choose a space... none seemed appropriate so I chose Dev Talk. Not sure that's the right space either?)
I am interpreting your question to be how or where do I maintain the list of available users/groups for task assignment in question.... I would maintain that list of names however necessary to make the workflow work. I imagine it would be a separate SP list that could also be edited to show availability of the resources. [Available column: choices - yes/no]
yes, that's what I've asked for.
having the set of users in a list sounds to me to be the best option for this purpose.
could you estimate how many people is going to be chosen from?
ok, but right now I'm not sure if I understood your original requirement correctly.
do you want to assign the task to a single person out of those 4?
I understood it up to now, that you have some (bigger) set of users (eg. 20) and you want to assign every task to 4 of them, and with every new task another quartet should be chosen. now I guess this was wrong assumption.
ok, that makes things much easier.
I would suggest to do it as follows.
(let's refer to the list that will maintain users/task assignees as USER list. let's refer to the list that will maintian all the tasks as TASK list)
- add a column to the USER list that will drive in the order in which they are pick to get task assigned, let name it SEQUENCE, and configure some sequence value for each and every user.
- add query list action to the workflow running on TASK list. the action will read in all 'available' USERs
configure it to query USER list
set condition to AVAILABLE = YES
set sort by SEQUENCE
configure to return SEQUENCE and user fields
configure to save returned results to collection variables (eg. collSequenceIDs, collUsers)
- add collection operation to the workflow running on TASK list
configure target colletion to collSequnceIDs
configure to return Count
configure some numeric variable to store result to (eg. cnt)
- add math action to the workflow running on TASK list.
configure it to calculate MOD out of TASK item ID and cnt (number of available users). calculated modulo will ensure that with every new task you will pick next user
- add another collection operation to the workflow running on TASK list
set target collection to collUsers
configure it to Get element from collection
set index to above calulated modulo
==> the action will return you the user to assign current task to