A user recently asked for help with the Round Robin Assignment app from Force.com Labs. It's not one that I was familiar with so I had to get it up and running before I could help.
The basic app is pretty simple:
* You install it for free from the AppExchange.
* It creates an Assignment Group object, a join object between Assignment Groups and Queues and a Group Member that relates to an Assignment Group.
* It also adds a field on user called "Assignment Group Active" that controls whether someone can be assigned to a record.
* Assignment is handled by triggers.
Configuration takes a few minutes to grok, but is easy once you understand the app. You still have assignment rules and those assignment rules still wind up assigning the record, in this case a Case record, to a standard Queue. However, once it's assigned to the queue, Round Robin steps in and looks for the next person in the assignment group and assigns it to them.
Works great and very easily right out of the box. The only thing I wasn't clear on right away was where to put the potential assignees, with the regular Queue or with the Assignment Group. For the record, you put them with the Assignment Group.
Once I had it up and running, I still had to troubleshoot this user's issue. What happened in their org was that all of the users in an Assignment Group unchecked "Assignment Group Active". When the trigger when to assign a new case, it didn't find anyone available, and so it left all cases assigned to the standard queue. The user's question was, how to get them to be reassigned?
It takes a couple of steps. The app only works it's magic when it sees that the Assigned To field has changed, so you have to change it. Start by identifying the Cases that need to be updated. Next, update them all to be assigned to something other than the standard Queue. Finally, re-assign them to the standard Queue. With that last step, that's when Round Robin Assignment takes over.
Overall a very useful app. It would be interesting to see how it worked if we refactored the "Assignment Group Active" flag out of the User record and into the Group Member record — that way a user could be active in one group but not another. Another interesting refactor would be to add a button that does this reassignment on command, without waiting for the Assigned To to be changed.
Let me know your experience with the app. And if you have questions, just ask.