Skills Based Support Case Routing

Key Information

The challenge is finished.
Show Deadlines

Challenge Overview

Spin up a new DE org and make the following simple modifications:

Create the following custom objects:

��- Name (example:��NA, EMEA, etc)

Region_User__c (simply determines what users are in a specific region)
��- Region__c (master-detail to region__c)
��- User__c (lookup to user)

��- Name (example: OS Reload, RAM Upgrade, Anti-Virus installation, etc.)

��- Product_Feature__c (look to product_feature__c)
��- User__c (lookup to user)
��- Level__c (example:��Beginner, Intermediate, Expert and Super Expert)

��- Skill__c (lookup to skill__c)
��- Available__c (boolean)

Add the following fields to standard objects:

��- Region__c (lookup to region__c)
��- Product_Feature__c (lookup to product_feature__c)��

��- Available_For_Support__c (boolean)

Users will be able to create/edit these records through the standard salesforce.com interface. However, create a Visualforce page that defaults to the current user (displays as a tab but you can easily switch to a different user) that displays and allows them to edit the Availability:

User-added image

Key features of the application:

1.��A user may be assigned to work multiple regions.
2.��A user should not be allowed to have more than one Skill associated to the same product feature.
3.��Users should be able to specify availability overall as well as availability for a specific Skill level.
4.��If a user's overall availability (User.Available_for_Support__c) is set to false then no cases should be assigned to them.
5.��If a user's availability on a specific Skill is set to false then no cases of that Skill level should be assigned to them. However, they should be able to receive cases in other Skill levels that they are set to available.
Round Robin assignment of cases:

1. Round Robin assignment should look at the current number of cases of a particular Skill currently opened and assigned to a user and give to the Technician with the smallest amount.
2. Round Robin assignment should take into account the Priority of the case. ��This should be configurable through a mapping table to setup assignments such as these:
��-- If a case is a Critical Priority it should try to assign to the technician with the highest Skill level available.
��-- If a case has a High Priority then it should assign to the agent who is most available. (Has the least amount of cases assigned to them overall. In the even of a tie, where two users have the same amount of cases assigned the assignment should go to the user who received assignment )
��-- If a case has a Medium Priority then it should assign to the agent who is most available for the Skill of the case at the Beginner Level.
3. All cases that have an active entitlement record and a product feature will to go through the this routing. if not, it should be assigned to a queue (that is configurable).

Must have 90%+ test coverage.


Topcoder will compensate members in accordance with our standard payment policies, unless otherwise specified in this challenge. For information on payment policies, setting up your profile to receive payments, and general payment questions, please refer to ‌Payment Policies and Instructions.


Final Review:

Community Review Board


User Sign-Off

ID: 30038355