WebEx Contact Center and Mindful integration guide
The Mindful integration with the Webex Contact Center platform uses PSTN-based communication without the need for custom development.
Overview
This guide covers the following steps to set up your Webex Contact Center integration with Mindful:
Modify the inbound flow to use Mindful integration logic
Check EWT
Check agent availability
Check Mindful status
Play EWT announcement
Play callback offer and collect DTMF digit
(Optional) Post data to Mindful Datastore
Transfer call to Mindful
Create a callback-return flow
(Optional) Retrieve data from Mindful Datastore
Send call to agent/contact-queue at higher priority than normal inbound calls
Create a callback-return Channel and Entry Point
Keep the following points in mind as you work through this guide:
This guide assumes that a Mindful Organization, Call Targets, Scheduler Widgets, and (optional) Datastore templates have already been configured.
The offer for a callback is made in the Webex Contact Center inbound flow.
This guide is not intended as a configuration guide for a Webex environment. For help with Webex deployments and configuration, consult the official Webex documentation.
This guide uses standard (PSTN) telephony between each platform.
For further validation of additional integration options, contact a Mindful representative.
The configuration in this guide is an example and may be used as a template for integrating with Mindful. Any sample code in this guide should not be considered ready for production.
Components and call flows
Definitions and acronyms
Term | Description |
---|---|
ANI (or CLI) | Automatic Number Identification – this is the number of the caller in a voice call. Also known as CLI (calling line identification) in some markets. |
API | Application Programming Interface – a set of functions that allows applications to perform requests against the application providing the APIs. |
DID | Direct Inward Dialing phone number |
DNIS | Dialed Number Identification Service – this is the number of the callee (typically the number that is being dialed) in a voice call. |
EWT | Estimated Wait Time, as calculated by WebEx CC against a ring group. |
Mindful Callback | Part of the Mindful platform that provides the capability to request and receive callbacks. |
Mindful Datastore | This service adds the capability to store and retrieve custom data when registering a callback in Mindful Callback via HTTPS API POST and GET calls. |
Mindful Scheduler | A feature of Mindful Callback that allows callbacks to be requested via API from third party applications/platforms via widgets generated against call targets. |
PSTN | PSTN is the traditional circuit-switched telephone network that comprises all the world's telephone networks operated by local carriers. |
TFN | Toll-free number |
Inbound call flow
A call arrives in WebEx Contact Center.
The DID is matched to the inbound flow.
After checking Mindful status and EWT, a callback offer is presented in Webex.
The inbound flow optionally posts required user data to the Mindful Datastore using a custom action.
Note that if one of the below conditions occur, the call will queue to the agents/QueueContact at normal priority instead of being transferred to Mindful:
The Mindful availability check fails
The EWT is below the configured threshold
The caller declines the callback offer
There is another error in the flow (such as a Run Function or Execute Action failure)
The call is then transferred to Mindful.
This diagram shows a callback being requested via an inbound voice call into Mindful. However, callbacks may also be requested using Mindful Scheduler APIs, with associated user data sent to Mindful Datastore via API. Regardless of which method is used to create the callback, the callback flow will be the same.
Callback-return flow
Mindful dials the caller's callback number.
The caller answers and presses DTMF 1 to confirm they wish to speak to an agent.
Mindful dials the contact center number for callbacks.
The DID is matched to a callback-return flow.
The callback-return flow optionally requests the user data from the Mindful Datastore using a custom action, with the caller's ANI passed in as the search key.
The call queues for an agent/Contact-Queue at higher priority than normal inbound calls.
This shows a typical customer-first call flow. Mindful also supports an agent-first call flow in which the agent leg is initiated first. The configuration and flows are the same regardless of which method is used.
Configure the inbound flow
The inbound flow is typically a modification to the existing flow used to process inbound calls and queue them to a QueueContact. This flow adds functionality to:
Check the EWT to make sure it is above a defined threshold before offering the caller the callback option.
Play the EWT phrase to provide callers with an expectation to help them make their decision.
Verify that Mindful is available and ready to process callback requests.
(Optional) Post data to Mindful Datastore.
Transfer the call to Mindful.
Following are the key steps broken out (this assumes that business hours will have already been checked in the existing script).
Retrieve Mindful status and offer decision
This step executes an HTTP GET Request to Mindful Scheduler to confirm that the Call Target is in a condition to offer callbacks and return the current Estimated Callback Time (ECBT) based on the rate of answer calculated by Mindful. A widget_state of "offer_asap_callback" or "offer_callback" should be used to determine which path to take in the decision block later in the flow.
The required parameters for the HTTP Request block are:
Request URL "https://<organizationID>.scheduler-rt.getmindful.com/api/widget/<widgetID>"
Output variables for offerResult and mindfulEWT.
A successful API response should appear as follows:
{
"widget_state": "offer_asap_callback",
"message": "We can call you in less than 1 minute.",
"offer_asap": true,
"offer_scheduled": false,
"ewt": 10,
"min_reported_ewt": null,
"max_reported_ewt": null,
"ewt_lower_range": null,
"ewt_upper_range": null,
"scheduled_timeslots": []
}
Retrieve Webex EWT and agent availability
The next steps retrieve the call center queue statistics Current Queue EWT and Current Agent Availability.
Check EWT
Check agent availability
Decision for EWT
With the EWT and agent availability known, the next step is to decide whether to offer a callback or not. If the EWT is greater than a defined threshold, the call proceeds to the Mindful condition blocks. Otherwise, the call proceeds to the QueueContact block to await an agent
Decision for agent availability
If the agent-availability check returns "True", the call proceeds to the QueueContact block to await an agent. Otherwise, the call proceeds to the Mindful condition blocks.
Decide whether to offer a callback or queue for an agent
The next steps make decisions based on the results returned by the Retrieve Widget Status API endpoint.
Status result
If the API returns a 200 response, the call will take the "True" path and proceed to the next condition block. Otherwise, the call will proceed to the QueueContact block for an agent.
Offer decision
If the offerResult variable was set to "True" after the response body was parsed and assigned to the respective variables earlier, the call will take the "True" path and proceed to the Menu block to offer a callback. Otherwise, the call will proceed to the QueueContact block for the next available agent.
Make the offer
The next step will present the option to register a callback or wait on hold. In this example, we used an online resource to create a prompt (OfferPrompt.wav) and upload it to Webex at Resources > Audio Files.
Callback menu
Callers will be offered a callback if they press 1. Any other option or a failure to respond will send them to the QueueContact block for the next available agent.
Post to Mindful Datastore
The next step executes a POST request to Mindful Datastore to retain any attached data that will be needed on the return call.
The required parameters for the HTTP Request block are:
The URL https://api-ds.getmindful.com/api/v1/data_sets
Authorization and Bearer Token, Key and Value.
Request Body (JSON)
HTTP Request DS_Post
Example request body:
{
"customer_contact_number":"{{NewPhoneContact.ANI}}",
"data_values":{
"FirstName":"{{firstName}}",
"LastName":"{{lastName}}",
"AccNum":"{{accNum}}",
"CallId":"{{NewPhoneContact.interactionId}}"
}
}
Transfer to Mindful
The final step will transfer the call to a Mindful Call Target.
Configure the callback return flow
The callback return flow receives callbacks from Mindful, obtains stored data from Mindful Datastore, and routes calls to a QueueContact block at top priority (P1).
Retrieve call data from Mindful Datastore
The first step sends a GET request to the Datastore to obtain anything that was stored by the inbound flow.
The required parameter for the HTTP Request block are:
The URL https://api-ds.getmindful.com/api/v1/data_sets
Authorization and Bearer Token, Key and Value.
Request Body (JSON)
Request URL and Headers
Parse settings
Queue the call at the highest priority
In the QueueContact block, enable Set Contact Priority and set the Static Priority Value to "P1 (Priority 1)".
Configure a return channel and entry point
You will need a Return Channel and Entry Point for the callback return flow.
Return Channel
Configure a new channel at Contact Center > Channels for the callback return flow. The Return Flow created in the previous section should be assigned to the Routing Flow under "Entry Point Settings". Assign an E164 number to the Support Number field and assign it as the Call Target phone number in the Mindful UI.
Entry point
In the Provisioning > Entry Point/Queues section, confirm that the previous activity in Channel configuration created an Entry Point for the Return script. If not, create a new one as shown below: