Wednesday, July 13, 2011

Call lists: Next call determination using the call dispatcher

When implementing call lists, you can decide whether users have to select the next call themselves, or if the system determines which call is to be processed next.

Especially in B2C environments (but possibly also in B2B), having the system determine the next call automatically is logical, why would you allow the agent to manually choose the next call?

Another very good reason to use the call dispatcher is if you have multiple agents working on the same list at the same time. If you would have the agents select the next call themselves, chances are pretty big, the selected call has just also been selected by another agent, and is thus already locked. Using the call dispatcher will solve this problem as well, as the system will not determine a call that has already been assigned to another agent.

So, what does it do?
The call dispatcher is a simple piece of ABAP, that sorts the call list (based on the criteria you have customized), and then selects the next available call and assigns it to the agent. That's all.

In the IMG, go to SAP Customizing Implementation Guide --> Customer Relationship Management --> Interaction Center Webclient --> Additional Functions --> Call Lists.
Here, you will find the options Define Call List Dispatching Components and Define Call List Dispatching Component Profiles.
Define Call List Dispatching Components
This option allows you to implement the sort order of the call list.
You can choose to sort in attributes of the Business Partner, the Call or the Business Transaction. A good sort order would for instance be:
Call - Call Time - Ascending
Call - Complete By - Descending
Call - PID - Ascending

Sorting in this order, will make sure the the calls that have had a try the longest time ago will go first. It also allows you to first try newly created calls (as the call time will be 00.00.0000) before starting with calls that are to be processed for a second time.

Another good sort criteria could be on the customer value, for instance call your gold customers first.

I recommend to always use Call Time as the first sorting criteria, or you might end up calling your gold customers every 2 minutes if they don't pick up the phone until the max number of calls has been reached...

Define Call List Dispatching Component Profiles
A Call List Dispatching Component Profile actually holds the class that is used to determine the next call. Standard SAP uses class CL_CLM_INTERACTION_DISPATCHER, but you can override this here, and for instance implement your own methods to determine the next call.
What you could do for instance in this class is to delete all calls from the selection where 'Call Time = today'. This will allow you to enforce that a customer is not called twice per day. This makes perfect sense especially if the call list is almost empty.

You can also implement that calls that are not yet to be processed (having a start date in the future) will not be shown in the list, or will not be selected). This in combination with automatic rescheduling (which is also possible from the IMG), will also allow you to implement efficient call list processing.

The call dispatcher is called when the agent clicks on the Next Call button in the interaction center.
Next week I will show how to create one button to both end the current interaction and select the next call.