Use Case: We have a customer who runs a large call centre. We are importing emails as Forms Tasks and allocating these to teams. We would like to use the round robin task allocation feature, however there is a big challenge. Tasks shouldn't be assigned to users if they're not in office, on lunch or in meetings etc. Using Round robin, there is no "out of the box" method to manage a user's "availability status". The reporting records immediately when a user is assigned a task and measures how long it has taken to complete that task upon assignment. A typical call centre KPI is to measure how many tasks were completed and how long they took. It's an inaccurate measurement if the task is assigned immediately to a user when they were not available, even though they are a team member in the team.
Team Managers could manually manage the Team Members configuration and make updates to the Team membership throughout the day to ensure tasks are not assigned to Team Members who are not available. This would add a lot of manual administration for the Team Manager and not very practical.
There's always the question that comes up regarding users who go on leave and how this could be managed in Forms. A feature that allows users to set their own "Availability Status" and exposing this in the process modeler for task assignment would be great. For example, user is logged into Forms and updates their availability status to "Idle", meaning they can receive tasks. They could then change this to "Out of Office" and tasks would skip them when round robin kicks in. If Team Manager tries to assign task to this user, upon selecting them for assignment, user status will be shown to allow Team Manager to choose someone else. User returns and simply sets status back to "Idle" and tasks immediately start assigning again at next round robin.
The concept is similar to digital desk phones that allow users to set their phone status in order to prevent receiving calls when they are not at their desks and it gets forwarded to other office members in the same phone group.
In the meantime, I plan on building a "dynamic team membership" solution whereby I will probably create a "hack" to automatically add and remove team members based on them setting their "availability status" via another form. This way, round robin works as is and won't assign to user if they're not in the team at that moment in time.