Dynamic Prompts

Dynamic prompts are voice messages that tell callers numeric information about the current functions of the contact center, or a specific queue, such as number of agents serving, or number of calls in a queue, and so on. Information originates from CEM Server, and the IVRTalk component takes care of formulating numeric information dynamically in appropriate form on all supported languages.

As prompts consist of prerecorded voice messages, pauses, and dynamically formed numeric information, they are created as multiple-step prompts, see the System Configurator document and Prompt Management. Typically these prompts have the type In Queue Message.

Calculation of Long-Term and Average Waiting Time

Note:
  • The waiting time that is told for a caller in a prompt where the action Current Average Waiting Time or Long Term Waiting Time is used is the estimated remaining waiting time for that caller. It is the calculated waiting time minus the waiting time the caller has already waited.

  • If there are no calls in the queue, the Estimated Waiting Time played by the prompt is the Max. Waiting Time of Queue.

We recommend using the long-term average waiting time in the queue prompts, as it is continuously updated. This algorithm adapts better to changing conditions, but might give more indeterministic results. Both algorithms save data on the file so restarting the CEM server has no effect. If the process is moved to the different server instance, it is possible that there is no up-to-date data available.

The long-term waiting time (also Learned Waiting Time) algorithm uses multidimensional array per queue for storing the measurements. The estimation is based on the following variables:

  • Ratio of number of agents serving in the queue versus number of calls in the queue, both at the moment when the call is added into queue.

  • Ratio of number of all agents serving in the whole call center application versus number of calls (including call outs) in the call center application both at the moment when the call is added into queue.

  • Calculated value based on the call priority and age of the call when it is added into the queue.

Once a call is allocated to an agent, it’s real waiting time in the queue is added as latest into the 10 values, and the oldest one is removed. The average is counted from these 10 values, and it is continuously updated.

It is also possible to add other queues in the calculation for a queue in System Configurator Queue Management > Contact Management > Queues Used for Long-Term Waiting Time.

The average waiting time (also called estimated waiting time) is an average of waiting times of the calls that have been already connected to agents, and the calls in queue, which have waiting times longer than the average waiting time of the connected calls. Average waiting time is better suited in IVR decision making when the queue is allocated over its capacity. If the queue that is queried has no data, the entire contact center is used for estimation.

If there are 10 or less calls in the queue, the average waiting time is recalculated each time it is queried. If there are more than 10 calls, average waiting time is recalculated when the amount of calls or free agents in the queue has changed by at least 10, or the time elapsed since the previous calculation exceeds the limit that varies between 3 and 60 seconds depending on the number of calls in the queue. In the IVR management, queue queries to average waiting time (or estimated waiting time) use 5 seconds cache; if a new query comes in less than 5 seconds after the previous one, the value calculated for the previous one is used.

Calculation of In Queue Position

The position in a queue is calculated with the following method:

([local que pos]/[local que len])*[total que len]

However, calculating an absolute queue position for a call is not possible in multi-CEM environment since CEMs know only the number of calls in a queue on other CEM instances and no other information about them since specific information about the calls in these queues is not exchanged between CEMs. The reasoning behind this implementation is performance and optimization. But caching of a caller’s best queue position ensures that callers will not hear a queue position that has increased from their previous position.