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

Note:

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

TermDescription
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.
APIApplication Programming Interface – a set of functions that allows applications to perform requests against the application providing the APIs.
DIDDirect Inward Dialing phone number
DNISDialed Number Identification Service – this is the number of the callee (typically the number that is being dialed) in a voice call.
EWTEstimated Wait Time, as calculated by WebEx CC against a ring group.
Mindful CallbackPart of the Mindful platform that provides the capability to request and receive callbacks.
Mindful DatastoreThis 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 SchedulerA feature of Mindful Callback that allows callbacks to be requested via API from third party applications/platforms via widgets generated against call targets.
PSTNPSTN is the traditional circuit-switched telephone network that comprises all the world's telephone networks operated by local carriers.
TFNToll-free number

Inbound call flow

inbound call flow
  1. A call arrives in WebEx Contact Center.

  2. The DID is matched to the inbound flow.

  3. After checking Mindful status and EWT, a callback offer is presented in Webex.

  4. The inbound flow optionally posts required user data to the Mindful Datastore using a custom action.

    1. 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)

  5. 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

callback call flow
  1. Mindful dials the caller's callback number.

    • The caller answers and presses DTMF 1 to confirm they wish to speak to an agent.

  2. Mindful dials the contact center number for callbacks.

  3. The DID is matched to a callback-return flow.

  4. 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.

  5. 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.

inbound flow diagram

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.

status request blockstatus request block

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

image of the check EWT step

Check agent availability

image of the check agent availability step

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

example expression to check EWT

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.

example expression to check agent availability

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.

example expression for the status result

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.

example expression for the status result

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.

image of the callback menu block

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

image of the DS post block

Example request body:

{
  "customer_contact_number":"{{NewPhoneContact.ANI}}",
    "data_values":{
    "FirstName":"{{firstName}}",
    "LastName":"{{lastName}}",
    "AccNum":"{{accNum}}",
    "CallId":"{{NewPhoneContact.interactionId}}"
  }
}
example expression for the DS post block

Transfer to Mindful

The final step will transfer the call to a Mindful Call Target.

image of the mindful transfer block

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).

callback call flow diagram

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

image of the DS get block

Parse settings

image of the DS get 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)".

image of the queue contact block

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.

example configuration for the callback return channel

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:

example configuration for the entry point