Default Outbound Callback subroutines

IVR Routing includes the following three subroutines for Outbound callbacks:

These subroutines are used by the Default Callback Outbound subroutine to offer callback requests to agents and manage outbound calls to customers. The three subroutines manage the state of the callback request, setting the frequency and number of times a callback request is offered to a queue. This prevents an unsuccessful callback request from being offered repeatedly. Using the Save Callback activities located throughout the subroutine at the various endpoints, callback requests are saved back to the SQL database with reason codes that inform the system whether or not the callback request is complete or if it needs to be requeued.

The subroutines handle the offering of the callback request to agents as well as managing the outbound call to the customer.

The subroutines are functionally identical with the exception of the Menu option for Branch 1. The voice callback enables the agent to listen to any message left by the customer when they made their voice callback request. The web callback enables the contact center agent to hear a text-to-speech reading of the customer’s submitted name. The abandon callback has no option for Branch 1.

If you are migrating from Version 6.0.x to Version 9.0, the Default Outbound Callback subroutines replace the voice, web, and abandon Callback Plan’s Routing Rules and Agent options. For guidance as to which activities replace which elements of the callback plans, consult the notes placed throughout the following description.

Description

The first step in this subroutine is a Set Variable activity. This activity is configured with the maximum number of callback attempts and the interval for the next attempt at making this callback request, enabling you to control the frequency and number of times a callback will be offered to agents. The number of attempts is added to the callback request’s SQL record, depending upon which Save Callback activity reasons are applied to the callback request as it is routed through the subroutine. For information on configuring the Set Variable activity, see "Configuring the Set Variables activity".

Next in the subroutine sequence is a Subroutine activity. This subroutine is associated to the Migrated Queue Callback Workflow subroutine, which is populated with your pre-7.0 callback configuration. If you are not upgrading from a pre-7.0 version of Mi Contact Center Business, this activity can be deleted. For information on configuring a subroutine activity, see "Configuring the Subroutine activity.

If this is the Default Abandon Callback Subroutine, the next step is a Queue activity with two branches: Agents Greater than 0 and No Agents Available. This activity checks to see if there are any available agents in the destination queue. If there are no agents, the subroutine routes down the No Agents Available branch. This branch contains a Save Callback activity that saves the callback with the reason 'Requeued - Queue conditions did not pass'. The branch continues to a Hang Up activity that ends the subroutine. If the queue has available agents, the subroutine routes down the Agents Greater than 0 branch. The first activity of this branch is a Save Callback activity that saves the callback with the In Progress - Dialing agent reason. The branch then continues to a Make Call activity.

If this is the Default Voice or Email Callback Subroutine, the next step of the subroutine is a Save Callback activity. This activity saves the callback with the reason In Progress - Dialing agent.

The subroutine continues to a Make Call activity. This submits the callback request to the destination set in the <<CallbackDestination>> variable, usually the queue from which the caller made the callback request. Calls submitted to the queue remain in the queue for the time set in the Timeout duration property before following the Timeout branch. By default, the Timeout duration is set to 30 minutes. For details on configuring Make Call activity, see "Configuring the Make Call activity".

Note:

The destination of the Make Call activity can be changed if there is an alternate destination, other than the queue of origin, from which you want to handle callback requests. For information on configuring the Make Call activity's destinations, see "Configuring the Make Call activity".

The Make Call activity has five branches: Success, No Answer, Destination Busy, Invalid Destination, and Failure. Branches with a Save Callback Request activity are: No Answer Timeout, Destination Busy, Invalid Destination, and Failure.

Callback requests are routed to the No Answer branch when the timeout duration expires, where the Save Callback Request activity saves the callback request to SQL with the reason ‘Requeued – Agent did not answer’. This enables the outbound ports to re-offer it to the queue. If the destination that the callback request was routed to is busy, the callback request is sent to the Destination Busy branch. This branch’s Save Callback Request activity saves the callback request to SQL with the reason ‘Requeued – Agent was Busy’, which enables the outbound ports to re-offer it to the queue. If the destination in the <<CallbackDestination>> variable is invalid, the callback request is routed to the Invalid Destination branch. This branch’s Save Callback Request saves the callback request to SQL with the reason ‘Completed – Invalid Agent Destination’, which prevents the callback from being re-offered to the queue. If there is a failure to queue the callback request, the callback request is routed to the Failure branch. This branch’s Save Callback Request saves the callback request to SQL with the reason ‘Requeued – PBX connection was lost’, which enables the outbound ports to re-offer it to the queue.

Note: If you are migrating from Version 6.0.x to Version 9.0, the Make Call activity's timeout duration corresponds to 'No answer timeout (secs)' field from the 'Agent Options' tab of the Callback Plans.

If the destination is valid and the callback request does not timeout, the request is routed through the Success branch and offered to the queue. The Success branch contains a Save Callback activity, which saves the callback with the 'In Progress - Agent' reason.

When the contact center agent answers the callback request, they are connected to the Menu activity in the subroutine. In the Voice and Web callback subroutines, the Menu activity plays an instruction prompt that tells the agent 'To listen to the caller’s message, press 1. To place this call, press 2. To requeue this request, press 3. To reject this request, press 4. To hear these options again, press 5.' In the Abandon callback subroutine, the Menu activity plays an instruction prompt that tells the agent 'To place this call, press 2. To requeue this request, press 3. To reject this request, press 4. To hear these options again, press 5.' The Menu activity has one branch for each menu option, as well as branches for Timeout, No Match, and Failure.

Note: If you are migrating from Version 6.0.x to Version 7.1+, the Menu activity's prompts and branches correspond to the options in the 'Digit Menu' section of the 'Agent Options' tab of the Callback Plans.

In the Voice callback subroutine, 1 – Play Customers Message enables the employee handling the callback request to listen to the recorded message the customer left. The first activity of 1 – Play Customers Message is a Play activity that is configured to play to the agent the .wav file of the message the customer recorded with their callback request, stored in the <<CallbackClientRecording>> variable. The next activity in this branch is a Go To activity that returns the agent to the start of the Menu activity.

In the Web callback subroutine, 1 – Play Customers Message enables the employee handling the callback request to listen to a text-to-speech reading of the customer’s name. The first activity of 1 – Play Customers Message is a Play activity that is configured to play a text-to-speech reading of the customer’s name. After playing this, the branch continues to a Go To activity that returns the agent to the start of the Menu activity.

Note: In the Abandon callback subroutine, there is no option for 1 – Play Customers Message.

The 2 – Call the Customer Back enables the employee to callback the customer who made the callback request. The first activity in this branch is a Save Callback activity that saves the callback with the 'In Progress - Establishing connection to client'. The next activity in this branch is a Conference activity that is configured to call the number the customer left when making their callback request, stored in the <<CallbackClientNumber>> variable. This activity has seven branches Success, Client Disconnect, Agent Disconnect, Destination Busy, Timeout, Invalid, and Failure.

Note: If you are migrating from Version 6.0.x to Version 9.0, the Conference activity's timeout duration corresponds with the 'No answer client timeout (secs)' field in the 'Routing Rules' tab of the Callback Plans.

If the agent’s call is successful, it is routed to the Success branch of the Conference activity where a Play activity plays the following message 'Please wait while the call is established.' The agent is then connected to the caller. When the agent is finished with the callback, the subroutine continues to a Save Callback activity that saves the reason 'Completed', indicating that the request is complete and should no longer be offered to the queue.

If the customer hangs up on the callback attempt from the agent, the callback request is routed to the Client Disconnect branch of the Conference activity. This branch contains a Play activity that informs the agent that the conference has failed and the customer is not available and a Save Callback activity that saves the callback request with the reason ‘Requeued – Client did not answer’, which enables the outbound ports to re-offer it to the queue. The client disconnect is counted as an attempt for a callback, increasing the saved number of attempts for the callback by 1.

If the agent hangs up on the callback attempt, the callback request is routed to the Agent Disconnect branch of the Conference activity. The Agent Disconnect branch contains a Save Callback activity that saves the callback request with the reason ‘Requeued – Agent did not answer’. This sets the callback request to be requeued to be tried again later and does not count as a callback attempt in the callback request’s record.

If the callback request rings on the customer’s phone for the configured Timeout duration, it is routed down the Timeout branch of the Conference activity. The Timeout branch contains a Play activity that informs the agent that the conference has failed and the customer is not available and a Save Callback activity that saves the callback request with the reason ‘Requeued – Client did not answer’. This sets the callback request to be requeued again later and does not count as a callback attempt in the callback request’s record.

If the customer’s phone is busy, the callback request is routed down the Destination Busy branch of the Conference activity. This branch contains a Play activity that informs the agent that the conference has failed and the customer is not available and a Save Callback activity saves the callback request with the reason ‘Requeued – Client was busy’, which is counted as a callback attempt.

If the callback request included an invalid phone number for the customer, the callback request is routed to the Invalid branch of the Conference activity. This branch contains a Play activity that informs the agent that the conference has failed and the customer is not available and a Save Callback activity saves the callback request with the reason ‘Completed – Invalid Client Destination’, which resolves the callback request and ensures it will no longer be offered to the queue.

If a failure occurs, the callback request is routed to the Failure branch of the Conference activity. This branch contains a Play activity that informs the agent that the conference has failed and the customer is not available and a Save Callback activity saves the callback request with the reason ‘Requeued – Failed to connect to agent or queue’, which does not count as a callback attempt.

The 3 - Requeue the Callback branch of the Menu activity requeues the callback request, offering it to the queue again after the retry interval duration expires. This branch contains a Save Callback activity that saves the callback request with the reason ‘Requeued – By an agent’, which ensures it is re-offered to the queue.

The 4 – Reject the Callback branch of the Menu activity rejects the callback and marks it as completed so it is no longer offered to the queue. This branch contains a Save Callback activity that saves the callback request with the reason ‘Completed – Rejected by agent’, which completes the callback request.

The 5 – Hear the Options Again branch enables the agent to listen to the Menu options again. This branch contains a Go To activity that sends the agent back to the start of the Menu activity in the subroutine.

If the agent does not choose an option after 5 seconds, they are routed down the Timeout branch. This branch contains a Go To activity that sends the agent back to the start of the Menu activity in the subroutine.

If an agent pushes a number that is not programmed in the menu, they are routed down the Invalid branch. This branch contains a Go To activity that routes the agent back to the start of the Menu activity in the subroutine.

The Failure branch of the Menu activity contains a Hang Up activity. The agent is routed to this branch if the Menu activity times out three times. If the agent is routed to this branch, the callback attempt is deleted from the system.