Overview

Flow Designer provides an interface to create real-time flows to meet your organizational requirements. Pre-defined activities related to call handling and flow control serve as building blocks for flow creation. The drag-and-drop interface of the Flow Designer provides easy configuration of the flow components. You can set the properties of each activity that influences flow execution. You can also configure variables and expressions to define flow logic.

Getting Started

Before you use Flow Designer, you must provision several entities from the Webex Contact Center Management Portal and the Control Hub. You can use these entities directly, as part of Flow Designer (for example, Queues and Audio Files), or indirectly to enable contact routing (for example, Call Distribution in Queue Routing Strategies).

You must configure the following items before you build flows in Flow Designer:

  • Entry Points

  • Queue

  • Agents

  • User Profile

  • Desktop Profile

  • Teams

  • Virtual Agent

  • Audio Files

Key Terminology

The following terms are referenced in this chapter:

  • Activity​: A single step of a flow, as represented by a node in the Flow Designer interface. For example, play a message or make an HTTP request. This is the element that is dragged and dropped by the user into a flow.

    For activity properties which are drop-down based, search filter is enabled by default. If there’s a higher number of options available in a drop-down list that is beyond the default limit, you can enter a keyword to search and choose the desired option from the autopopulated result.

  • Event​: An internal or external stimulus to the system which may cause a flow or flow path to be executed. These may be Kafka messages, external HTTP requests, user actions, etc.​ Flow Designer is an event-driven application that executes flows in response to events. If and when certain events are triggered, flows are automatically executed as configured.

  • Flow​: A user-defined sequence of activities that are executed in response to an event.

  • Link: A link is the arrow that connects one activity to another. It indicates the direction of the flow and dependency between events. To delete a link and break the connection between two activities, click on the link to reveal the delete icon, and proceed to delete the line.

Access the Flow Designer Application

Flow Designer uses Single Sign-on (SSO) using Cisco Common Identity. If you are already logged in to the Cisco Webex Control Hub or the Cisco Webex Contact Center Management Portal and when you attempt to access Flow Designer, you will automatically gain access to the application. If not, the system prompts you to enter your SSO credentials in the standard login screen.

Before you begin

To access the Flow Designer application, you must have a Premium Agent License and a user profile that has rights to edit the Flows.

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.

You can also access Flows from the Management Portal. From the Management Portal navigation bar, choose Routing Strategies > Routing Strategies > Flows.

Flow Designer Browser Requirements

The following table lists the supported browsers.

Browser

Microsoft Windows 10

Microsoft Windows 11

Mac OS X

Chromebook

Google Chrome

76.0.3809

103.0.5060.114

76.0.3809 or higher

76.0.3809 or higher

Mozilla Firefox

ESR 68 or higher ESRs

ESR V102.0 or higher ESRs

ESR 68 and higher ESRs

NA

Microsoft Edge

42.17134 or higher

103.0.1264.44 or higher

NA

NA

Chromium

NA

NA

NA

79 or higher

Configure the following browser options:

  • Enable cookies and site data.

  • Set the security level to Medium.

  • Enable Image option.

  • Disable pop-up blocker.

  • Enable JavaScript.

Flow Designer Email Requirements

Flow Designer supports the following email servers:

  • Office 365

  • Gmail

Flow Designer Layout

Activity Library

The Activity Library comprises the list of activities associated with Flow Designer. The user can drag and drop the activities to the Main Flow or Event Flows canvases to design their flows. The Activity Library has the following sections:

  • CALL HANDLING: You use Call Handling activities to build flows that handle voice interactions in the contact center. They are specific to the use case of handling calls through Interactive Voice Response (IVR) and virtual or human agents.

  • FLOW CONTROL: Flow Control activities are agnostic to Flow Type, and you use them to control the logic in the flow regardless of the use case.

You can hide and expand the Activity Library as desired to increase working space on the canvas between configurations.

Canvas, Main Flow, and Event Flows

The Canvas is the gray working space on which you drop the activities. Use the controls in the bottom-left side of the screen to move around the canvas and zoom in and zoom out. There are no constraints on the flow size or canvas usage.

Flow Designer has two tabs that allow extra canvas space:

These tabs logically separate different paths of your flow and create a more organized workspace.

Main Flow

Use the Main Flow tab to script the primary flow based on the Trigger Event defined in the Start Flow activity. In the Main Flow tab, configure the end-to-end experience for a caller, starting from the Cisco Unified IP Interactive Voice Response (IVR) menu, until opting out or wrapping up the call. The flow contains predictable steps that the system executes in a sequence.

Event Flows

At any point during the execution of the Main Flow, the system triggers events that interrupt the Main Flow. For example, when an agent answers a phone call, the caller’s experience in the queue is interrupted. If you want to define unique behavior when these events are triggered, you can script optional Event Flows. Event Flows are asynchronous to the Main Flow. You can’t predict if or when an Event Flow will be triggered. For this reason, Event Flows are optional and are intended to extend the Main Flow functionality.

You can configure multiple event handling flows in the Event Flows canvas. Each event flow must have a unique start and end, with no shared activities.

For more information on event handlers, see Events.

Zoom Toolbar

The zoom toolbar in Flow Designer has Global Properties, zoom-in, and zoom-out buttons to display the Global Properties pane, and minimize or maximize the contents in the canvas.

  • Global Properties: Click the icon to open the Global Properties pane. For more information, see Properties Pane.

  • Zoom-in: Click the icon on the toolbar. When you reach the maximum limit, the button is disabled.

  • Zoom-out: Click the icon on the toolbar. When you reach the maximum limit, the button is disabled.

  • Copy and paste activities: Click the icon on the toolbar to copy and paste selected activities on the canvas. For more information, see Copy and Paste Activities.

Properties Pane

Flow Designer has a Properties pane that appears on the right of the application. You set the parameters for either the flow (Global Properties) or for a selected activity. You can hide and expand the pane to increase working space on the canvas between configurations.

The Global Properties pane displays by default when the Flow loads. Click the icon to open the Global Properties pane. The icon helps you to open and close the Properties Pane when you work on flows. You can also click anywhere on the empty canvas to return to the Global Properties pane view. The Global Properties pane is not visible when you select an activity.

The following configurations are contained in the Global Properties pane:

  • (Optional) Provide a flow description.

  • Manage custom and predefined variables. For more information about flow variables, see Set Variable.

  • View Flow History information, including the owner, last edited date, and Flow Version number.

    Click the icon to close the Global Properties pane.

    There is currently no version control feature. The Flow Version is the number of times that the flow has been published.

Header Pane

The Header pane displays the name of your flow, which dynamically updates when you edit the flow name from the Global Properties pane. The header panel has a Sign Out button. Flow Designer allows you to save an existing flow draft if you wish to return and continue working later.

To save your drafts of the flows or to close the application, click Save Flow and Sign Out in the top-right corner of the application.

Footer Pane

The Footer Pane has the following:

  • Autosave Enabled: The left of the Footer pane indicates that Autosave is enabled. Flows are saved to avoid data loss, and an error notification appears if autosave is suspended.

    There is a scenario in which data could be lost if you close the browser window while data is autosaving. We recommend you wait a few seconds after you make changes to your flow before you close the browser.

  • Application Version: The left of the Footer pane displays the version of the Flow Designer application. You can use the version for troubleshooting errors in the Flow Designer.

  • Flow Validation: Flow Validation checks if there are errors in a flow’s structure that will prevent the flow from working. You can enable the validation toggle on the right of the Footer Pane at any time. By default, validation is not running on the back end, so no errors display in the window. When the toggle is enabled, the backend validation commences and any errors in the flow are surfaced to the UI. For more information about Flow Validation, see Validate a Flow.

  • Flow Publishing: Before you can publish a flow, you must validate the flow and resolve any errors. The Publish button is disabled if the Validation toggle is off. Once validation is enabled, the Publish button remains disabled if there are any active errors in the flow. For more information about Flow Publishing, see Publish a Flow.

Flow Designer Activities and Events

Activities in Call Handling

Play Music

The Play Music activity plays music when a call arrives or is in a queue. You can choose an audio file to play, when you place a caller on hold.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Error Handling.

The following sections enable you to configure the Play Music activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Music Settings

If any of the ordered list inputs is empty, the system throws a Flow Error. Resolve these errors before publishing the flow.

Parameter

Description

Static Audio FileChoose this option if you wish to configure the static audio to be played from the Audio Prompt page in the Control Hub.

Choose the name of the audio (.wav) file from the Music File drop-down list.

For more information, see Manage audio prompts.

Dynamic Audio File

Choose this option if you wish to configure the audio to be played dynamically within a single flow. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the dynamic audio file, enter the audio variable value in the form of a pebble expression. For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Start Offset

Set the duration in seconds for the music file to play.

For example, assume that your music file is 60 seconds long. If the Start Offset is set as 45 seconds and the music duration is 30 seconds, the file plays the last 15 seconds and loops back to the start and plays the first 15 seconds. 0 is the start time.

You can enter the start offset as a static number (example: 20) or an expression (example: {{MusicLength + 20}}).

Ensure that your input has numeric values.

Music Duration

Specify the duration in seconds for the selected music file. (For example, 30 seconds). You can enter the music duration as a static number (example: 20) or an expression (example: {{MusicLength + 20}}).

Ensure that your input has numeric values. If the Start Offset and the Music Duration are longer than the file length, the music loops back to the start and continues to play.

The music plays according to the following rules:
  • If the specified Music Duration is less than the length of the audio file, the music plays for the specified duration. For example, if the Music Duration is 30 seconds and the audio file is 40 seconds long, the music plays for 30 seconds.
  • If the specified Music Duration is greater than the length of the audio file, the music plays for five times the length of the audio file, looping as necessary. For example, if the Music Duration is 600 seconds and the audio file is 40 seconds long, the music plays for 200 seconds (five times the length of the audio file).

When you include the Play Music activity before the HTTP Request activity in a call flow, the HTTP request executes only after the audio is played fully.

Feedback

Configure the Feedback activity to initiate post-call surveys (powered by Webex Experience Management) to collect feedback from callers. The following types of surveys are available:

  • IVR Post Call Surveys: Configure the Feedback activity in the Event Flows canvas in the Flow Designer, after theAgentDisconnected event. Depending on the setup in Webex Experience Management, the contact center plays an IVR survey to the callers.

    The caller uses the keypad to answer the survey. If the caller partially answers the survey by not responding within the configured timeout duration or by providing invalid input, the contact center sends partial survey responses to Webex Experience Management.

    Ensure that you use the Disconnect Contact activity after the Feedback activity to end the IVR call.

  • Email or SMS Post Call Surveys: Configure the Feedback activity in the Event Flows tab in the Flow Designer after the PhoneContactEnded event. Depending on the dispatch policy rules set up in Webex Experience Management, the contact center sends a survey to callers over email or SMS.

    When you design a flow, a Consult interaction can't include a Post Call Survey Feedback activity.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Feedback activity:

General Settings

Parameter

Description

Activity Label

Enter the name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Survey

To administer a survey to the customer, select from a list of questionnaires for Voice, or dispatches for Email or SMS surveys. The questionnaires and invitations that are configured in Webex Experience Management are available in the list.

Table 1. Survey Methods
Parameter Description

Voice Based

To play an inline survey to the customer, do the following:

  • Choose the Voice Based radio button.

  • Choose the voice-based survey from the drop-down list.

Email/SMS Based

To provide an offline Email/SMS survey to the customer, do the following:

  • Choose the Email/SMS Based radio button.

  • Choose the Email or SMS-based survey from the drop-down list.

Language Settings

Manage the language in which the customer experiences the survey. If the language is not supported in Webex Experience Management, the fallback language is English (US). For more information, see Webex Experience Management Language Support.

Table 2. Language Settings
Parameter Description

Override Language Settings

Enable the Override Language Settings toggle button to set any custom language for Webex Experience Management.

  • Set Language: Select the preferred language from the drop-down list. The drop-down list displays the languages that Webex Experience Management supports.

If the Override Language Settings toggle button is not enabled, the Global_Language variable is used to define the default Webex Experience Management settings. For more information, see Global Variables in Flow Designer.

Customer Information

Specify the customer information to be passed along with the prefills that Webex Experience Management sends to capture the survey response. Depending on the dispatch configurations set in Webex Experience Management, the contact center sends the prefill information.

Table 3. Customer Information
Parameter Description

Customer ID

(Optional) Select a unique identifier for the customer from the drop-down list.

Email

(Optional) Select the email of the customer from the drop-down list.

Phone Number

(Optional) Select the phone number of the customer from the drop-down list.
Variable Passing

Specify the additional variables as custom prefills that are passed (in addition to survey responses) from Webex Contact Center to Webex Experience Management.

Table 4. Key-Value Parameters

Parameter

Description

Key-Value

Indicates the optional variable parameters that the contact center passes to Webex Experience Management.

The Key and Value columns allow you to enter a variable name and the associated value. The variable value can be either a string, an integer, or an expression with double curly braces syntax (in case of flow variable). For more information, see Custom Flow Variables.

To add a variable parameter, click Add New. This adds a row where you can enter the respective key-value pair.
  • To pass any custom variable from contact center, the administrator must create a custom prefill question in Webex Experience Management.

    For more information on configuring a survey questionnaire, see Questionnaires in Webex Experience Management Documentation.

  • The Key parameter in the variable and the Display Name of the prefill question created in Webex Experience Management must be the same.

  • If the Key parameter does not match the Display Name of the prefill question, the contact center doesn't send the Key-Value parameters to Webex Experience Management.

  • If the variable includes personal information, make sure to enable the Mark as Personally Identifiable Information (PII) toggle for that Question in Webex Experience Management.

    For more information on PII, see PII Handling in Experience Management in Webex Experience Management Documentation.

For more information about custom prefills, see Setup Custom Prefills for Post-Call Feedback Surveys in Webex Experience Management Documentation.

Advanced Settings

The Feedback activity has the following settings to help validate the expected DTMF responses from the customers.

Table 5. Advanced Settings

Parameter

Description

Timeout

Indicates the maximum duration for which the activity waits for response from the customer. The default value is 3 seconds.

You can configure the maximum number of retry attempts in case of invalid or no DTMF input, as well as audio notification messages (for invalid input, timeout, and maximum retries exceeded) for questionnaires by using Webex Experience Management.

For more information, see Retry And Timeout Settings In Post Call IVR Survey in Webex Experience Management documentation.

Play Message

The Play Message activity plays an uninterruptible message to the caller. You can use the Play Message activity with or without the Text-to-Speech capability enabled. The configuration options change accordingly.

  • You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Error Handling.

  • The Play Message activity is uninterruptible for DTMF inputs.
  • The Play Message activity is interruptible due to agent's availability to answer the call, if included after the Queue Contact activity in a call flow.

The following sections enable you to configure the Play Message activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Prompt

If you don't wish to use the Text-to-Speech capability in your prompt, disable the Text‐to‐Speech toggle button. By default, Text-to-Speech is not enabled.

You can configure up to five audio prompts (audio files and audio prompt variables combined). The full prompt is played to the caller in the configured order, alternating between the audio files and audio prompt variables.

If any of the ordered list inputs is empty, the system responds with a flow error. Resolve these errors before publishing the flow.

Table 6. Prompt Configuration without Text-to-Speech Enabled

Parameter

Description

Add Audio Files

To configure the prompt without Text-to-Speech, add at least one prerecorded audio file. Choose the desired audio file from the drop-down list that is labeled as 1.

To add more audio files, click Add New. The files play to the caller in the order in which they appear.

To remove an audio file from the sequence, click the Delete icon that appears next to each drop-down list.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

To use the Text-to-Speech capability in your prompt, enable the Text‐to‐Speech toggle button. You can configure up to a total of five audio prompts (Text-to-Speech messages, audio files, and audio prompt variables combined). The full prompt is played to the caller in the configured order, alternating between the Text-to-Speech messages, audio files, and audio prompt variables.

Table 7. Prompt configuration with Text-to-Speech enabled

Parameter

Description

Connector

Indicates the connector to authenticate the Text‐to‐Speech service. The drop-down list displays the name of all Google connectors in the Control Hub. Only the active connectors are displayed. Select the connector from the drop‐down list.

  • Existing customers on Classic voice platform can view only Google TTS connector in the drop-down list.
  • Existing customers on the Next Generation voice platform can view both Cisco Cloud Text-to-Speech and Google TTS connectors.

Override Default Language & Voice Settings

Use this toggle button to override the voice settings configured in the Global Voicename variable. This parameter is enabled by default.

Output Voice

Indicates the output voice name. This field appears only if you enable the Override Default Language & Voice Settings toggle button. Select the output voice name from the drop-down list.

If the output voice name that is supported by Google isn't available in the Output Voice drop-down list, disable the Override Default Language & Voice Settings toggle button. Include the Set Variable activity before the Play Message activity in the flow.

Configure the Set Variable activity as follows:

  • Set the variable to Global_VoiceName.

  • Set the variable value to the required output voice name code (for example, en-US-Standard-D). For more information on the supported voices and languages, see the Google Supported voices and languages page.

Add Audio File

To alternate Text-to-Speech messages with prerecorded audio files, click Add Audio File. This adds a new row to the configuration where you can choose the desired audio file from the drop-down list.

To remove an item from the sequence, click the Delete icon that appears next to the corresponding input or drop-down list.

Add Text-to-Speech Message

To build the prompt, use Text-to-Speech or a mix of prerecorded audio files and Text-to-Speech messages.

Click Add Text-to-Speech Message to add a new text input field to the prompt creation section. In this field, type the message to be played to the caller in the selected Language and Voice. The field accepts two types of input—raw text (plaintext) or Speech Synthesis Markup Language (SSML)‐formatted data. You can also use variables as part of the message to read the dynamic content.

For supported SSML tags for Cisco Cloud Text-to-Speech, see the Text-to-Speech (TTS) in Webex Contact Center.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Text-to-speech settings

The text-to-speech settings include the following settings that are used to validate the expected DTMF input from the caller.

Table 8. Text-to-speech settings

Parameter

Description

Speaking Rate

Indicates the rate of speech. Increase or decrease the numeric input to maintain the ideal rate of speech and control the output speaking rate.

Valid values for the numeric input are in the range of 0.25 to 4.0 words per minute (wpm). The default value is 1.0 wpm.

Volume Gain

Indicates the increase or decrease in volume output. Increase or decrease the numeric input to maintain the ideal volume of output speech.

Valid entries for the numeric input are in the range of –96.0 decibels to 16.0 decibels (dB). The default value is 0.0 dB.

  • When you include the Play Message activity before the HTTP Request activity in a call flow, the HTTP request executes only after the audio is played fully.

Screen Pop

A Screen Pop is a window or a dialog box that appears in an agent’s Desktop when the agent answers a customer call. The agent gets more information about the caller to proceed further with a conversation. For more information, see the Screen Pop section in Get started with Agent Desktop article.

The Screen Pop activity becomes relevant only after an agent involves in an interaction. It typically uses the AgentAnswered event and the PhoneContactEnded event.

When you use this activity in the Main Flow, you expose a set of events in the Event Flows tab. For more information on these events, see Events.

You can build a single event handling flow for each event. For example, when an agent accepts an inbound call, a Screen Pop displays. The Screen Pop activity contains information that is based on the flow variables. The Screen Pop integrates Webex Contact Center with other business applications such as CRM (Salesforce), ticketing tools, and order entry system.

Complete this configuration in the Event Flows tab in Flow Designer. To define different Screen Pop behaviors that are based on Main Flow criteria, use a Condition or Case activity. You can define one Screen Pop for each flow.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

Screen Pop for new digital channels must be configured in the Connect Flow Builder. For more information, see https://help.imiconnect.io/docs/wxcc-overview.

The following sections enable you to configure the Screen Pop activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

URL Settings

Use the URL settings option to define a URL for Screen Pop configurations. To type a variable, use the syntax {{variables}}.

For example, {{NewPhoneContact.ANI}}.

Table 9. URL Settings

Parameter

Description

Screen Pop URL

Enter the URL of the intended website, such as http://www.salesforce.com. After the agent answers a call, the configured URL populates the Screen Pop in the Desktop.

Query Parameters

Enter the various variables in the payload.

To add a new query parameter, click Add New. Enter the attribute–value details in the KEY and VALUE fields respectively.

Screen Pop Desktop Label

Enter a short and intuitive custom display text that replaces the Screen Pop URL on the Agent Desktop.

After the agent answers or ends a call, this label appears as a hyperlink in the Screen Pop notification on the Agent Desktop.

For example, if the Screen Pop URL is http://www.salesforce.com and the Screen Pop Desktop Label is Salesforce, the system displays the hyperlink as Salesforce in the Screen Pop notification.

This label also appears in the Screen Pop tab of the Agent Desktop.

Display Settings
Table 10. Display Settings

Parameter

Description

New browser tab

The Screen Pop displays in a new browser tab every time without affecting the existing Screen Pop.

Existing Screen Pop tab

The Screen Pop displays inside the existing browser tab replacing the previous Screen Pop.

Inside Desktop

The Screen Pop displays as a tab in the Auxiliary Information pane in the Desktop.

If the Screen Pop display option is Inside Desktop, the Screen Pop displays in the Auxiliary Information pane for the duration of the call. The Screen Pop is retained even when you select a task from another channel type in the Task List pane.

If the Screen Pop display option is Inside Desktop or Existing browser tab, data being entered in the Screen Pop for a call is lost if the agent accepts a new call. To prevent the loss of data, configure the display option as New browser tab.

For example, consider that the Screen Pop display option is Inside Desktop. If the agent accepts a new inbound call while entering data in the Screen Pop for a previous call, the data being entered for the previous call is lost when the Screen Pop for the new call pops up.

Collect Digits

The Collect Digits activity prompts the caller to enter a Dual-Tone Multi-Frequency (DTMF) input such as an account number. Similar to the Play Message and Menu activities, the Collect Digits activity can use audio files, text-to-speech messages, or a combination of both.

This activity accepts DTMF input digits from 0 through 9. The caller can enter # or * as a termination symbol to indicate the end of DTMF input.

  • The caller cannot use the termination symbols for any other scenarios as part of Collect Digit activity such as confirming the amount or customer ID.

  • By default, Next Generation media platform supports only RFC2833 type DTMF for both inbound and outbound calls.

  • Next Generation media platform supports in-band DTMF.

  • This feature is available only if the corresponding feature flag is enabled.

  • You can also hear in-band DTMF tones during recording and in conference with other parties.

You can configure these error-handling paths to handle flow execution errors:

Table 11. Activity execution errors

Path

Description

Entry Timeout

Indicates the error output path that the flow takes after the entry timeout duration has elapsed. Configuring this path ensures that the caller doesn’t go idle for too long. Modify the entry timeout duration in the Advanced Settings section of the Properties pane. Consider playing a message to clarify what is expected from the caller, and then loop back to the start of the activity.

Unmatched Entry

Indicates the error output path that the flow takes if the caller enters a DTMF input that is not configured in the Custom Menu Links section. Configuring this path ensures that the caller is allowed to restart the activity and try again. Consider playing a message to clarify what is expected from the caller, and then loop back to the start of the activity.

Undefined Error

For more information, see Error Handling.

You can configure the Collect Digits activity using the following settings:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Prompt settings without text-to-speech enabled

By default, text-to-speech is not enabled. To configure the prompt without text-to-speech, add at least one prerecorded audio file. Choose the audio file from the drop-down list. You can configure up to a total of five audio prompts (audio files and audio prompt variables combined). The full prompt is played to the caller in the configured order, alternating between the audio files and audio prompt variables.

If any of the ordered list inputs is empty, the system displays a Flow Error. Resolve these errors before publishing the flow.

Table 12. Prompt settings without text-to-speech enabled

Parameter

Description

Add Audio File(s)

To add more audio files, click Add New. The files are played to the caller in the sequence that they are configured.

To remove an audio file from the sequence, click the Delete icon that appears beside each drop-down list. The Delete icon doesn’t appear when only one drop-down list is available because you need at least one audio file for the prompt.

To manage audio files, see Upload an Audio Resource File.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Make Prompt Interruptible

The Make Prompt Interruptible check box allows you to indicate if the configured prompt can be interrupted by the caller's input or event. By default, prompts can't be interrupted. If the prompt is important for the caller to hear, don’t allow it to be interruptible.

For the organizations that are provisioned with the new Next Generation platform, the system configures the prompt interruptible by default, irrespective of whether the Make Prompts Interruptible check box is checked or unchecked by the flow developers.

Prompt settings with text-to-speech enabled

By default, text-to-speech isn’t enabled. To use text-to-speech in your prompts, enable the Text-to-Speech toggle button. You can configure up to a total of five audio prompts (text-to-speech messages, audio files, and audio prompt variables combined). The full prompt is played to the caller in the configured order, alternating between the text-to-speech messages, audio files, and audio prompt variables configured.

Table 13. Prompt configuration with text-to-speech enabled

Parameter

Description

Connector

The Language and Voice options change based on the selected connector. The selection dictates the language, gender, and tone that the system uses to read text-to-speech messages to the caller.

If you’re using Google TTS, you can preview the various options on the Google Text to Speech page.

  • Existing customers on Classic voice platform can view only Google TTS connector in the drop-down list.
  • Existing customers on the Next Generation voice platform can view both Cisco Cloud Text-to-Speech and Google TTS connectors.

Override Default Language & Voice Settings

Use this toggle to override the voice settings configured in the Global Voicename variable. This parameter is enabled by default.

Output Voice

Indicates the output voice name. This field appears only if you enable the Override Default Language & Voice Settings toggle button. Select the output voice name from the drop-down list.

If the output voice name that is supported by Google isn’t available in the Output Voice drop-down list, disable the Override Default Language & Voice Settings toggle button. Include the Set Variable activity before the Collect Digits activity in the flow.

Configure the Set Variable activity as follows:

  • Set the variable to Global_VoiceName.

  • Set the variable value to the required output voice name code (for example, en-US-Standard-D). For more information on the supported voices and languages, see the Google Supported voices and languages page.

Add Text to Speech Message

When you build your prompt, you can use text-to-speech or a mix of prerecorded audio files and text-to-speech messages. Click Add Text-to-Speech Message to add a new text input field to the Prompt section. Here, you can type the message that is read to the caller with the selected language and voice. The field accepts two types of input: raw text (plaintext) or SSML-formatted data. You can use variables also as part of the message to read the dynamic content.

To specify a variable, use this syntax: {{variable}}. For example, {{NewPhoneContact.ANI}}.

For supported SSML tags for Cisco Cloud Text-to-Speech, see the Text-to-Speech (TTS) in Webex Contact Center.

Add Audio File

To alternate text-to-speech messages with prerecorded audio files, click Add Audio File. This adds a new row to the configuration where you can select an audio file from a drop-down list.

To remove an item from the sequence, click the Delete icon next to that item. The Delete icon isn’t visible when only one field is configured, because at least one message or audio file is required.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Make Prompt Interruptible

The Make Prompt Interruptible check box allows you to indicate if the configured prompt can be interrupted by the caller's input or event. By default, prompts can't be interrupted. If the prompt is important for the caller to hear, don’t allow it to be interruptible.

For the organizations that are provisioned with the new Next Generation platform, the system configures the prompt interruptible by default, irrespective of whether the Make Prompts Interruptible check box is checked or unchecked by the flow developers.

Text-to-speech settings

The text-to-speech settings include the following settings that are used to validate the expected DTMF input from the caller.

Table 14. Text-to-speech settings

Parameter

Description

Speaking Rate

Indicates the rate of speech. Increase or decrease the numeric input to maintain the ideal rate of speech and control the output speaking rate.

Valid values for the numeric input are in the range of 0.25 to 4.0 words per minute (wpm). The default value is 1.0 wpm.

Volume Gain

Indicates the increase or decrease in volume output. Increase or decrease the numeric input to maintain the ideal volume of output speech.

Valid entries for the numeric input are in the range of –96.0 decibels to 16.0 decibels (dB). The default value is 0.0 dB.

Advanced Settings

The Collect Digits activity includes the following advanced settings that are used to validate the expected DTMF input from the caller.

Table 15. Advanced Settings

Parameter

Description

No-Input Timeout

Indicates the maximum duration that the Collect Digits activity waits for input, before proceeding to the Entry Timeout path. The default value is 3 seconds.

Inter-Digit Timeout

Indicates the maximum duration for which the Collect Digits activity waits between digits, before continuing in the flow. This occurs only after at least one digit is entered. The caller can enter the terminator symbol to indicate that the entry is completed, so that the call proceeds without waiting for the Inter-Digit Timeout.

Inter-Digit Timeout isn’t applicable for customers using the Voice Services Platform. By default, this parameter isn’t disabled for customers using the Voice Services Platform.

Minimum Digits

Indicates the minimum number of digits that the caller must enter. The default value is 1. If the caller enters the input that is less than this value, the flow follows the Unmatched Entry path that is configured in the Error Handling section.

Maximum Digits

Indicates the maximum number of digits that the caller can enter. The default value is 10. If the caller enters the input that is more than this value, the flow follows the Unmatched Entry path that is configured in the Error Handling section.

Terminator Symbol

Indicates the character that the caller can enter to specify the end of input. The Terminator Symbol can be either # or * depending on the configuration.

By default, the Terminator Symbol is #.

Output Variables

The Collect Digits activity includes the {{CollectDigits.DigitsEntered}} output variable. When the flow is executed, this variable stores the DTMF input that the caller entered during their interaction with the activity. Use this variable in later activities to control the flow sequence. The variable name dynamically changes based on the label that is associated with the Collect Digits activity. The system must capture multiple variable values if the flow uses more than one Collect Digits activity in the flow. For more information, see Event Output Variables.

Menu

The Menu activity allows you to build a Cisco Unified IP Interactive Voice Response (IVR) experience in your flow. The activity plays a prompt that allows the caller to enter a DTMF digit. Based on the digit that the caller enters, the flow can take a different path.

A Menu can have 1–10 branches, represented by digits 0–9.

You can use the Menu activity with or without text-to-speech enabled. The configuration options change accordingly.

You can configure these error-handling paths to handle flow execution errors:

Table 16. Activity execution errors

Path

Description

Entry Timeout

Indicates the error output path that the flow takes after the entry timeout duration has elapsed. Configuring this path ensures that the caller doesn’t go idle for too long. Modify the entry timeout duration in the Advanced Settings section of the Properties pane. Consider playing a message to clarify what is expected from the caller, and then loop back to the start of the activity.

To loop the call back to the start of the activity for a specified number of times:

  • Configure the Set Variable activity as follows:
    • Set the variable to Timeout.

    • Set the vaue to {{Timeout +1}}.

  • Configure the Condition activity with the expression {{Timeout >= n}}, where n is the number of times you want to return the call back to menu before the call disconnects. For example, if {{Timeout >= 3}}, the configuration returns the call back to the menu thrice before the call disconnects.

Unmatched Entry

Indicates the error output path that the flow takes if the caller enters a DTMF input that is not configured in the Custom Menu Links section. Configuring this path ensures that the caller is allowed to restart the activity and try again. Consider playing a message to clarify what is expected from the caller, and then loop back to the start of the activity.

The following sections enable you to configure the Menu activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Prompt

Prompt settings without text-to-speech

By default, text-to-speech is not enabled. To use text-to-speech in your prompt, enable the Text-to-Speech toggle button. Choose the audio file from the drop-down list. You can configure up to a total of five audio prompts (audio files and audio prompt variables combined). The activity plays the full prompt to the caller in the configured order, alternating between the audio files, and audio prompt variables configured.

If any of the ordered list inputs is empty, the system throws a Flow Error. Resolve these errors before publishing the flow.

Table 17. Prompt settings without text-to-speech enabled

Parameter

Description

Add Audio Files

To configure the prompt without text-to-speech, add at least one pre‐recorded audio file. Choose the file from the drop‐down field labeled 1. To add more audio files, click Add New.

To remove an audio file from the sequence, click the Delete icon that appears beside the drop‐down list. Because at least one audio file is required, the Delete icon is not visible if only one drop‐down field is visible.

Manage audio files from the Audio Prompts setting in the Control Hub. For more information, see Manage audio prompts.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Make Prompt Interruptible

This option allows you to indicate if the configured prompt can be interrupted by the caller's input or event. By default, Make Prompt Interruptible is not checked for the Menu activity. If you want the caller to be able to interrupt the menu when they enter their DTMF input, consider making the message interruptible.

For organizations that are provisioned with the new Next Generation platform, the system configures the prompt interruptible by default, regardless of whether the flow developers have checked or unchecked the Make Prompt Interruptible check box.

Prompt settings with text-to-speech

To use text-to-speech in your prompt, enable the Text-to-Speech toggle button. You can configure up to a total of five audio prompts (Text-to-Speech messages, audio files, and audio prompt variables combined). The activity plays the full prompt to the caller in the configured order, alternating between the Text-to-Speech messages, audio files, and audio prompt variables.

Table 18. Prompt Settings with Text-to-Speech Enabled

Parameter

Description

Connector

Choose a connector to authenticate the text-to-speech service. The drop‐down list displays the names of the Google connectors that are configured in the Control Hub.

  • Existing customers on Classic voice platform can view only Google TTS connector in the drop-down list.
  • Existing customers on the Next Generation voice platform can view both Cisco Cloud Text-to-Speech and Google TTS connectors.

Override Default Language & Voice Settings

Use this toggle button to override the voice settings configured in the Global Voicename variable. This parameter is enabled by default.

Output Voice

Select the output voice name from the drop-down list.

If the output voice name that Google supports is not available in the Output Voice drop-down list, disable the Override Default Language & Voice Settings toggle button. Include the Set Variable activity before the Menu activity in the flow.

Configure the Set Variable activity as follows:

  • Set the variable to Global_VoiceName.

  • Set the variable value to the required output voice name code (for example, en-US-Standard-D). For more information on the supported voices and languages, see the Google Supported voices and languages page.

Add Audio File(s)

To alternate text-to-speech messages with prerecorded audio files, click Add Audio File. This adds a new row to the configuration where you can choose an audio file from a drop‐down list.

To remove an item from the sequence, click the Delete icon near that item. Because at least one message or audio file is required, the Delete icon is not visible when only one field is configured.

Add Text to Speech Message

When you build your prompt, you can exclusively use text-to-speech or you can use a mix of prerecorded audio files and text-to-speech messages. Click Add Text-to-Speech Message to add a new text input field to the prompt creation section.

You can type the message that should be read to the caller using the selected Language and Voice. The field accepts two types of input: raw text (plain text) or Speech Synthesis Markup Language (SSML)‐formatted data. You can also use variables as part of the message to read the dynamic content. If typing a variable, use this syntax: {{variable}}. For instance, {{NewPhoneContact.ANI}} uses valid variable syntax.

For supported SSML tags for Cisco Cloud Text-to-Speech, see the Text-to-Speech (TTS) in Webex Contact Center.

Add Audio Variable

Use this option to configure the audio prompt to be played dynamically to the customers. For example, you can configure this variable to play the audio prompt in multiple languages based on the customer's preference during the interaction.

To configure the audio variable, click Add Audio Variable. Enter the variable value in the form of a pebble expression.

For more information, see Pebble Template Syntax.

The variable value must match the name of the .wav file that is uploaded to the Control Hub.

Make Prompt Interruptible

This option allows you to indicate if the configured prompt can be interrupted by the caller's input or event. By default, Make Prompt Interruptible is not checked for the Menu activity. If you want the caller to be able to interrupt the menu when they enter their DTMF input, consider making the message interruptible.

For organizations that are provisioned with the new Next Generation platform, the system configures the prompt interruptible by default, regardless of whether the flow developers have checked or unchecked the Make Prompt Interruptible check box.

Custom Menu Links

The Custom Menu Links option allows you to configure one or more menu links based on the organizational requirements.

This capability helps one or more users to select different branches in the flow based on the selected digit.

You can configure up to ten Custom Menu Links.

Table 19. General settings

Parameter

Description

DIGIT

Choose a number from the drop‐down list. DIGIT corresponds to the DTMF input that the caller enters to indicate which path of the flow to follow. Digits 0‐9 are available for selection, and you can select each option only once.

LINK DESCRIPTION

Add a description to indicate what path of the flow the digit corresponds to.

For example, if pressing 1 leads the caller to a queue that can help with a sales question, type Sales in the link description. LINK DESCRIPTION has no impact on the call itself, but can help with tracking how the Menu is constructed.

Add New

Click Add New to add more menu links. You can add a digit and link description for each row. You can add up to ten links.

You can configure menu links in both the Properties pane and in the activity itself. This allows for different configuration options that are based on the preference of the user. The system updates the content in real‐time in both locations when an edit is made.

Text-to-Speech settings

The text-to-speech settings include the following settings that are used to validate the expected DTMF input from the caller.

Parameter

Description

Speaking Rate

Indicates the rate of speech. Increase or decrease the numeric input to maintain the ideal rate of speech and control the output speaking rate.

Valid values for the numeric input are in the range of 0.25 to 4.0 words per minute (wpm). The default value is 1.0 wpm.

Volume Gain

Indicates the increase or decrease in volume output. Increase or decrease the numeric input to maintain the ideal volume of output speech.

Valid entries for the numeric input are in the range of –96.0 decibels to 16.0 decibels (dB). The default value is 0.0 dB.

Entry Timeout

Specifies the maximum time that the activity waits for input before proceeding down the Entry Timeout path. The default value is 3 seconds.

Output Variable

The Menu activity employs the {{Menu.OptionEntered}} output variable. When the system executes the flow, this variable stores the DTMF input that the caller entered during their interaction with the Menu.

You can use the {{Menu.OptionEntered}} output variable in later activities to control the flow sequence. The variable name dynamically changes based on the label that is associated with the Menu activity. The system can capture multiple variable values when the flow uses more than one Menu activity. For more information about this variable type, see Activity Output Variables.

Blind Transfer

Transferring a voice call to either an external or third-party Dial Number (DN) through Interactive Voice Response (IVR) without agent intervention triggers the Blind Transfer activity.

The Blind Transfer activity applies when a call should be transferred to an external or third-party DN based on a flow criteria set. The transfer can also be initiated to an external bridge. The configured criteria set triggers the activity.

In case of blind transfer, the previous skill limitations will be retained when a call is transferred to a skill based queue. This is because skill limitations are calculated when a flow is executed. However, since the flow is not executed in case of blind transfer, the previous skill limitations are retained.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Blind Transfer activity.

  • When you design a flow, a Consult interaction can't include a Blind Transfer activity.
  • You can't add a Blind Transfer activity within the event flows in Flow Control.
General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Transfer Dial Number

The Transfer Dial Number section indicates the DN that a call is transferred to. You can enter the number manually or select a dynamic number through a variable.

Table 20. Transfer Dial Number Settings

Parameter

Description

Transfer Dial Number

Enter the DN to which a call should be transferred. This can be a specific number that is manually entered, or a dynamic number that is indicated through a flow variable.

Specific Dial Number

Enter the number to which the call must be transferred.

Variable Dial Number

Choose the flow variable from the drop-down list. The variable stores the number to which the call should be transferred.

Bridged Transfer

The Bridged Transfer activity allows a call to be temporarily transferred with a flow to an external destination while retaining control of the call. The external destination can be an external bridge or an Interactive Voice Response service (IVR).

When the third-party ends the call, the call flow continues for further re-engagement as required, like queuing it to an agent.

The following sections guide you on how to configure the Bridged Transfer activity.

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Transfer Dial Number

The Transfer Dial Number section indicates the DN to which a call is transferred. Enter the number manually or select a dynamic number through a variable.

Table 21. Transfer Dial Number Settings

Parameter

Description

Transfer Dial Number

Enter the DN to which a call should be transferred. This can be a specific number that is manually entered, or a dynamic number that is indicated through a flow variable.

Specific Dial Number

Enter the number to which the call must be transferred.

Variable Dial Number

Choose the flow variable from the drop-down list. The variable stores the number to which the call should be transferred.

Transfer Timeout Settings

The Transfer Timeout Settings section allows you to configure the behavior of a Bridged Transfer activity when the transferred call is not answered within a specified time.

Table 22. Transfer Timeout Settings

Parameter

Description

Timeout

This is how long the system waits for the transferred party to pick up the call. If the recipient does not pick up within this time, the system terminates the call.

The duration should be in the range of 1 to 120 seconds. The default value is 10 seconds.

Output Variables

This is where you capture information on the outcome of the transfer.

Table 23. Output Variables

Parameter

Description

BridgedTransfer_dxm.FailureCode

This parameter records error or status codes corresponding to failed attempts at performing a Bridged transfer using the Digital Extension Module (DXM).

BridgedTransfer_dxm.FailureDescriptionThis parameter stores the description of the failure encountered during an attempted Bridged transfer using the (DXM).

The following table summarizes the Bridged transfer activity output failure codes.

Failure Code

Failure Description

Explanation
1

Invalid_Number

The dialed external directory number (DN) is invalid.
2BusyThe external DN is either engaged or has rejected the incoming call.
3No answerThe external DN failed to answer the call within the preset timeout duration.
48Unsupported flow activityThe flow can't execute the Bridged Transfer activity post-queueing or once an once an agent has been assigned to the call.
5Unsupported_DNYou cannot use the external DN, if it is designated as an EP-DN within the system portal, or if it matches the logged in agent's DN on the Agent Desktop.
6System_ErrorThis code represents miscellaneous errors that do not fall into the above defined categories.
Bridged Transfer is available on Next Generation platforms (VPOP and Webex Calling) only.
Unsupported Flow Configurations

  • You can't add the Bridged Transfer activity to the Queue Contact activity.
  • For contacts that are parked, queued, or assigned to an agent, do not introduce a Bridged Transfer activity later in the flow. This may lead to an unsupported flow error.
  • You can't use the Bridged Transfer activity in outbound call flows.
  • You can't add a Bridged Transfer activity within the event flows in Flow Control.

Virtual Agent

The Virtual Agent activity provides a real-time conversational experience for your contact center customers. You can add a Virtual Agent to the call flow to handle customer queries in the conversational format. The Virtual Agent is powered by Google’s Dialogflow capabilities. When a customer speaks, the Dialogflow matches the customer conversation to the best intent in the Virtual Agent. Further, it assists the customer as part of the Interactive Voice Response (IVR) experience.

Before you use a Virtual Agent:

  1. Set up a Dialogflow agent. For more information on building a Dialogflow agent in the Google Cloud, see Build an agent.

    Include Hello as a training phrase in the preferred language for the Dialogflow agent to start a conversation with the caller. You can add this training phrase in the default welcome intent or in any other intent of the Dialogflow agent. For more information, see Intents.

    Depending on the way you set up the Dialogflow agent, you can use the Virtual Agent activity to handle different kinds of use cases.

  2. Configure a Virtual Agent in Control Hub. For more information, see Configure a Virtual Agent for Webex Contact Center.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Virtual Agent activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Conversational Experience

Parameter

Description

Virtual AgentChoose a Virtual Agent in Control Hub.

The Virtual Agent powers the natural language conversation as part of the IVR experience with the caller.

Make Prompts Interruptible

Enables the customers to interrupt the Virtual Agent to make new requests or end the call.

Override Default Language & Voice Settings

Use this toggle button to override the language and voice settings that are configured in Global_Language and Global_VoiceName variables. This parameter is enabled by default.

For a flow to work, you need to set the global variables in the flow to configure the default input language and output voice for virtual agent. For more information about how to add global variables in the flow, see Global Variables.

Input Language

Indicates the language that the customer uses while speaking to the Virtual Agent. This field appears only if you enable the Override Default Language & Voice Settings toggle button.

If the input language that Google supports is not available in the Input Language drop-down list, disable the Override Default Language & Voice Settings toggle button. Include the Set Variable activity before the Virtual Agent activity in the flow.

Configure the Set Variable activity as follows:

  • Set the variable to Global_language.

  • Set the variable value to the required language code (for example, fr-CA). For more information on the languages, see the Google Language reference page.

Virtual Agent voice deployments in Webex Contact Center support only languages with the recognition model as an enhanced phone call(see Supported voices and languages that are available with Dialogflow Essentials (ES) (see Language reference).

Output Voice

The default value is Automatic. When the value is Automatic, the Dialogflow chooses the voice name for a given language. Ensure that the voice name configured is as per the chosen language.

If the output voice name that Google supports is not available in the Output Voice drop-down list, disable the Override Default Language & Voice Settings toggle button. Include the Set Variable activity before the Virtual Agent activity in the flow.

Configure the Set Variable activity as follows:

  • Set the variable to Global_VoiceName.

  • Set the variable value to the required output voice name code (for example, en-US-Standard-D). For more information on the supported voices and languages, see the Google Supported voices and languages page.

For more information on Text to Speech voices, see Supported voices and languages.

Variable Passing

The optional parameters in the Virtual Agent activity can contain personally identifiable information (PII). Webex Contact Center sends these parameters to the Google Dialogflow as variables to implement advanced conversational logic with the bot.

Table 24. Optional Parameters

Parameter

Description

Key-Value

The Key-Value parameter allows you to enter a variable name and the associated value. You can enter variable values by using the double curly braces syntax.

For example, if you want to return the account balance of a customer based on the ANI, the key and value can be:

Key: ANI

Value: {{NewPhoneContact.ANI}}

To add a variable parameter, click Add New. This adds a row where you can enter the respective key-value pair.

The contact center sends these parameter values to the Google Dialogflow as a JSON value in the request.query_param.payload object. The system parses and handles this JSON in the fulfillment application. The system reaches this application through the webhook that is configured in the Dialogflow. For more information, see Fulfillment.

Advanced Settings
Table 25. Advanced Settings
Parameter

Description

No-Input Timeout

Indicates the amount of time that the Virtual Agent waits for customer input (voice or DTMF).

The default value is 5 seconds. The value can range from 1 to 30 seconds.

Max No-Input Attempts

Indicates the number of times the Virtual Agent waits for customer input (voice or DTMF).

The default value is 3. The value can range from 0 to 9.

When the maximum number of attempts elapse, the Virtual Agent exits, with the output variable ErrorCode set to the value max_no_input.

Inter-digit Timeout

The amount of time that the Virtual Agent waits for the next DTMF input from the customer before the Virtual Agent moves on in the conversation flow.

The default value is 3 seconds. The value can range from 0 to 30 seconds.

Terminator Symbol

The character that the customer can enter to indicate the end of input. The Terminator Symbol can be either # or * depending on the configuration.

Termination Delay

Enables the Virtual Agent to complete the last message before the activity stops and moves on to the next step in flow.

For example, if you want the Virtual Agent to indicate something to the caller before the system escalates the call to an agent, consider the time it takes to complete the final message before escalation. The value can range from 1 to 30 seconds.

If you configure the Termination Delay value as 0, the system does not play the last audio message to the caller.

Speaking Rate

Indicates the rate of speech. Increase or decrease the numeric input to maintain the ideal rate of speech and control the output speaking rate.

Valid values for the numeric input are in the range of 0.25 to 4.0 words per minute (wpm). The default value is 1.0 wpm.

Volume Gain

Indicates the increase or decrease in volume output. Increase or decrease the numeric input to maintain the ideal volume of output speech.

Valid entries for the numeric input are in the range of –96.0 decibels to 16.0 decibels (dB). The default value is 0.0 dB.

Enable Conversation Transcript

Enables the Desktop to display the transcript of the conversation between the Virtual Agent and the customer. The raw transcript is also available through a dynamic URL. You can use this URL to extract specific sections from the transcript using an HTTP request.

Output Variables

These variables store the output status of the event that occurs during the conversation between the Virtual Agent and the customer.

Table 26. Output Variables

Output Variable

Description

VVA.LastIntent

Stores the last intent that is triggered by the Virtual Agent before moving to the Escalation or Handled intent.

VVA.TranscriptURL

Stores the URL that points to the transcript of the conversation between the Virtual Agent and the customer.

Use the Parse activity to extract the parameters from the Virtual Agent transcript.

VVA.ErrorCode

Stores the status code whose value depends on the outcome of the conversation between the Virtual Agent and the customer. This variable holds one of the following values:

  • no_error: Indicates that the Handled and Escalated outputs had no errors.

  • max_no_input: Indicates that the customer didn't have any input errors within the specified Max No-Input Attempts.

  • term_char_without_input: Indicates that the customer pressed the termination key without any input (spoken or by key press). The terminator symbol can be either # or * depending on the configuration.

  • system_error: Indicates any other error in the system. For example, Dialogflow error, network issue, and so on.

To play a custom audio message to notify customers of an error, flow developers must include a Play Message activity (before disconnecting the call) in the flow. For more information on the Play Message activity, see Play Message.

Outcomes

Indicates the output paths for the Virtual Agent that occurs based on the outcome of the conversation between the Virtual Agent and the customer.

  • Handled: The Dialogflow takes this path if the system triggers the Handled intent.

  • Escalated: The Dialogflow takes this path if the system triggers the Escalation intent.

For more information on the intents in the Dialogflow, see Intents.

Error Handling

Indicates the output path of the Virtual Agent that is based on the error that occurs during the conversation between the Virtual Agent and the customer.

Error: The flow takes this path in any error scenarios.

If there is an error, the contact center does not play any audio message to notify the customer of the error, by default. The flow developer can configure a Play Message activity either generically or based on the error code as described in the Output Variables section.

The functionality of the output paths depends on the configuration and the flow that is defined by the administrator.

Callback

The Callback activity is available only if the preferred queue and the Callback feature are enabled for the enterprise. By default, the Callback activity creates a Courtesy Callback task in the same queue that the call was originally placed. If preferred, you can configure a different queue. If you use the same queue, the task retains its position in the queue until the next agent is available.

When you design a flow, a Consult interaction can't include a Courtesy Callback activity.

If a new queue is preferred, place the task at the bottom of the preferred queue. As an agent accepts the task, the Callback is initiated. If the caller doesn’t answer, the Callback isn’t retried.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Callback activity:

Table 27. General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Callback Settings

The Callback Settings section defines the Callback Dial Number and the queue in which the caller must be placed for the Callback request. The system reserves the caller's place in the queue until the next agent is available.

Table 28. Callback Settings

Parameter

Description

Callback Dial Number

Enter the dial number at which the caller is to receive the Callback. Choose the variable from the drop-down list that contains the Callback number, such as the ANI that is associated with the call. The variable can be a number that is collected in a Collect Digits activity in the call flow. If no selection is made, the caller's ANI is used. The Callback number is stored in the NewPhoneContact.ANI event output variable.

By default, the toggle button for Register callback to different destination? is set to off. The callback is registered on the same queued destination. If the preferred agent is busy and isn't available, set the toggle button on to select a new callback destination. The destination changes from agent to queue. You can't change the destination directly to another agent, but only to a queue which contains agents.

Callback Queue

Choose one of the available Callback Queue options from the drop-down list:

  • Variable Queue: Allows the administrator to indicate a Callback Queue based on the conditions in the flow. The default is set to the queue in which the caller is placed, as captured in the contact parked. QueueName output variable is associated with the Queue Contact activity. If needed, choose a different variable from the drop‐down list. Ensure that the variable yields a valid queue selection.

    When you configure a flow for callback to preferred agent, place the Queue to Agent activity before the Callback activity in the flow.

  • Static Queue: Choose a static queue in which all Callback requests are placed. Tasks are placed at the bottom of this queue. Manage queues from the Control Hub.

Callback ANI

Enables callback ANI configuration for customers when they receive a callback. Courtesy callback ANI configuration is not mandatory. Choose one of the available options:

  • Static ANI: Choose a callback number from the drop-down list. These dial numbers map to entry points that are configured in the Control Hub. If you don't choose a callback number, Webex Contact Center uses the number that is mapped to the entry point for which you have requested the callback.

  • Variable ANI (optional) : Choose a variable from the drop-down list. Ensure the variable provides a valid 10 digit number prefixed with country code. This code must be mapped to an entry point which initiates the callback. For using valid ANI formats, refer to the customized ANI validation table available in this section. If you don't choose a variable, Webex Contact Center considers the number that is mapped to the entry point for which you have requested the callback.

You must use a Disconnect Contact activity to terminate a flow branch that uses a Callback activity. Otherwise, the call doesn’t end when a Callback request is placed.

Flow administrators should test the feature in a non-production environment to make sure that the ANI configured as part of Variable ANI is correct or not. If the ANI provided is incorrect, then the callback switches to the default system ANI.

These are the scenarios where the customized ANI is configured and validated for Tenant Management and Flow Control. Based on the stack that you use, you can see validations that are applicable to that stack only.

Table 29. Customized ANI validation

Description

Tenant Management–ANI input

PreDial/Courtesy callback–ANI input (Flow Control)

Validation

ANI without country code

Without country code. For example, 2567312213

Without country code. For example: 2567312213

Valid ANI. Same ANI is used.

Tenant Management ANI input is with country code and Flow Control ANI input is without country code configured.

With country code. For example, +1-2567312213

Without country code. For example, 2567312213

Invalid ANI. DNIS is used

Tenant Management ANI input is without country code and Flow Control ANI input is with country code configured

Without country code. For example, 2567312213

With country code. For example, +1-2567312213

Invalid ANI. DNIS is used.

Tenant Management ANI input and Flow Control ANI input have country code configured.

With country code. For example, +1-2567312213

With country code. For example, +1-2567312213

Valid ANI. Same ANI is used.

Tenant Management ANI input does not have space in between and Flow Control ANI input has space in between.

No space in between the number. For example, +1-2567312213

Space in between the number. For example, +1-256 7312213

Valid ANI. Same ANI is used.

Tenant Management ANI input does not have hyphens in between and Flow Control ANI input has hyphens in between.

No hyphens in between the number. For example, +1-2567312213

Hyphens in between the number. For example, +1-256-731-2213

Valid ANI. Same ANI is used.

Flow Control ANI input matches the last few digits of the Tenant Management ANI input.

Complete ANI input. For example, +1-2567312213

Last four digits match. For example, 2213

Invalid ANI. DNIS is used.

Flow Control ANI input has more digits configured than Tenant Management ANI input.

Partial ANI input. For example, 2213

10-digit ANI input. For example, 2567312213

Invalid ANI. DNIS is used.

Tenant Management ANI input is configured and Flow Control ANI input is not configured.

Complete ANI input. For example, +1-2567312213

ANI is not configured.

Invalid ANI. DNIS is used.

Flow Control ANI does not include a plus symbol.

Plus symbol is used. For example, +1-2567312213

Plus symbol not used. For example, 12567312213

Invalid ANI. DNIS is used.

Output Variables

When Callback triggers, the following variables update:

Table 30. Output Variables

Output Variable

Description

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Error Codes

The following are the error codes and descriptions for the Callback activity:

Table 31. Callback Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

INVALID_REQUEST

An invalid request was made in the activity.

2

CALLBACK_NOT_SUPPORTED_ON_CHILD_INTERACTION

Callback isn’t allowed on a child contact.

3

INVALID_QUEUE

An invalid queue was specified in the activity.

4

INVALID_DESTINATION

The destination number for the callback is invalid.

5

FEATURE_NOT_ENABLED

Feature isn’t enabled in the Webex Contact Center application.

6

SYSTEM_ERROR

The system encountered an internal error.

Get Queue Info

The Get Queue Info activity provides the caller's current Position in Queue (PIQ) and the Estimated Wait Time (EWT) along with other Activity output variables. You can use these variables to determine agent availability in a queue, and to route calls elsewhere when needed.

If your organisation uses skill-based call selection, the output variable EWT always has the value of -1.

The following sections of the Flow Designer enable you to configure the Get Queue Info activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Queue Information and Lookback Time

Parameter

Description

Queue Information

Choose the name of the queue for which you must retrieve a caller's estimated wait time and current position in the queue.

You can manage the queues using the Control Hub.

Lookback Time

Specify the Lookback Time used to calculate the EWT after Get Queue Info triggers.

Specify the duration in minutes only. Ensure that your input has numeric values only.

The accepted value range is 5–240 minutes.

The Get Queue Info activity has three types of output flow branches. These branches trigger based on the return status and values of EWT, PIQ, and the real-time statistics for other output variables.

  • Success: This branch triggers when both the EWT and PIQ API return positive variable values. In this flow, you can retrieve and access valid EWT and PIQ variable values.

  • Insufficient Information Flow: This branch triggers when the PIQ API returns a valid variable value, and EWT has the value of –1. In this flow, you can retrieve and access the PIQ value, but the EWT API fails because of insufficient data to calculate the EWT value.

  • Failure: This branch triggers when PIQ API, EWT API, or one or more of the real-time statistics APIs fail or return invalid values. The EWT API fails because of reasons other than insufficient data to calculate the EWT value.

Output Variables

When Get Queue Info triggers, the following variables update:

Output Variable

Description

Position In Queue (PIQ)

Stores the value for the caller's current position in the queue for the selected queue. If the contact isn't queued when the flow invokes this activity, the PIQ value is set to the number of contacts that are currently waiting in the queue + 1. This identifies the position of the contact in the queue, if the contact is queued after executing the GetQueueInfo activity.

EstimatedWaitTime (EWT)

Stores the approximate amount of time a task has to wait in a queue before being answered by an agent. EWT is calculated for each Queue and is based on the average time that previous calls in the same queue waited for an agent. EWT uses the Lookback Time parameter entry and is reported in milliseconds (ms).

LoggedOnAgentsCurrent

Stores the number of agents in the current Call Distribution Group, for the selected queue, signed in to the desktop. If the activity is used before queueing, the stats for agents in current Call Distribution Group cycle will be returned based on the first Call Distribution Group cycle.

LoggedOnAgentsAll

Stores the total number of agents in all the Call Distribution Groups, for the selected queue, who are signed in to the desktop. This value may change as the Call Distribution Groups change over time in the queue.

AvailableAgentsCurrent

Stores the number of agents in the current Call Distribution Group, for the selected queue, who are available to accept the contact. If the activity is used before queueing, the stats for agents in current Call Distribution Group cycle will be returned based on the first Call Distribution Group cycle.

AvailableAgentsAll

Stores the total number of agents in all the Call Distribution Groups, for the selected queue, who are available to accept the call. This value may change as the Call Distribution Groups change over time in the queue.

CallsQueuedNow

Stores the total number of calls in the selected queue.

OldestCallTime

Stores the number of seconds that the oldest call has been in the selected queue.

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Estimated Wait Time Calculation

The Estimated Wait Time (EWT) is reported in ms.

To calculate EWT, the application collects all statistically valid samples (a sample is the average of wait times for tasks that successfully connected to an agent in a one-minute interval) for the last XX minutes specified by the user-defined Lookback Time. The average value of the samples collected is used as the EWT.

Statistically valid samples are those samples collected, for which the maximum value for CoV (Coefficient of Variance of the wait times for those tasks that got connected to an agent in each one minute interval) falls below 40 percent.

If the percentage of valid samples collected for the user-defined Lookback Time falls below 40 percent, the EWT isn’t computed.

Error Codes

The following are the error codes and descriptions for the Get Queue Info activity:

Table 32. Get Queue Info Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

SYSTEM_ERROR

The system encountered an internal error.

2

STALE_DATA

The data returned is not up-to-date.

3

INSUFFICIENT_DATA

The data returned by the activity is not complete.

4

INVALID_QUEUE

An invalid queue was specified in the activity.

Advanced Queue Information

The Advanced Queue Information activity returns the real-time count of agents who are in the Available state in a queue and are logged in for a specific set of skills, along with other queue information. Flow developers use the Advanced Queue Information activity to program the flow. Flow designers make decisions based on the Advanced Queue Information activity.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Events.

The following sections of the Flow Designer enable you to configure the Advanced Queue Information activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Output Variables

When the Advanced Queue Information activity is triggered, the following variables are updated:

Output Variable

Description

Position In Queue (PIQ)

Stores the value for the caller's current position in the selected queue. If the contact isn't queued when the flow invokes this activity, the PIQ value is set to the number of contacts that are currently waiting in the queue + 1. This identifies the position of the contact in the queue if the contact is queued after executing the AdvancedQueueInformation activity.

LoggedOnAgentsCurrent

Stores the number of agents in the current Call Distribution Group for the selected queue logged in to the desktop. The stats for agents in current Call Distribution Group will return -1 after considering the current Call Distribution Group as N/A before queueing.

LoggedOnAgentsAll

Stores the total number of agents in all the Call Distribution Groups for the selected queue, who are logged in to the desktop. This value may change as the Call Distribution Groups change over time in the queue.

AvailableAgentsCurrent

Stores the number of agents in the current Call Distribution Group for the selected queue, who are available to accept the contact. The stats for agents in current Call Distribution Group will return -1 after considering the current Call Distribution Group as N/A before queueing.

AvailableAgentsAll

Stores the total number of agents in all the Call Distribution Groups for the selected queue, who are available to accept the call. This value may change as the Call Distribution Groups change over time in the queue.

CurrentGroup

Stores the value of the current call distribution group where the contact is parked in a particular queue.

TotalGroups

Stores the value of the total number of call distribution groups in the queue for the contact.

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Error Codes

The following are the error codes and descriptions for the Advanced Queue Information activity:

Table 33. Advance Queue Information Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

INVALID_REQUEST

An invalid request was made in the activity.

2

QUEUE_NOT_FOUND

The queue selected in the activity is not found.

3

FEATURE_NOT_ENABLED

Feature isn’t enabled in the Webex Contact Center application.

4

DATABASE_OPERATION_FAILURE

Database operation is failed during the activity execution.

5

INVALID_QUEUE

An invalid queue was specified in the activity.

Disconnect Contact

Use this terminating activity to disconnect an active leg of a call. This activity is required if no agents join the call to manually disconnect.

For instance, use this activity before a call is queued or after scripting an opt-out of the queue experience. You can use as many Disconnect Contact activities as desired when you construct your flow to ensure that the call is terminated no matter which flow path it takes.

You have the option of giving each activity a unique label and description, but no other configuration is required.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

Table 34. General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Output Variables

This activity has no Output Variables available.

Queue Contact

The Queue Contact activity places a contact in a queue. When you use this activity in the Main Flow, you expose a set of events in the Event Flows tab. For more information on these events, see Events.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Events.

The following sections enable you to configure the Queue Contact activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

If you don't see the fields such as Static Queue, Variable Queue, Variable Priority, Variable Skill Value, Set Contact Priority, and Variable Agent Availability Check, contact Cisco Support to enable the corresponding feature flag.

Contact Handling

Use the Contact Handling section to choose if all contacts should go to a single queue, or if queue selection should change based on the value of a flow variable.

Table 35. Contact Handling
Parameter Description

Static Queue

Click the Static Queue radio button to route contacts to the single queue chosen in the Queue drop-down list. All contacts coming from the Entry Point associated with the configured workflow route to the chosen queue.

Queue

Choose a queue from the Queue drop-down list to route the contacts coming from the Entry Point associated to the workflow.

You can manage queues in the Control Hub.

Variable Queue

Click the Variable Queue radio button to use a Queue Variable to dynamically select a queue to route contacts. You can also choose a Fallback Queue in case the Queue Variable fails during the flow execution.

Queue Variable

Choose a flow variable from the Queue Variable drop-down list that yields a valid Queue ID.

The flow variable indicates which queue should be dynamically selected during the flow execution. The Fallback queue is used only if the Queue Variable fails to return a valid Queue ID.

This field appears when you click the Variable Queue radio button.

Fallback Queue

Choose the Queue ID from the Fallback Queue drop-down list. In case the Queue Variable returns an invalid Queue ID, the contacts are queued to the selected Fallback Queue.

If you click the Variable Queue radio button, you can’t input the skill requirements for the queue that uses skill-based routing. In such case, the contacts are routed to the Longest Available Agent overriding the selected queue routing algorithm.

This field appears only when you click the Variable Queue radio button.

Check Agent Availability

Enable the Check Agent Availability toggle button to exclude teams with no available agents from routing as time in the queue progresses. The Call Distribution Group of the selected queue may skip to find an agent sooner.

By default, this toggle button is disabled.

Always Check Agent Availability

Click the Always Check Agent Availability radio button to enable agent availability checking. By default, the radio button is enabled.

This option appears only if you enable the Check Agent Availability toggle button.

Variable Agent Availability Check

Click the Variable Check Agent Availability radio button to select a flow variable from the Check Agent Availability Variable drop-down list that returns a Boolean. The Boolean determines whether to check the agent availability in the variable queue.

This option appears only if you enable the Check Agent Availability toggle button.

Set Contact Priority

Enable the Set Contact Priority toggle button if you want to assign a priority to queued contacts. By default, this toggle button is disabled. The highest priority contact across all queues (voice and digital) is assigned to the next available agent who is:

  • logged in to a team that is in the current call distribution group of the contact
  • eligible to pick this contact based on the routing algorithm

The contacts are handled as follows:

  • If no priority is assigned to the contact, then the default priority is 10.

  • Contacts with higher priority are handled first.

  • If two contacts have the same priority, then the contact waiting in the queue for the longest duration is handled first.

  • If the agent transfers the call to an entry point, the contact priority changes to the priority assigned to a Queue Contact activity in the new flow. For more information, see Transfer a Call to an Entry Point.

Static Priority

Set the Static Priority if you want to assign a priority before publishing the flow. You can see this field only when the Set Contact Priority toggle button is enabled.

Choose a priority from the Static Priority Level drop-down list. You can set a priority from P1 to P9, where P1 is the highest and P9 is the lowest.

Variable Priority

Choose Variable Priority if the contact priority should change dynamically with each flow execution. This field appears only when the Set Contact Priority toggle button is enabled.

Choose a flow variable which returns an Integer with priority from 1 through 9 from the Contact Priority Variable drop-down list. If the priority isn’t in the range 1–9, then the default priority is 10.

Skill Requirements

If the selected queue uses Skill-based Routing, another sections display to configure skill requirements and skill relaxation.

You can add one or more skill requirements to assign to a contact in this queue based on the selected queue.

If you don’t specify any skills, all the available agents in the selected queue are eligible to receive contacts.

Table 36. Skill Settings

Parameter

Description

Skill

Choose the desired skill from the drop-down list. You configure the skill definitions in the Control Hub.

Condition

Choose the desired condition from the drop-down list. The condition options are based on the chosen skill type.

Skill types such as, Boolean and Enum don’t need a Condition.

The available conditions are: IS, IS NOT, >= , <=

Value

Click the Static Skill Value radio button to select the static skill values specified in the Skill Value field.

Click the Variable Skill Value radio button to select the skill value from a flow variable listed in the Variable drop-down list.

If the skill value is invalid, all skill requirements and relaxations that are associated with the contact that came through the QueueContactActivity are dropped.

Skill Relaxation

Use the Skill-relaxation settings to reduce or remove the assigned skill requirements to a flow in response to excessive customer wait times. This setting enables you to expand the pool of agents available to serve contacts.

Use common time intervals to align Skill Relaxation with queue logic in the flow and with Call Distribution settings configured for teams in the queue.

configure-skill-relaxation
Skill relaxation configuration steps

The goal of skill relaxation is to provide a mechanism to match the specific attributes of a client with the unique skill set of available agents, within service level. This approach balances the need to support both efficiency and effectiveness in the contact center environment. With Skill relaxation configuration agent pools can be selected from different steps and can form ring-based selection.

To configure skill relaxation:

  1. Enable the Enable Skill Relaxation toggle button to configure skill relaxation.

    Enable this toggle button to copy and display the initial Skill Requirements by default. This allows you to configure the skill relaxation with an ideal set of skills.

    Set the After waiting in the queue for field to the duration in seconds that must exceed before the skill relaxation applies in the queue. The default wait time is 60 seconds.

    Enable Skill Relaxation

    In the above example, the Enable Skill Relaxation toggle button is enabled. A contact center maintains a 60 second service level target to manage interactions in the support group. For specific clients, more skilled support technicians are desired to handle more complex, detailed interactions. Skill relaxation can be used to look for highly skilled service representatives first, and match the agent skill proficiency with the complexity level of the interaction. To understand that the service level target is 60 seconds, the routing logic can optimize agent selection when it looks for a resource with the right experience while the contact is safely within service level. If a resource is found, the contact is delivered to the agent that provides the best match. If no resource is immediately found, and the service level targets approach, skill relaxation can widen the agent pool to include resources that are less experienced in the intent of the contact but still able to provide service. The agent pool can be expanded as wide as possible based on the business goals of the contact center.

  2. You can add, edit, or delete the skill relaxation requirements.

    • Click Add Skill Requirement to add a new skill relaxation requirement.

    • Click Delete to delete the skill relaxation requirement.

    • Click Edit to edit the skill relaxation requirement.

  3. Click Add Skill Relaxation Step to add a new skill relaxation group.

    The default skill requirements that appear in step 1 make it easier to set the skill relaxation requirements.

Output Variables

When Queue Contact triggers, the following variables update:

Table 37. Output Variables

Output Variable

Description

QueueId

Stores the ID of the queue where the contact is successfully queued.

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Error Codes

The following are the error codes and descriptions for the Queue Contact activity:

Table 38. Callback Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

INVALID_REQUEST

The parameters specified in the activity are invalid.

2

INVALID_ROUTING_STRATEGY

The chosen routing strategy is invalid.

3

INVALID_WAIT_TIME

The defined wait time is invalid.

4

INVALID_QUEUE

An invalid queue was specified in the activity.

5

ROUTING_LIMIT_EXCEEDED

Routing has reached the maximum limit.

6

SYSTEM_ERROR

The system encountered an internal error.

7

VTEAM_TRANSITION_LIMIT_REACHED

The contact has reached maximum limit from being queued to multiple queues.

8

OWNER_ASSIGNED_TO_INTERACTION

The contact is already assigned to an agent.

Escalate Call Distribution Group

The Escalate Call Distribution Group activity allows administrators to escalate a queued contact to its next or last call distribution group. This provides better control and flexibility to administrators to manage contacts that are parked in a queue.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections of the Flow Designer enable you to configure the Escalate Call Distribution Group activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Output Variables

When the Escalate Call Distribution Group activity is triggered, the following variables are updated:

Table 39. Output Variables

Output Variable

Description

CurrentGroup

Stores the value of the current call distribution group where the contact is parked in a particular queue.

TotalGroups

Stores the value of the total number of call distribution groups in the queue for the contact.

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Error Codes

The following are the error codes and descriptions for the Escalate Call Distribution Group activity:

Table 40. Escalate Call Distribution Group Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

INVALID_REQUEST

An invalid request was made in the activity.

2

CONTACT_NOT_QUEUED

The contact isn’t queued.

3

FEATURE_NOT_ENABLED

Feature isn’t enabled in the Webex Contact Center application.

Queue To Agent

The Queue To Agent activity enables Agent-based Routing. The Queue To Agent activity routes the contacts to the preferred agent directly. For information on Agent-based Routing, see Agent-based Routing.

The Queue To Agent activity identifies an agent by its Webex Contact Center agent ID or email address.

If the agent is available, you can configure the Queue To Agent activity to route the contact to a preferred agent. If the agent is unavailable, you can configure the Queue To Agent activity to park the contact against that agent until the agent becomes available.

The flow developer can chain a Queue To Agent activity with another Queue To Agent activity to route contacts to consecutive preferred agents. The flow developer can also chain a Queue To Agent activity with a Queue Contact activity to route the contact using a regular Queue when none of the preferred agents are available.

The flow developer can chain a Queue To Agent activity with a Callback activity in the Main flow and Event flows. This helps configure callback to preferred agent to whom the call was originally queued as part of Queue To Agent activity.

Use the Callback activity after the Queue Contact or Queue To Agent activity.

The Queue To Agent activity triggers the following events in the Event Flows tab in the Main Flow:

  • AgentAnswered: The Queue To Agent activity triggers this event when an agent answers an inbound call.

  • AgentDisconnected: The Queue To Agent activity triggers this event when the agent disconnects from a live call.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Queue To Agent activity:

  • General Settings

  • Contact Handling

To configure Queue To Agent activity:

1

In the Flow Designer, drag and drop the Queue To Agent activity from the Activity Library to the canvas.

2

Click the Queue To Agent activity to configure the activity settings.

3

In the General Settings section, enter the following information:

  1. In the Activity Label field, enter a name for the activity.

  2. (Optional) In the Activity Description field, enter a description for the activity.

4

In the Contact Handling section, choose an Agent Variable from the drop-down list.

The Queue To Agent activity associates this flow variable with the agent's Email or agent's ID that you want to choose for each flow execution.

5

Choose the agent's Email or agent's ID from the Agent Lookup Type drop-down list to route contacts to the preferred agent.

Provide a valid domain name for the agent's email address to ensure that the lookup is successful.

6

Enable the Set Contact Priority toggle button to prioritize the contacts waiting in the queue. By default, the toggle button is disabled.

The Queue To Agent activity handles the contacts as follows:

  • If you don't assign a priority to the contact, the Queue To Agent activity assigns a default value of 10.

  • The Queue To Agent activity prioritizes the contacts with higher priority.

  • If one or more contacts have the same priority, the Queue To Agent activity routes the contact waiting for the longest duration to that agent first.

  1. Set the Static Priority to prioritize a contact before publishing the flow.

    Enable the Set Contact Priority toggle button to view the Static Priority field in the Queue To Agent activity.

    Choose a priority from the Static Priority Value drop-down list. You can set a priority from P1—P9, where P1 is the highest and P9 is the lowest.

  2. Choose Variable Priority if the contact priority changes dynamically with each flow execution.

    Enable the Set Contact Priority toggle button to view the Variable Priority field in the Queue To Agent activity.

    Choose a flow variable which returns an integer with priority 1–9 from the Contact Priority Variable drop-down list. If the priority isn't in the range 1-9, then the default priority is 10.

7

Choose the reporting queue ID from the Reporting Queue drop-down list. The Queue To Agent activity reports the contact's details using the reporting queue:

The reporting queue also specifies the configuration for:

  • Permit monitoring

  • Permit recording

  • Record all calls

  • Pause and resume enabled

  • Service level threshold

  • Maximum time in queue

  • Default music in queue

  • Time zone

8

Enable the Park Contact if Agent is unavailable toggle button if you want to park the contact to a preferred agent until the agent becomes available.

If the agent is unavailable and the Park Contact if Agent is unavailable toggle button is disabled, the contact fails to reach the agent. The Queue To Agent activity exits the failure branch to the next activity in the flow with the corresponding output.

9

Choose the recovery queue ID from the Recovery Queue drop-down list.

The Queue To Agent activity queues contacts to the recovery queue when:

  • The Queue To Agent activity fails to deliver a contact to the preferred agent.

  • The agent doesn’t answer the contact.

  • A preferred agent rejects the contact.

You can configure the recovery queue with the Longest Available Agent. The recovery queue doesn't support Skills-based Routing.

The Queue To Agent activity is successful when the contact connects to the preferred agent. An error scenario occurs when a contact fails to reach the agent.

Error Scenarios

A contact fails to reach the agent when:

  • A preferred agent is unavailable and parking is disabled for the contact.

  • A variable lookup can't find the preferred agent.

Activity Output Variables

The Activity Output Variables store the data that is captured from activities and are automatically created when you add specific activities to the canvas.

The queue to agent activity has the following output variables:

Table 41. Output Variables

Output Variable

Description

QueueToAgent.AgentId

Stores the agent ID to which the contact is queued.

QueueToAgent.FailureDescription

Stores the description for the error scenario when the contact fails to get queued.

QueueToAgent.FailureCode

Stores the failure code value for the error scenario when the contact fails to get queued.

QueueToAgent.AgentState

Stores the states of the preferred agent when trying to queue the contact.

QueueToAgent.AgentIdleCode

Stores the description for the idle code of the preferred agent.

The QueueToAgent.FailureCode output variable contains one of the following values when a failure occurs. Each value indicates a failure code and a failure description.

Table 42. Queue To Agent Failure Code Description

Failure Code

Failure Code Value

Failure Description

1

AGENT_UNAVAILABLE

Agent is currently not in the available state.

2

AGENT_NOT_FOUND

The Queue To Agent activity is unable to find the agent by agent’s id or email address.

3

AGENT_NOT_LOGGED_IN

Agent is currently not logged in.

4

FEATURE_NOT_ENABLED

The Agent-based Routing feature isn’t enabled.

5

INVALID_VTEAM_ERROR

The reporting or recovery queue is invalid.

6

AGENT_BUSY

The agent is available, but engaged in another call.

The following table shows the applicable QueueToAgent.AgentState and QueueToAgent.AgentIdleCode values.

Table 43. AgentState and AgentIdleCode Values

Use Case

AgentState

AgentIdleCode

  • Invalid queue

  • Invalid agent

  • Agent isn't signed in

NOT_APPLICABLE

NOT_APPLICABLE

Agent is reserved for this call.

AVAILABLE

NOT_APPLICABLE

Park Contact if Agent is unavailable toggle button is On and the agent is idle

Idle

<AuxCode Name>

The idle code selected by the agent in the Agent Desktop.

Park Contact if Agent is unavailable toggle button is On and the agent channel is busy

AVAILABLE

NOT_APPLICABLE

Park Contact if Agent is unavailable toggle button is Off and the agent is idle

Idle

<AuxCode Name>

The idle code selected by the agent in the Agent Desktop.

Park Contact if Agent is unavailable toggle button is Off, agent is available, and agent channel is busy

AVAILABLE

NOT_APPLICABLE

Set Caller ID

Use the Set Caller ID activity to define the caller ID that displays during a call. The Set Caller ID activity is to be used only on Event Flows. The Set Caller ID is a terminal activity that marks the end of an occurred PreDial event flow. The Set Caller ID activity helps configure the ANI for the following scenarios:

  • Inbound calls

  • Outdial calls

  • Courtesy callback

  • Preview campaign

  • Web callback

  • Execute flow

  • Transfer to dial number

  • Consult to dial number

  • Consult to agent

  • Consult to EP-DN/queue

  • Transfer to EP/queue

You can configure this activity next to a PreDial event handler. The required ANI can be configured using Set Caller ID activity based on the Dialed Number Identification Service (DNIS), operation type, or participant type.

You can configure the agent's DN as a customized ANI, so that the callee agent can see the caller agent DN/extension number when they are contacted. This reduces the chances of internal calls getting dropped. For example, when a front office user (the contact center agent) calls a back-office user (an internal employee), the back-office user can see the internal caller id (contact number/extension) of the agent, hence minimizes call rejections.

For this purpose, the caller can see the contact number/extension only when the callee agent is contacted through outdial, consult, or transfer to DN, and the DN is added to the list of contact numbers.

You must add the contact number to the list of internal numbers for an organization in Control Hub. For more information on how to add a contact number, see Create contact number or extension.

If you enter a random number, the system checks this number with the default EP-DN mapping that is configured on Control Hub or Management Portal. If there is a mismatch, the system routes it back to the default ANI. For more information on Customized ANI validation, see Callback.

Table 44. Caller ID Settings

Parameter

Description

Static Caller ID

Choose a Dial Number that is mapped to an Entry Point, from the drop-down list. If you don't select a number, the system considers the default value depending on the call scenario.

Variable Caller ID

Choose a valid variable (a E.164 number, with a valid EP-DN mapping) from the drop-down list. If you don't select a number, the system considers the default value depending on the call scenario. If you provide a number that is not in the E.164 number format, the system uses the default value, depending on the call scenario.

To allow internal extensions as customized ANI for the callers, when you configure the predial flow for customer/consulted agent or dn/transferred agent or dn, choose Predial.otherPartyDn variable from the dropdown as Variable Caller ID. Since this variable contains the primary agent's DN, it will be a valid custom ANI shown on the receiver's device.

  • ANI customization has a dependency on regulatory requirements. Consider the regional dependencies before deployment of the environment.

  • A PreDial event handler that is used to customize the caller ID overrides the ANI that you have selected earlier such as agent selected outdial ANI, courtesy callback with customize ANI, or any similar scenario.

  • Flow support is required for any inbound or outbound scenario to customise the ANI.

  • For use cases having dependencies on service providers such as country-code based decisions, regional restrictions, etc., consider testing the flows with the service providers first.

For ANI to work as expected in different call scenarios, you require a Next Generation environment.

The ANI usage for multiple scenarios that are applicable in the Next Generation environment are:

Table 45. ANI usage for multiple scenarios in a Next Generation environment

Scenario

Configuration

Result ANI

Customer calls in

PreDial event handler is not configured

  • ANI of the contact is presented on the agent's device

  • EP-DN is presented on the contact's device

Customer calls in

PreDial event handler is configured

ANI is presented on the agent's device - as defined in the Set Caller ID activity

Agent Outdial

PreDial event handler is not configured

The contact's device and the agent's device are both presented with Agent selected Outdial ANI if the agent selects an Outdial ANI on the Desktop. Otherwise the contact's device and agent's device are both presented with the tenant's default ANI.

Agent Outdial

PreDial event handler is configured

For each participant's device, either the Agent selected Outdial ANI can be retained, if selected, or can be customised, as defined in the Set Caller ID activity.

Courtesy callback

Customer ANI defined in Callback activity

ANI defined at the Callback activity is presented to the contact's device.

Courtesy callback

  • Customer ANI defined in Callback activity

  • PreDial event handler is configured for customer leg

Set Caller ID activity configured will take precedence.

Courtesy callback

  • Customer ANI defined in Callback activity

  • PreDial event handler is not configured for customer leg

  • ANI defined at the Callback activity is presented to the contact's device.

  • If ANI is defined at the Set Caller ID activity, it is presented to the agent's device.

Courtesy callback

  • Customer ANI not defined in Callback activity

  • PreDial event handler is not configured for customer leg

Tenant default ANI is presented on the contact's device.

Agent transfer, consult

PreDial event handler is configured

Configured Set Caller ID is displayed on transferred consulted Agent-2 device.

Create contact number or extension

You can add a contact number to the list of internal numbers for your organization. The customized ANIs will be visible to these added contacts. You can either add a single contact number at a time, or use Bulk operations to upload contact numbers as a CSV file.

For more information on how to perform bulk operations to create, modify, import, or export configuration objects in Control Hub, see Bulk Operations in Webex Contact Center.

To add a contact number or extension:

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Tenant Settings > Voice > Contact Number.

3

Click Add more to add a new contact number/extension to the list.

You can create contact number/extension in a range between 2 to 9 digits. The contact number/extension can start with 0. You can add a maximum of 5000 contact numbers/extensions per organization.

Recording Control

Flow Designer provides a Recording Control activity for the purpose of capturing recording consent from the user or caller. Recording consent is one of the configuration properties that is available as part of this activity. Use a Menu activity to capture user consent into a Boolean flow variable. During an interaction, if you want to capture the consent value to generate a report, use the Boolean variable as an input to the Recording Control activity's consent property value. Then you can mark the variable used to capture the caller consent as reportable.

The flow developer can determine whether the recording consent for a call needs to be captured or not, for reporting purposes. When a customer wants to capture the consent for recording, then use global variables to generate a consent report. When a customer does not want to capture the consent for recording, use local variables. This offers better flexibility for tenants and customers to manage the use of variables.

You can configure Recording Control using these steps:

  1. In the Flow Designer, drag and drop the Recording Control activity from the Activity Library to the canvas.

  2. Click the Recording Control activity to configure the activity settings.

  3. In General Settings, enter a name for the activity in Activity Label.

  4. (Optional) In the Activity Description field, enter a description for the activity.

  5. In Recording Control Settings, select a flow variable from the drop-down list for Enable Recording.

A Menu activity for IVR (Interactive Voice Response) and a Recording Control activity when used together in the flow enables capture of recording consent. Priority is given to user consent setting in the flow compared to tenant level or queue level or recording schedule level configuration settings.

Recording control can be managed in the following scenarios:

  • If the user consent configuration is set to Yes in the flow, then the call is recorded, regardless of the recording configuration set at the tenant or queue or recording schedule level.

  • If the user does not consent and the configuration is set to No in the flow, then the call is not recorded, regardless of the recording configuration set at the tenant or queue or recording schedule level.

  • If the user consent is not configured in the flow, but a configuration is set to Yes at any one of the other levels such as tenant or queue or recording schedule, then the call is recorded.

  • If the user consent is not configured, and a configuration is set to No at all levels such as tenant, queue and recording schedule, the call is not recorded.

In addition, other recording configurations such as Continue On Transfer, Pause Resume Enabled and Pause Duration and so on, are still applied based on the existing hierarchy such as tenant, queue, or recording schedule level.

Output Variables

This activity has no output variables.

Record activity

The Record activity records the speech input or utterance of callers that can be referenced in the same call flow. This activity is available only for customers who use the Next Generation media platform. The system stores the recorded audio files only during the call, after which those files are automatically deleted from the system. Currently, the recorded audio files are in an un-encrypted format. We do not recommend recording sensitive information using this feature.

  • If you don't see the Record activity, contact Cisco Support to enable the corresponding feature flag.
  • Do not use the Record activity as part of event flows, especially after the Agent Disconnected event. Adding Record activity in the event flow removes audio files that are recorded through the Webex Contact Center Recording Management module.
1

Sign in to Control Hub, choose Services > Contact Center > Flows.

2

Click Manage Flows and then click Create Flows.

3

In the Flow Name field, enter a unique name and click Start Building Flow. The Flow Designer window appears.

4

Drag and drop the Record activity from the Activity Library to the main flow canvas.

5

In General Settings, perform the following actions:

  1. In the Activity Label field, enter a name for the activity.

  2. In the Activity Description field, enter a description for the activity.

6

In Record Settings, configure the following fields:

  1. Check or uncheck the Start tone check box to enable or disable the short beep sound to indicate the start of the recording. By default, the check box is enabled.
  2. In the Silence timeout field, enter the numerical value between 1 to 120 seconds. This indicates the maximum interval of silence allowed any time after the recording has started. The default value is 4 seconds. The recording stops when there is silence for the silence timeout.
  3. In the Maximum record time field, enter the numerical value between 1 to 120 seconds to indicate the maximum time allowed to record the caller’s utterance. The default value is 30 seconds. The recording stops when the recording reaches the maximum record time.
  4. In the Termination symbol field, choose either the character symbol # or * that the end user can use to end a recording. By default, the terminator symbol is #.
7

In the Output Variables section, view the following variables:

  • Record_audioFileData–Stores the details of the recorded audio files.
  • Record_errorCode–Stores the error status code of the errors that occur while initiating or during the recording of the caller's utterance.
  • Record_errorDescription–Stores the description of the errors that occur while initiating or during the recording of the caller's utterance.
  • You can use the Record_audioFileData output variable in activities such as Play Message, Menu, and Collect Digits in a call flow. This output variable can be configured as an audio variable in the Prompt settings of the IVR activities to play the recorded audio to the callers. The variable value can be in the form of a pebble expression: {{Record_activity_label.audioFileData.name}}.
  • You can use the Record_audioFileData output variable in the HTTP Request activity to upload the recorded audio to the external third-party server or API. This can be done by choosing the Content Type as File and the Record activity output variable from the Content drop-down in the Request Body.

The following table lists the error codes and descriptions for the Record activity:

Error Code

Error Description

Reason

1001

INVALID_SILENCE_TIMEOUT

The configured Silent timeout is not in the valid range between 1 and 120 seconds.

1002

INVALID_MAXIMUM_RECORDING_DURATION

The configured Maximum record time is not in the valid range between 1 and 120 seconds.

1003

INVALID_TERMINATION_SYMBOL

The configured Termination symbol is not one of the allowed characters * or #.

1004

RECORD_API_FAILURE

An error that is occurred in the API to initiate the recording.

1005

FEATURE_DISABLED_FOR_ORG

The feature is not enabled for the organization.

1006

No input audio is detected to record. The recorded audio file may contain silence.

1007

An error that is occurred in the media services while recording.

Activities in Flow Control

Start Flow

The Start Flow activity appears on the Main Flow canvas by default and cannot be deleted. This activity indicates the event that triggers this flow. This activity dictates how the flow can be used and the types of activities that are available for configuration.

The only Flow Trigger Event currently available is NewPhoneContact. The system triggers this event when a new call reaches a telephony entry point in the contact center. You can use flows that are triggered by the NewPhoneContact event in Entry Point Routing Strategies. The Flow Trigger Event is currently selected by default and cannot be edited. Additional events will be exposed in the future.

The Start Flow activity is automatically labeled with the name of the selected Flow Trigger Event. This allows you to quickly see what type of flow is being built.

Output Variables

The number and type of Output Variables associated with the Start Flow activity depend on the selected Flow Trigger Event. These variables store data that is captured at the moment the flow is triggered. For example, the output variables described below are exposed through the NewPhoneContact event.

Use these variables in later activities to control the flow sequence.

  • NewPhoneContact.ANI

    Automatic Number Identification (ANI) is a feature of a telecommunications network to automatically determine the originating phone number of a call. This variable stores the phone number of the caller who triggered the NewPhoneContact event.

  • NewPhoneContact.DNIS

    Dialed Number Identification Service (DNIS) is a service that identifies the originally dialed telephone number of a call. This variable stores the phone number that the caller dialed to trigger the NewPhoneContact event.

  • NewPhoneContact.InteractionID

    Unique Webex Contact Center identifier that is associated with each interaction triggered by the NewPhoneContact event.

    You can display the Interaction ID on the Agent Desktop. See the Examples section in the Create Custom Flow Variables topic.
  • NewPhoneContact.PSTNRegion

    The PSTN region that is configured in Entry Point (EP)- Dial Number (DN) mapping for regional voice media services. This variable is supported only on the Next Generation voice platform.

  • NewPhoneContact.FlowVersionLabel

    Version label of the flow that is generated during flow execution. Flow developers can create different behaviors for different flow versions such as 'Dev', 'Test', 'Live', and 'Latest'. Using the NewPhoneContact.FlowVersionLabel variable, developers can modify the flow logic dynamically by accessing the version labels within the flow.

  • NewPhoneContact.FlowId

    Unique identifier of the currently executing flow.

  • NewPhoneContact.EntryPointId

    Unique identifier of the Entry Point that starts the flow.

  • NewPhoneContact.OrgId

    Unique identifier of the organization.

End Flow

End Flow is a terminating activity that marks the end of a flow path. You can use any number of End Flow activities to construct your flow to ensure that all flow paths terminate.

Don't use the End Flow activity in an IVR flow. End Flow use with IVR may result in dead air and the call may not disconnect.

You can give each activity a unique label and description.

Table 46. General Settings
Parameter Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Set Variable

Use the Set Variable activity to set value to a variable. You can modify the value of the variable based on your requirement or according to a flow.

Specify the type of variable you wish to select. For more information, see Custom Flow Variables and Predefined Variables.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Error Handling.

The following sections enable you to configure the Set Variable activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Variable Settings

Parameter

Description

Variable

Choose the variable from the drop‐down list. Only Custom Flow variables can be set to custom values. Predefined Variables have fixed values as dictated by the flow execution.

Variable Value

Click the Set Value radio button to set the variable to a specific value. The input field type changes based on the data type of the selected variable. To learn more about variable data types, see Create Custom Flow Variables.

If the value is a string, you can enter basic text or an expression.

To enter an expression, use the {{variable}} syntax.

Click the Set to Variable radio button to set the variable value to the value of another variable in the flow. Choose a variable from the drop‐down list. All variables in the flow are available for selection.

BRE Request

Use the BRE Request activity to retrieve the data from your organization's Business Rules Engine (BRE) to use in the flow. The BRE Request activity uses standard HTTP protocols to fetch data from the BRE.

The following sections enable you to configure the BRE Request activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Query Parameters

As part of the BRE Request, you can pass the parameters that are provided in the API call to the BRE. In the Key‐Value columns, you can enter the key for the query and the associated value to send along with the query. You can also use the double curly braces syntax to pass variable values.

The BRE activity has one predefined Query Parameter: context. This query parameter is passed in the API call to the BRE.

The TenantID is automatically injected as a parameter and does not need to be configured.

Table 47. Query Parameters

Parameter

Description

Context

Contains the reason for the request. This mandatory parameter can't be edited or deleted.

This parameter must contain the same value as the value specified in the Attribute context in BRE. For more information, see the Creating a Set of Rules section in the Cisco Webex Contact Center Business Rules Engine User Guide.

ANI

Contains the originating phone number of the call. This is a default parameter that you can edit or delete, based on the rules configuration in the BRE.

A sample value for ANI is {{NewPhoneContact.ANI}}

Response Timeout

Specifies the connection timeout for the BRE Request. Default is set at 2000 milliseconds.

Number of Retries

Specifies the number of times the BRE Request is attempted after failure.

This parameter is used if the status code is 5xx; for example, 500 or 501.

To add a query parameter, click Add New. This adds a row where you can enter the key value pairs. You can add as many query parameters as required as part of the BRE Request.

Parse Settings

This section enables you to parse the response from the BRE Request into different variables:

Parameter

Description

Response Variable

Choose a variable to which you want to extract a particular section from the BRE Request response object. You can choose only Custom Flow variables from the drop-down list.

Path Expression

Define the Path Expression for parsing the response object. Depending on the kind of data structure of the response object and the use cases for extracting a subset of that information, the Path Expression varies.

Data is normalized to an object hierarchy before Path Expression execution, so JSONPath is used in the response object regardless of the configured Content Type.

Output Variables

The BRE Request returns two output variables:

  • BRERequest1.httpResponseBody: Returns the response body for the BRE Request.

  • BRERequest1.httpStatusCode: Returns the status code of the BRE Request.

    These response codes are classified into the following categories:

    • Informational responses (100–199)

    • Successful responses (200–299)

    • Redirects (300–399)

    • Client errors (400–499)

    • Server errors (500–599)

Content Type Formats

The following examples describe sample input Content Type formats and the JSON response.

Content Type XML

Use this tool to convert XML into JSON format https://codeshack.io/xml-to-json-converter/.

XML Input Format:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Test application</body>
</note>

Data/JSON Normalized Response

{
   "note": {
      "to": "Tove",
      "from": "Jani",
      "heading": "Reminder",
      "body": "Test application"
   }
}

Example JSON Path Expression: Use $.note.from to get the value as Jani.

Content Type TOML

Use this tool to convert TOML to JSON format https://www.convertjson.com/toml-to-json.htm.

TOML Input Format:

title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

Data/JSON Normalized Response

{
   "title": "TOML Example",
   "owner": {
      "name": "Tom Preston-Werner",
      "dob": "1979-05-27T15:32:00.000Z"
   }
}

Example JSON Path Expression: Use $.owner.name to get the value as ‘Tom Preston-Werner’.

Content Type YAML

Use this tool to convert YAML to JSON format https://www.convertjson.com/yaml-to-json.htm.

YAML Input Format:

# An employee record
martin:
  name: Martin D'vloper
  job: Developer
  skill: Elite

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

Content Type JSON

Use the JSON Expression Evaluator https://jsonpath.com/.

JSON Input Format:

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

HTTP Request

The HTTP Request activity fetches information from an external data source such as a CRM using standard HTTP protocols.

Basic Auth and OAuth 2.0 attributes are supported for authenticated endpoints.

The following sections enable you to configure the HTTP Request activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the HTTP Request activity.

Activity Description

(Optional) Enter a description for the activity.

HTTP Request Settings

Parameter

Description

Use Authenticated Endpoint

Enables the ability to make an HTTP request to an authenticated endpoint. By default, this toggle button is on.

Connector

Choose the Connector from the drop-down list. The drop-down list displays the name of the Connectors configured in the Control Hub. The Connector provides a common location to store credentials for the service you want to access.

For example, the Salesforce Connector validates and allows connectivity to the Salesforce account. This Connector can then be referenced from within the HTTP Request activity to make a request. This essentially creates the domain section of the URL. To configure a connector on Control Hub, see the Set Up Integration Connectors for Webex Contact Center article.

Request Path

Enter the request path for the HTTP request.

This field displays when the Use Authenticated Endpoint toggle button is on.

Request URL

Defines the Request URL which spans both domain and request paths for unauthenticated endpoints.

This field displays when the Use Authenticated Endpoint toggle button is off.

Method Types: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD

Defines the HTTP request activity that supports the following popular methods:

  • GET: Request data from a specified resource.

  • POST: Send data to a server to create or update a resource.

  • PUT: Replaces all current representations of the target resource with the request payload.

  • PATCH: Apply partial modifications to a resource.

  • DELETE: Delete the specified resource.

  • OPTIONS: Describe the communication options for the target resource.

  • HEAD: Asks for a response identical to that of a GET request, but without the response body.

Query Parameters

Defines parameters that you pass as part of the HTTP Request. The web server provides these extra parameters to use, for example, to make a GET Request. In the Key‐Value columns, enter the key for the query and the associated value that needs to be sent with the query. The parameters are a list of key-value pairs that are separated with the ampersand (&) symbol. You can also use the variable values in the double curly braces syntax to pass variable values.

For example, if you want to fetch the account balance of a customer based on the ANI, depending on the data store service APIs, the key and value can be:

Key: ANI

Value: {{NewPhoneContact.ANI}}

To add a query parameter, click Add New. This adds a row where you can enter the respective key-value pairs. You can add as many query parameters as required as part of the HTTP Request.

HTTP Request Headers

Defines the HTTP headers that let the client pass additional information with an HTTP request. Request headers such as Accept, Accept‐*, or If‐* allow to perform conditional requests along with other headers such as Cookie and User‐Agent.

For example, as part of a GET Request, use:

GET /home.html HTTP/1.1 
Host: developer.mozilla.org 
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) 
Gecko/20100101 Firefox/50.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept Language: en‐US,en;q=0.5 Accept Encoding: gzip, deflate, br 
Referer: https://developer.mozilla.org/testpage.html 
Connection: keep‐alive 
Upgrade‐Insecure‐Requests: 1 
If‐Modified‐Since: Mon, 18 Jul 2016 02:36:04 GMT 
If‐None‐Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a" Cache‐Control: max‐age=0 

To add an HTTP Header, click Add New. This adds a row where you can enter the respective keyvalue pairs. You can add as many HTTP headers as required as part of the HTTP Request.

Content Type

Specifies the expected content type of the request body. Application/ JSON, Form URL Encoded, TOML, XML, File and YAML are supported content types.

Request Body

Specifies the data bytes transmitted in an HTTP transaction message, immediately following the headers if there are any. In certain types of HTTP Requests such as a POST or PUT request, you can send a request body that specifies the content to update at the target resource.

If you choose the Content Type as File, the CONTENT and FILE NAME columns appear. The CONTENT drop-down displays the list of JSON variables from the flow and output variables from the Record activities.

  • CONTENT: Choose the recorded audio file from the drop-down list. The audio file is populated based on the output variables configured in the Record activities. The system sends this audio file to the third-party server or API.
  • FILE NAME: Enter the name of the audio file. This file name appears on the destination server or API.

Response Timeout

Specifies the connection timeout for the HTTP Request. Default is set at 2000 milliseconds, however it can have any unlimited value.

Number of Retries

Specifies the number of times the HTTP Request is attempted after failure. Retry for service is unavailable. You can give any unlimited value for number of retries.

This parameter is used if the status code is 5xx; for example, 500 or 501.

Parse Settings

This section enables you to parse the response generated from the HTTP Request into different variables. This configuration is optional because not all HTTP Request scenarios require parsing.

Table 48. Parse Settings

Parameter

Description

Content Type

Specifies the expected content type of the response body. JSON, TOML, XML, and YAML are the supported content types.

Output Variable

Choose a variable to contain the data from a specific section of the HTTP Request response object.

Path Expression

Define the Path Expression for parsing the response object. Depending on the response object data structure and the reason to extract a subset of information, the Path Expression varies.

Data is normalized to an object hierarchy before Path Expression execution, so JSONPath is used in the response object regardless of the configured Content Type.

Output Variables

The HTTP Request returns the following output variables:

  • HTTPRequest1.httpStatusCode: Returns the status code of the HTTP.

    These response codes are classified into five main categories:

    • Informational responses (100–199)

    • Successful responses (200–299)

    • Redirects (300–399)

    • Client errors (400–499)

    • Server errors (500–599)

  • HTTPRequest1.httpResponseBody: Returns the response body for the HTTP Request.

  • HTTPRequest1.httpResponseHeaders: Returns the header information from the response.

Content Type Formats

The following examples describe sample input Content Type formats and the JSON response.

Content Type XML

Use this tool to convert XML into JSON format https://codeshack.io/xml-to-json-converter/.

XML Input Format:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Test application</body>
</note>

Data/JSON Normalized Response

{
   "note": {
      "to": "Tove",
      "from": "Jani",
      "heading": "Reminder",
      "body": "Test application"
   }
}

Example JSON Path Expression: Use $.note.from to get the value as Jani.

Content Type TOML

Use this tool to convert TOML to JSON format https://www.convertjson.com/toml-to-json.htm.

TOML Input Format:

title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

Data/JSON Normalized Response

{
   "title": "TOML Example",
   "owner": {
      "name": "Tom Preston-Werner",
      "dob": "1979-05-27T15:32:00.000Z"
   }
}

Example JSON Path Expression: Use $.owner.name to get the value as ‘Tom Preston-Werner’.

Content Type YAML

Use this tool to convert YAML to JSON format https://www.convertjson.com/yaml-to-json.htm.

YAML Input Format:

# An employee record
martin:
  name: Martin D'vloper
  job: Developer
  skill: Elite

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

Content Type JSON

Use the JSON Expression Evaluator https://jsonpath.com/.

JSON Input Format:

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

Activity Wait Settings

In certain cases, should an HTTP response experience a notable delay, the caller experience a period of silence. To mitigate this scenario, it's feasible to upload an audio file. This file will be played to the caller during the interim of HTTP response retrieval. Additionally, it's possible to configure the duration of the delay before this audio is played.

ParameterDescription
Enable Audio on WaitToggle this setting to play the selected audio file in a continous loop ensuring an uninterrupted playback while system retrieves HTTP response.
Audio File

Choose an audio file. System plays this audio file to the caller to fill the silence while it retrieves an HTTP response.

Delay

Set the delay time value in milliseconds according to requirements. The default value is preset to 2000 milliseconds.

It's best to keep the delay setting above 2 seconds and try to optimize the HTTP query response time. This ensures that the audio doesn't play unnecessarily while ensuring a minimum delay for dead air to the caller.

Parse

Use the Parse activity to extract information from the data object. The Parse activity takes input string (JSON, TOML, XML, and YAML) and converts it into a JSON structure based on the specified data. You can then assign the JSON structure to a variable using a JSON path expression. 

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Error Handling.

The following sections enable you to configure the Parse activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity

Parse Settings

Parameter

Description

Input Variable

Specifies the variable that stores the data object to use for parsing.

Content Type

Specifies the expected content type of the data object. JSON, TOML, XML, and YAML are supported content types.

Output Variable

Choose a variable to contain the data from a specific section of the HTTP Request response object.

Path Expression

Define the Path Expression for parsing the response object. Depending on the response object data structure and the reason to extract a subset of information, the Path Expression varies.

Data is normalized to an object hierarchy before Path Expression execution, so JSONPath is used in the response object regardless of the configured Content Type.

Path Expressions should confirm to Jayway JSONPath expressions. For more information, see https://github.com/json-path/JsonPath.

Content Type Formats

The following examples describe sample input Content Type formats and the JSON response.

Content Type XML

Use this tool to convert XML into JSON format https://codeshack.io/xml-to-json-converter/.

XML Input Format:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Test application</body>
</note>

Data/JSON Normalized Response

{
   "note": {
      "to": "Tove",
      "from": "Jani",
      "heading": "Reminder",
      "body": "Test application"
   }
}

Example JSON Path Expression: Use $.note.from to get the value as Jani.

Content Type TOML

Use this tool to convert TOML to JSON format https://www.convertjson.com/toml-to-json.htm.

TOML Input Format:

title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

Data/JSON Normalized Response

{
   "title": "TOML Example",
   "owner": {
      "name": "Tom Preston-Werner",
      "dob": "1979-05-27T15:32:00.000Z"
   }
}

Example JSON Path Expression: Use $.owner.name to get the value as ‘Tom Preston-Werner’.

Content Type YAML

Use this tool to convert YAML to JSON format https://www.convertjson.com/yaml-to-json.htm.

YAML Input Format:

# An employee record
martin:
  name: Martin D'vloper
  job: Developer
  skill: Elite

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

Content Type JSON

Use the JSON Expression Evaluator https://jsonpath.com/.

JSON Input Format:

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Data/JSON Normalized Response

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Example JSON Path Expression: Use $.martin.job to get the value Developer.

Condition

The Condition activity represents a decision. The flow takes the True or False path depending on whether the condition is met. 

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Condition parameters and outputs:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Expression

Wrap each expression as follows: {{Enter Expression}}.

Example: {{HTTPRequest1.httpStatusCode == 200}}

If you use an expression without braces, the system throws a Flow Error.

Table 50. Expression

Condition

Description

Condition

Choose the Condition from the drop‐down list:  

  • < (less than)

  • != (not equal)

  • > (greater than)

  • == (equal to)

  • >= (greater than or equal to)

  • <= (less than or equal to)

  • * (multiplied by)

  • / (divided by)

  • + (add)

  • ‐ (subtract)

Case

Use the Case activity if there are multiple possibilities or outcomes at a certain decision point in your call flow.

For example, you can use a Case activity to define different screen pops for different agent teams depending on the team name. Each Case becomes a branch from which you define the appropriate paths. The flow proceeds down the path that evaluates as true for a particular instance of the flow. Each Case activity has a default that the system uses for any undefined case. If none of the cases are true, the default Case is evaluated as true and the flow proceeds along that branch.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the Case activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Case
Table 51. Case settings

Parameter

Description

Variable

Choose a variable against which you want to evaluate the different cases. Choose the variable from the drop-down list.

Expression

Enter an expression to evaluate the different cases against. Use the Pebble Template syntax to define the expression. For more information on the Pebble Template Syntax, see Pebble Template Syntax.

Case

Defines the different cases to compare to the variable or expression. You can add up to 20 case statements per activity.

Click Add New to add a new case statement block to compare against a static value, a variable, or an expression. If you use a variable or expression, use the Pebble Template Syntax. For more information on the Pebble Template Syntax, see Pebble Template Syntax.

Table 52. Activity Outcomes

Output

Description

True

Path to take if the condition is met. 

False

Path to take if the condition is not met. 

GoTo

Flow chaining gives you the ability to chain multiple flows. To achieve flow chaining, you can add the GoTo terminating activity to the canvas and indicate if the current flow should go to an entry point or another flow. For more information, see Flow Chaining.

If the activity library does not display the GoTo activity, contact Cisco Support to have the corresponding feature flag enabled.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Event Flows.

The following sections enable you to configure the GoTo activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Flow Destination Settings

You can modify the caller's experience based on time (if handing off the call to an entry point), or to reuse a single flow in multiple scenarios (if handing off the call to a flow).

Based on the GoTo option, the flow variables are passed on from the current flow as follows:

  • Go to Entry Point: The custom flow variables and global variables with the same name and data type are copied from the current flow to the flow that is associated with the entry point.

  • Go to Flow: The flow variables that are configured in the Variable Mapping section are copied from the current flow to the new flow.

Table 53. Flow Destionation Settings
ParameterDescription
Go to Entry Point

Choose this option if the current flow should go to an entry point. In the combo box, enter the entry point if the flow logic should change based on the active routing strategy at the time of transfer.

The custom flow variables and global variables with the same name and data type are copied from the first flow to the new flow associated with the entry point.

Only the telephony entry points that are created in the Webex Contact Center Control Hub are displayed.

Static Entry Point: Choose an entry point from the list of pre-configured entry points. Only entry points of the same channel type are valid.

Dynamic Entry Point: Choose a variable that maps to a valid entry point ID from the Control Hub. Only entry points of the same channel type are valid.

Go to Flow

Choose this option if the current flow should go to another flow. In the combo box, choose the destination flow from the drop-down list. The destination drop-down list lists only the published flows.

You can view the desired flow in a separate tab. To view a flow, you can either click the View option that appears while you are selecting a flow from the list or click View Selected Flow option after you have selected a flow in the GoTo Flow option.

You can manually map variables across two flows in the Flow Variable Mapping section.

Static Flow: Select a flow from the list of pre-configured flows.

Dynamic Flow: Choose a variable that maps to a valid Flow ID. You can locate the Flow ID on the Flow Settings under the General Settings pane.

Flow Variable Mapping

If you choose the Go To Flow option, the Flow Variable Mapping section displays. Flow variables and global variables with the same name and same data type between flows are automatically mapped. This feature helps you to edit, delete, or add more variable mappings between the current flow and the destination flow.

You can't map variables for Flows in a GoTo Activity when using Variable Flows. You can only map variables to Static flow targets. Refer to the table below for the behavior of variable mapping with Variable Flows.
When you map a JSON variable from a main flow to the target flow in GoTo activity, store the JSON output in another variable such as a string or any other variable type, and map that to the same type of variable in the target flow.
Table 54. Flow Variable Mapping

Parameter

Description

Map Current Variables

Lists all the flow variables and global variables in the current flow. You can map the same variable to multiple variables in the destination flow.

In the combo box, enter the variable to be mapped.

To Destination Variable

List of all the flow variables and global variables in the destination flow that will be copied from the current flow after hand-off.

In the combo box, enter the variable that is mapped in the destination flow. You can map the variables in the destination flow only once, while you can map the variables in the current flow multiple times.

To add, edit, or delete variable mappings:

  • To edit a variable mapping, choose the appropriate flow from the drop-down list.

    After you choose a variable in either the Map Current Variables or To Destination Variable drop-down lists, the other drop-down list displays only the variables of the same data type.

    For example, if you choose customerId of type Integer from the Map Current Variables drop-down list, the To Destination Variable drop-down list displays only variables of type Integer in the new flow.

  • Click the Delete icon to delete a variable mapping.

  • Click Add New to add a new variable mapping. Choose the variables to be mapped in the Map Current Variables and To Destination Variable drop-down lists.

Variable Details

The Current Flow Variable Details section displays all of the flow and global variables in the current flow.

The Destination Flow Variable Details section displays all of the flow and global variables in the destination flow.

You can click on the tag for information about a variable. When you select a variable for mapping, the variable turns green that helps you see what has already been mapped.

To ensure seamless information accessibility and interaction throughout the call lifecycle, variable mapping is crucial during flow execution. It involves the strategic alignment of Global Variables with both local and Agent Viewable Flow variables, tailored for both static and dynamic flow types:

Variable mapping is important during Flow Chaining. The table below explains key differences between using static and dynamic GoTo options.

Static

GoTo Flow: It handles the Variables mapped in the Flow Variable Mappings section.

GoTo Entry Point: Agent viewable Flow variables and Global Variables are mapped automatically when transferring to an entry point.

Dynamic

GoTo Flow: Agent viewable Flow variables and Global Variables are mapped automatically.

GoTo Entry Point: Agent viewable Flow variables and Global Variables are mapped automatically

Goto Activity Error Codes

Failure Code

Failure Description

Explanation
1

FailureCode

Stores the failure code. The system sets this value only when the activity fails.

2FailureDescription

Stores the failure details. The system sets this value only when the activity fails.

Business Hours

The Business Hours activity enables you to use working and nonworking hours such as holidays, and overrides in your organization that are defined in Control Hub. You can add the Business Hours activity into a flow and assign that flow to an entry point. Using this activity, you can consume working hours, holidays, and overrides to consolidate multiple routing strategies for all their schedules into a single flow.

Use the Business Hours activity to program a schedule of operation in a flow. This activity determines if a certain schedule is active at any given time and routes the execution of the flow accordingly.

Administrators can manage business hours entities from Control Hub. For more information, see Set up Business Hours.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during the flow execution. For more information, see Error Handling.

The following sections enable you to configure the Business Hours activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the activity.

Activity Description

(Optional) Enter a description for the activity.

Schedule Details

In the Schedule Details section, you can choose a business hour from the drop-down list to define when different paths of the flow are executed. Schedule indicates the shift that is defined in the working hours object of the chosen business hour. The flow gets executed primarily based on the timeframe defined in the shift of the chosen business hour. Other business hours entities like holiday lists and overrides take precedence over the working hours if the timings coincides with the current shift timing.

  • Static Business Hours: Choose a Business hours from the Control Hub.
  • Variable Business Hours: Choose a variable that maps to a valid Business Hour from the Control Hub.

If any of the ordered list inputs is empty, Flow Designer throws a flow validation error. You must resolve these errors before publishing the flow.

Business Hours Nodes

You can configure the following nodes in the Business Hours activity:

Parameter

Description

Overrides

If the current time is defined as an override as in the Overrides list, the activity takes the Override branch regardless of the shift timings mentioned in the chosen working hours.

Holidays

If the current day is a holiday as defined in the Holidays List, the activity takes the Holidays branch regardless of the shift timings mentioned in the chosen working hours.

Working Hours

This is the primary node that considers the shift timing mentioned in the selected business hour in the Schedule Details section. The activity takes this branch if the current time matches the chosen shift timing.

Default

The activity takes the Default branch if none of the above evaluates.

Output Variables

The Business Hours activity employs the following output variables.

Table 56. Business Hour activity output

Variable Name

Description

WorkingHoursShift_name

During the flow execution, this variable stores the name of the shift defined in the working hour.

Holidays_Name

During the flow execution, this variable stores the name of the holiday if the current day is a holiday as defined in the Holidays List.

Overrides_Name

During the flow execution, this variable stores the name of the override that matches with the current time as defined in the Overrides.

status

This variable stores which of the above node was chosen during the flow execution, such as working hours, holidays, override, or default.

Wait

The Wait activity enables you to pause the flow execution for a specified duration. When you configure this activity with the wait period, the flow execution pauses for the duration specified in the Wait activity in the execution path.

We don't recommend usage of the Wait activity when an IVR session is active as it may cause the IVR session to time out. In such cases, contact will experience dead air resulting in call failures. We strongly recommend flow designers to use the Wait activity in the CallbackFailed event and specify the wait period.

The Wait activity is generic in nature. When you design a flow, you can place this activity after any activity as per your requirement. For example, during callback retry, this activity pauses the flow execution and retries the callback.

The following sections enable you to configure the Wait activity:

General Settings

Parameter

Description

Activity Label

Enter a name for the Wait activity.

Activity Description

(Optional) Enter a description for the activity.

Wait Settings

Parameter

Description

Duration

Choose a duration in HH:MM:SS format to specify the time duration for which the flow execution pauses with a minimum of 10 seconds and a maximum of 72 hours.

Click on the Duration field to set the time. If you enter the minutes and seconds fields to more than 59, it automatically defaults to 59. If you set the hours field to more than 72, it prompts you to enter the duration between 00:00:10 and 72:00:00.

Currently there’s a deviation up to a few milliseconds while executing this activity. Don't use the wait activity in use cases that require high precision.

Output Variables

No output variable is available in this activity.

Percentage Allocation

The Percentage Allocation activity enables you to distribute call traffic across different paths in a flow. You can use this activity as a flow branching mechanism across multiple flow paths and create multiple exit paths to allocate contacts to different queues, sites, and external servers.

The system uses a Weighted Round Robin (WRR) algorithm to distribute traffic and this may create imbalances. The algorithm resets every time you publish the flow. We recommend you to test the flow execution before deploying changes into production.

Let's take an example of a percentage distribution of 50%, 30% and 20% respectively to understand the distribution of 10 calls under WRR. Eventually, the system will distribute calls evenly, such as 5 in exit path 1, 3 in exit path 2, 2 in exit path 3. However, this happens dynamically in an adjusted manner with the weights of 5:3:2. One possible outcome of distribution is as follows, taking 10 consecutive calls such as Path1, Path2, Path1, Path2, Path3, Path1, Path2, Path3. It is important to note that this is one possible distribution and that contact distributions are adjusted with varying load distributions.

The percentage allocation activity now allows percentage values ranging from 0 to 100. Administrators can utilize the 0% setting to create switchboard use cases. This allows the traffic to be turned off by default. However, you can activate these connections later to allocate distributions greater than 0%.

Moreover, you can add the Percentage Allocation activity before the Feedback activity to configure how you want to manage the call traffic. You can allocate 50% of feedback via email, 30% from SMS, and 20% from survey.

Similarly, in a geographically diverse environment, you can configure the Percentage Allocation activity to send 10% of contacts to Boston, 5% to Chicago, and distribute the remaining 85% to another set of locations.

You can configure an error-handling path (Undefined Error) to handle system errors that may occur during flow execution. For more information, see Error Handling.

Before you begin

1

In Flow Designer, drag and drop the Percentage Allocation activity from the Activity Library to the main canvas.

2

Click the Percentage Allocation activity to configure the activity settings.

3

In General Settings:

  • In the Activity Label, enter a name for the activity.

  • (Optional) In the Activity Description field, enter a description for the activity.

4

In Percent Allocation, create the required allocation paths. Initially, the system sets the allocation default path to 100%. You can edit the percent value and description, and also add new paths.

  1. Click Add New to create a new path.

  2. Enter the percentage and path name.

    • You can allocate a minimum of 0% and a maximum of 100% per exit path.

    • Ensure that all the allocations add up to 100%. The system throws an error while validating the flow if the allocation percentage does not meet or exceed 100%.
    • You can add a maximum of 10 paths.
  3. (Optional) Click the Delete icon beside a path to remove the record. You may choose to adjust the percentage with the required set of connections and delete the additional ones as well. The system throws an error if the total allocations aren't adding up to 100%.

The percentage allocation activity has the following output variables:

  • Percentallocation.percentage - Stores the next percentage route.

  • Percentallocation.description - Stores the description.

Support for workflows in Outdial Entry Point

The following activities and events are supported when you create workflows for outdial voice contacts:

  • HTTP Request

  • Condition

  • Parse

  • Set Variable

  • Business Hours

  • End Flow

  • Screen Pop

  • PreDial event

All event handlers as applicable are supported. Event handlers such as PreDial event, Agent Offered and so on, will be populated based on the activities that you add in the main flow. Global variables and local variables are supported as part of the flow.

The following activities are not supported when you create workflows for outdial voice contacts:

  • Queue Contact

  • Queue To Agent

  • Callback

  • Queue Lookup

  • Advanced Queue Information

  • Blind Transfer

  • Escalate Call Distribution Group

  • IVR message

Based on the above activities, the system will gracefully support the error and success paths seamlessly.

When you design a flow for Outdial Entry Point, don't include a Disconnect Contact activity at the end of the flow. If you use a Disconnect Contact activity in the flow, this causes the flow to end the call and prompt a wrap-up, while the outdial call is actually active and connected.

Events

The Event Flows tab contains the following event handlers that you use across different activities:

  • OnGlobalError

    This event facilitates the global error handling. The system triggers this event when you don't configure the error path links on an activity. All Activities in Call Handling and Activities in Flow Control expose this event. For more information, see OnGlobalError Workflow.

  • AgentAnswered

    The system triggers this event when an agent answers an inbound call and interrupts the contact's experience in a queue.

    Activities that open up this event are Screen Pop and Queue Contact.

  • PhoneContactEnded

    The system triggers this event when a live call disconnects, and removes all participants. The event is available if you use selected call handling activities in a flow such as Screen Pop and Feedback. This event doesn't require escalation to an agent.

    When you create a flow, don’t add any IVR activity after the PhoneContactEnded event. During the flow execution, the flow won't work when you add an activity after the contact ends.

    Only the Queue Contact activity exposes this event.

  • AgentDisconnected

    The system triggers this event when the last agent disconnects from a live call, leaving the customer alone on the line.

    The Queue Contact activity exposes this event.

  • AgentOffered

    The system triggers this event when a voice contact is offered to an agent. This event allows the flow developer to configure multiple supported activities that are part of event handling. For example, a flow developer can configure a Screen Pop activity against an AgentOffered event. This configuration provides customer-related information to the agent, before the agent takes or answers a call. This event is associated with NewPhoneContact.

    The AgentOffered event is not supported for progressive campaigns and hence it is not available in the Progressive Campaign CPA release.

    You can view the related variables in Event Output Variables.

  • CallbackFailed

    The system triggers this event when a courtesy callback fails. This event is available if you use Callback activity in the Main Flow.

    • The system retries a callback only when a callback fails from the contact's end. The callback fails when the contact is busy or unavailable, or there is no answer from an agent.

    • Also, the call fails from the agent end when an agent's phone is not reachable or the agent declines the call. The call moves back to the queue and routes again to an available agent.

    To use a retry callback in a flow, configure a local flow variable (using SetVariable activity) with value 0 and increment it as required. Ensure that the value is less than the Retry variable count value.

    You can attach other events that you require in the flow to attempt a callback retry. Include a Wait activity followed by a Callback or any of the queuing activities such as Queue To Agent and Queue Contact in the flow. Use these activities in any combination or order, after the Wait activity.

    To end the retries:

    • For a true condition, use End Flow activity. Don't use a Disconnect activity.

    • For a false condition, use a Disconnect after a Retry variable is configured in the flow. In this case, all the retry attempts are complete and there are no retries available.

    • The maximum number of callback retry attempts are 10. The maximum time the interaction can stay in the system is 14 days. Whichever occurs first is considered as the life of an interaction for configuring a retry.

    • When you use a Wait activity, the minimum delay interval between retry is 10 seconds, and the maximum delay interval between retry is 72 hours.

    • When the state of a contact is in parked timeout, and if retry attempts are available, a CallbackFailed event generates. The configured event handler in the flow continues to retry the callback for the remaining attempts.

    • When a callback to a contact fails, the contact is dequeued, and the CallbackFailed event generates. The retry handler can queue it again using any of the activities like Callback (same or different destination), Queue Contact, and/or Queue To Agent.

    • If callback is configured to a different destination in CallbackFailed event handler, skills will not be carried forward.
  • PreDial

    As part of NewPhoneContact, the PreDial event enables the flow developer to set or customize the caller ID using the Set Caller ID activity.

    When you create a workflow, this event is available on the Event Flows tab of Flow Designer. This is an event which is terminated by configuring Set Caller ID activity. This event is triggered for both agent and customer based on the call scenario.

    For campaign calls to succeed, the agent calls and customer calls must be made from the same media region. The media region is selected based on the ANI/CLID of the call when presented to media. The mapping between the the ANI and the media region is performed in Control Hub. The ANIs which are selected on the agent call and the customer call, if controlled via the PreDial event in the flow, should be chosen such that both calls emanate from the same region.

    For example, if an agent is located in Singapore, but the customer calls are to be made in the United States, the ANI for the customer call may be selected such that the media region is the US. Similarly, the ANI selected for the agent call in the PreDial event should also be chosen such that the media region selected is the US.

    The following table provides the list of operation types and the corresponding participant types for PreDial.operationType.

    Table 57. PreDial.operationType related operation and participant types

    PreDial.OperationType

    PreDial.ParticipantType

    INBOUND

    Agent

    OUTDIAL

    Agent, Customer

    COURTESY_CALLBACK

    Agent, Customer

    PREVIEW_CAMPAIGN

    Agent, Customer

    WEB_CALLBACK

    Agent, Customer

    TRANSFER_TO_DN

    DN

    TRANSFER_TO_AGENT

    Agent

    CONSULT_TO_DN

    DN

    CONSULT_TO_AGENT

    Agent

    CONSULT_TO_QUEUE

    Agent

    CONSULT_TO_EP_DN

    EP-DN

    • Customize ANI is not applicable for Supervisor when call monitoring is configured.

    • Configure every PreDial event handler path with Set Caller ID as a terminal activity, otherwise the contact can be abandoned.

    • Flow support is required for any inbound or outbound scenario to use PreDial event handler.

    • Do not use flow activities that queue a contact with the PreDial event handler.

    • For ANI configured against an outbound contact, the call is routed through the region the Agent ANI is mapped to regardless of the region where the contact is located. For example, if an organization has contact centers in the US and Australia and an outbound call is triggered for a contact that is located in the US with the Agent ANI mapped to the Australia region, the call is routed through Australia.

      Refer to the table ANI usage for multiple scenarios in a Next Generation environment in Set Caller ID section for ANI usage in various call scenarios.

    You can view the related variables in Event Output Variables.

  • OutboundCampaignCallResult

    As a part of NewPhoneContact, this event is triggered if the contact is connected to an answering machine or is about to be abandoned. In either case, you can play a message prior to disconnecting the contact. The system abandons the call if the agent isn't available.

    Only Play Music and Play Message activities are supported for this handler and the call must then be disconnected.

    You can further add additional call control activities such as Play Music, Disconnect Contact, etc. to this event as per the Call Progress Analysis (CPA) result. CPA results can be one of the following:

    • AMD - indicates an answering machine is detected.
    • ABANDONED - indicates the call has been abandoned due to unavailability of an agent.
    • LIVE_VOICE - indicates an live voice of a customer is detected in an IVR campaign.

    You can view the related variable in Event Output Variables.

OnGlobalError Workflow

While you create a flow, you can set the error path of an activity to handle an activity error or a generic error that you get during the flow execution.

OnGlobalError Workflow
OnGlobalError Workflow

If you get an error during the flow execution, the execution continues with the next activity defined in the error path. If you don't configure the error path in the Main Flow, you can still set the OnGlobalError event available in the Event Flows tab to handle the flow execution error.

If you fail to define error paths in both Main Flow and Event Flows, the flow ends when an error occurs during the flow execution.

Let's consider a scenario where you configure the Set Variable activity in a flow.

Set Variable Activity in Main Flow

You can set the Undefined Error node of the Set Variable activity on the Main Flow to handle any system errors during the flow execution. If you don't want to define the error path in the main flow, you can still go to the Event Flow tab and configure the OnGlobalError event flow.

OnGlobalError Event Flow

In the above example, Play Message is appended to the OnGlobalError event handler. If there’s a system error during the execution of Set Variable activity in Main Flow, the system will consider the configuration made in the Set Variable activity first. If there's no error path defined, the system checks the OnGlobalError event handler in the Event Flow. Since a Play Message activity is attached to the OnGlobalError event in the above example, the system plays the message and ends the flow.

Variables and Expressions in Flow Designer

Flow Designer has the following types of variables:

Custom Flow Variables

Custom Flow Variables are configurable variables of different data types that you can use throughout the flow. You can create as many Flow Variables as you need to satisfy the logic in your flow.

Secure Variables

You can mark flow variables as Secure to prevent logging and storing of any sensitive information such as Personally Identifiable Information (PII) and Payment Card Industry (PCI) data. You can set secure variables as Agent Viewable or Agent Editable to control how these variables are presented on the Agent Desktop.

By default, all existing variables in the deployed flows behave as nonsecure variables. Open these flows in edit mode to review and retain the secure variables as needed.

In flow variable mapping, you cannot map a secure variable to a nonsecure variable in the GoTo activity.

You can't mark global variables as secure.

Create Custom Flow Variables

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

From the Configuration panel, open the Variable Definition section.

5

Click Add Flow Variable.

You can add a maximum of 30 variables in a flow that are reportable and agent viewable. This count includes global variables and flow variables. However, you can add any number of non-agent viewable flow variables or non-reportable global variables in the flow.

6

Enter the Name and Description of the variable.

7

Choose a Variable Type from the drop-down list.

You cannot change the Variable Type after you create the variable.

The supported variable types are:

Variable Type

Variable Value

Boolean

Choose True or False.

String

Enter the string value. If you want to use a variable in an expression, use the syntax: {{variable}}

Integer

Enter the integer value.

Decimal

Enter the decimal value.

Date Time

Enter the date and time in one of the supported formats:

yyyy-MM-ddTHH:mm:ss.SSSZ

yyyy-MM-ddTHH:mm:ssZ

yyyy-MM-ddTHH:mmZ

{{now()}}

Don't use now() function to get the current time in milliseconds as it uses the SimpleDateFormat. However, you can use the epoch timestamp pebble filter to fetch the current time in milliseconds. For more information, see Custom Pebble filters.

JSON

Enter a valid JSON variable value using the format: {"Key":"Value"}. For example, {"CompanyName":"Cisco"}.

JSON variable can hold simple or nested data. The maximum size limit for the JSON variable value can be up to 16 KB. You can create a maximum of five JSON variables in a flow.

For more information on how to configure JSON variable, see JSON Variables.
  • When you select JSON as the variable type from the list, the Mark Agent Viewable toggle button will not be visible.

  • JSON variables are not allowed in flow chaining.

8

Specify the Default Value of the variable as per the chosen variable type.

9

(Optional) If you enable the Contains Sensitive Information toggle button, the system marks the variable as a secure variable. During flow execution, the system doesn't log or store any information that is passed through this variable.

10

(Optional) If you enable the Make Agent Viewable toggle button, the variable appears on the Desktop along with the value captured as part of the flow.

When you enable the Make Agent Viewable toggle button, the following fields appear:

  • Desktop Label: Specify the label that is associated with this variable when it appears on the Desktop. Enter a clear label other than the variable name itself, so that the agent can understand the data that is passed to them.

  • Agent Editable: Check this check box if you want the agent to be able to edit the value of the variable as part of the interaction session. When the agent updates the variable, the system passes back those changes to the Flow Designer. The agent can edit the flow variable and click the Save button from the Desktop. If the call gets disconnected before the agent saves the changes, the variable update does not take place.

11

Click Save.

When you save a Custom Flow Variable, the variable is saved as a tag in the Global Properties Panel on the Desktop. If you marked the variable as Agent Viewable, the tag displays a headset icon for easy identification.

Example: Order of Flow Variables Displayed on the Desktop

When you create variables that are marked as Agent Viewable, the desktop displays these variables in a particular order.

For example, if you create the following flow variables: CustomerType, SubscribedCustomer, CustomerCount, CallRatio, dob, Datetest.

The Desktop receives these variables from Flow Designer in the following order: CallRatio, CustomerCount, CustomerType, SubscribedCustomer, ANI, DN, dob, ronaTimeout, Datetest.

The Desktop displays the variables in the following order, from left to right, on the user interface:

  1. The Customer variables Phone Number, DN, Queue, RONA Time

  2. The flow variables are sorted in alphabetical order with variables beginning with uppercase first, followed by variables with lowercase: CallRatio, CustomerCount, CustomerType, Datetest, SubscribedCustomer, dob.

Edit Custom Flow Variables

If the variable is already in use, then you cannot edit the Variable Type. Doing so may have major implications on the flow. So, this action is prohibited. In this case, the Variable Type drop-down field is disabled and a warning message appears.

Upon successfully editing a variable, the changes that are made appears throughout the flow, and in the pop-over that appears when you click a flow variable in the Global Properties pane.

To edit a custom flow variable, perform the following steps:

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

Click Edit in the upper-right corner of the pop-over.

The Edit Flow Variable dialog box appears. If the variable is not used in the flow, then all the fields are editable. You can modify the variable name, description, type, and value.

5

Click the Information icon in this message to see a list of the activities where the variable is used. If you want to proceed with editing the variable, remove the variable from all flow configurations before trying to edit again.

6

Make the necessary changes.

The Save button remains disabled until you make a change.

7

Click Save.

Delete Custom Flow Variables

If the variable is used in a flow, then you cannot delete it. Doing so has major implications on the flow. In this case, the Delete button in the Delete Variable window is disabled, and a list of activities where the variable is being used appears.

The activities are grouped based on whether they appear in the Main Flow or Event Flows tab. If you want to delete a variable that is in use, remove it from all flow configurations before you try to delete.

To delete a custom flow variable, perform the following steps:

1

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
2

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
3

In the Global Properties Pane, click the Delete icon that appears on the variable tag that you want to delete.

Predefined Variables

Flow Designer automatically creates predefined variables when you use certain events and activities in a flow.

A list of the available predefined variables appears in the Predefined Variables section in the Global Flow Properties pane. They also appear in the Properties pane for the selected Event or Activity.

Click on each variable to open a pop-up window that explains what type of data the variable stores, so you know how to use the variable in your flow.

While most attributes of an Event Output Variable are predefined and cannot be edited, you can edit the variable to modify the global variable designation.

Event Output Variables

Event Output Variables are specifically associated with events and take on the nomenclature: <EventName>.<VariableName>.

All of the Event Output Variables available for use in a flow automatically appear in the Global Properties pane after an event is introduced to the flow, and also in the Properties pane for the associated Event Handler activity.

The available Event Output Variables are:

  • NewPhoneContact.ANI

  • NewPhoneContact.DNIS

  • NewPhoneContact.InteractionID

  • NewPhoneContact.PSTNRegion

  • AgentAnswered.AgentID

  • AgentAnswered.AgentName

  • AgentAnswered.AgentEmailId

  • AgentAnswered.AgentSessionID

  • AgentAnswered.QueueID

  • AgentAnswered.QueueName

  • AgentAnswered.TeamID

  • AgentAnswered.TeamName

  • AgentAnswered.TenantID

  • AgentAnswered.CAD

  • PhoneContactEnded.AgentID

  • PhoneContactEnded.AgentEmailID

  • PhoneContactEnded.TeamID

  • PhoneContactEnded.QueueID

  • PhoneContactEnded.InboundChannel

  • PhoneContactEnded.RoutingStrategyID

  • AgentOffered.agentId

  • AgentOffered.agentName

  • AgentOffered.agentEmailId

  • AgentOffered.agentSessionId

  • AgentOffered.queueId

  • AgentOffered.queueName

  • AgentOffered.teamId

  • AgentOffered.teamName

  • AgentOffered.tenantId

  • AgentOffered.callAssociatedData

  • AgentOffered.AgentID

  • AgentOffered.AgentName

  • AgentOffered.AgentSessionID

  • AgentOffered.QueueID

  • AgentOffered.QueueName

  • AgentOffered.TeamID

  • AgentOffered.TeamName

  • AgentOffered.TenantID

  • AgentOffered.CAD

  • PreDial.direction

  • PreDial.participantType

  • PreDial.dialNumber

  • PreDial.otherPartyDn

  • PreDial.epDn

  • PreDial.agentSelectedAni

  • PreDial.operationType

  • OutboundCampaignCallResult.CPAResult

  • OutboundCampaignCallResult.CPAResultCode

  • AgentDisconnected.AgentId

  • AgentDisconnected.AgentEmailId

  • AgentDisconnected.QueueId

  • AgentDisconnected.TeamId

  • AgentDisconnected.InboundChannel

  • AgentDisconnected.RoutingStrategyId

In certain cases, the AgentEmailId variable may be null. Flow developers should validate this variable before using it, especially in scenarios involving cache lookup issues.

Customize System Variables

You can customize the desktop label of Phone Number and DNIS (Dialed Number Identification Service) variables only. You can create an alias of these variables and configure it using the Set Variable activity in the flow.

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

From the Global Flow Properties pane, open the Variable Definition section.

5

Click the Configuration tab.

6

Click Add Flow Variable.

7

Enter the Name and Description of the variable.

8

Choose String in the Variable Type drop-down list.

9

Enable the Make Agent Viewable toggle button.

10

In the Desktop Label field, enter the desired desktop label for the variable.

11

Click Save.

This creates the variable.
12

From the Activity Library, drag the Set Variable activity into the canvas.

13

In the Variable Settings section in the Activity Settings pane, do the following:

  1. From the Variable drop-down list, choose the variable that you have created in Step 10.

  2. In the Variable Value section, choose the Set to Variable radio button.

  3. Select the system variable that you want to edit such as NewPhoneContact.ANI for Phone Number or NewPhoneContact.DNIS for DNIS.

When you publish the flow, the newly created flow variable replaces the chosen system variable. During the flow execution, the Desktop Label of the newly created variable appears in the Incoming popover and Interaction pane of the Desktop.

Activity Output Variables

Activity Output Variables store the data captured from activities and are automatically created when you add specific activities to the canvas. Activity Output Variables use the following syntax: <ActivityName>.<VariableName> where the ActivityName dynamically changes based on the activity.

If a flow uses an activity multiple times, each activity has a unique instance of each associated Activity Output Variable. All the Activity Output Variables available for use in a flow automatically appear in the Global Properties pane when you introduce an activity to the flow, and also in the Properties pane for the associated activity.

The available Activity Output Variables are:

  • Menu.OptionEntered: Stores the menu option that the caller selected during the Menu activity instance. This is a single digit from 0 to 9.

  • CollectDigits.DigitsEntered: Stores the digits entered by the caller during the Collect Digits activity instance. The number of digits depends on the activity configuration.

  • HTTPRequest.HTTPStatusCode: Stores the status code received when the HTTP Request is attempted.

  • HTTPRequest.HTTPResponseBody: Stores the response when the HTTP Request is successfully triggered.

  • HTTPRequest.ResponseHeaders: Stores the headers that are sent as part of the HTTP Request.

  • VirtualAgent.IntentTriggered: Stores the intent that triggered the conversational experience to be either handled or escalated.

  • GetQueueInfo.EWT: Stores the value for the estimated wait time for the selected queue.

  • GetQueueInfo.PIQ: Stores the value for the position in a queue for the selected queue.

Global Variables in Flow Designer

Global variables are custom variables that you can view and access when creating flows. Administrator creates global variables in the Provisioning module of the Control Hub. For more information, see Global Variables section in the Webex Contact Center Setup and Administration Guide.

As a flow developer, you can consume these variables as per your requirement. You can add these variables in a flow. You can also edit and remove a global variable after adding it to the flow.

Add Global Variable in a Flow

You can add a maximum of 30 variables in a flow that are reportable and agent viewable. This count includes global variables and flow variables. However, you can add any number of non-agent viewable flow variables or non-reportable global variables in the flow.

If you want to add more variables beyond the maximum limit, you must delete an equal number of the existing variables. For more information about how to delete a global variable, see Remove Global Variables from a Flow.

During flow creation, a global variable of type String can be initialized with a maximum length of 256 characters. But during flow execution, the variable can be updated to hold up to 1024 characters. Exceeding this limit can have undesirable behavior such as call failures and invalid values.

To add global variables in a flow:

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

In the Global Flow Properties pane, scroll down to Variable Definition > Predefined Variables section.

5

In the Global Variables section, click Add Global Variables.

The Add Global Variables dialog box appears. It shows all global variables that the administrator created in the Provisioning module.
6

(Optional) Use the Search Global Variables field to filter and search for the required global variables from the list.

7

Check the check boxes of the required global variables from the list and click Add.

The system displays the chosen variables in the Global Variables section.

By default, each variable carries administrator-defined metadata fields such as, Reportable, Agent Viewable, Agent Editable, and Desktop Label. If administrator changes any metadata values while the global variable is in use, the changes made in the Control Hub reflects across flows (with a cache expiry delay of 8 hours).

Edit Global Variable in a Flow

When you edit a global variable, you cannot change any metadata value of a global variable in the flow designer. However, you can change the default value using the Overwrite Default Value toggle button.

To edit a global variable in a flow:

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

In the Global Flow Properties pane, scroll down to Variable Definition > Predefined Variables section.

5

In the Global Variable panel, click on a global variable and click the edit () icon.

The Edit Global Variables dialog box appears. It shows the details of the chosen global variable such as, Variable Type, Default Value, Desktop Label, and Agent Editable.
6

(Optional) Enable the Overwrite Portal Configurations toggle button to overwrite the existing values that are configured in Control Hub. This enables you to modify field values such as Default Value, Agent Viewability, Agent Editable, and Desktop Label.

  • Enter the necessary value in the Default Value as per the chosen variable type. For example, if the variable type is Boolean, this field appears as a drop-down list.

  • The default value entered for a global variable of type string that is agent reportable must not exceed 256 characters.

7

Make the necessary changes.

8

Click Save.

Remove Global Variables from a Flow

You can remove a global variable that is not in use in any flow.

If you cannot remove a global variable, contact your administrator to enable the feature flag to remove global variables from the flow.

To remove a global variable from a flow:

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

In the Global Flow Properties pane, scroll down to Variable Definition > Predefined Variables section.

5

In the Global Variables panel, click the remove (x) icon of the global variable that you want to remove.

A pop-up message prompts you to confirm your action.
6

Click Delete.

This removes the selected global variable from the list.

Desktop viewable variables

You can configure the following variable types for the incoming popover and Interaction pane of the Desktop for incoming and outgoing voice calls:

  • System Variables such as Phone Number, DNIS (Dialed Number Identification Service), Queue Name, and RONA Timeout

  • Global Variables that are created and managed in Control Hub.

  • Custom Flow Variables that are created and managed in Flow Designer

  • You can configure only those variables that are marked as Agent Viewable.

  • You can configure these variables on the new flows as well as on the existing flows. However, the existing flows continue to show the default popover variables such as Phone Number, DNIS, and Queue Name. You can edit these flows to add more variables by using this feature.

  • The steps to configure variables for incoming popover and Interaction pane for incoming and outgoing calls are the same.

  • You need to build separate flows for inbound and outbound call scenarios to configure variables for incoming popover and interaction pane.

Incoming popover on the Desktop
The incoming popover appears when an agent receives an incoming call or dials an outgoing call. It displays key information about the customer according to the variables configured in Flow Designer. You can set an order of appearance of each of these variables in the incoming popover that can include any combination of the system, global and custom flow variables. You can also edit the desktop label of these variables.
You can customize the desktop label of the system variables such as Phone Number and DNIS. For more information, see Customize System Variables.
For incoming and outgoing calls, you can choose a minimum of three and a maximum of six variables. For consult calls, the consulted agent would view an additional three variables such as Agent Name, Agent DN, and Agent Team that are added to the list by default.

You cannot configure variables that contain sensitive information in the incoming popover on the Desktop.

For more information on how to configure variables for the incoming popover, see Configure variables for Incoming popover.
Interaction pane
The Interaction pane on the Desktop appears after the agent accepts the incoming or outgoing call. It displays information set in the Interaction pane variables that are configured in Flow Designer. You can choose a maximum of 30 variables. You can set an order of appearance of each of these variables in the interaction pane that can include any combination of the system, global and custom flow variables. You can also edit the desktop label of these variables.

Webex Contact Center Desktop does not currently support the translation of labels of dynamic variables.

You can customize the desktop label of the system variables such as Phone Number and DNIS. For more information, see Customize System Variables.
For more information on how to configure variables for the Interaction pane, see Configure variables for Interaction pane.

Configure variables for Incoming popover

Before you begin

Configure variables on Incoming popover for incoming and outgoing calls.

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

From the Global Flow Properties pane, open the Variable Definition section.

5

Click the Desktop Viewability & Order tab.

6

In the Incoming Popover section, click Select Variables for Incoming Popover.

The Select Variables on Incoming Popover window appears. It shows all variables that include four default system variables such as Phone Number, DNIS, Queue Name, and RONA Timeout. System variables such as Phone Number, DNIS, and Queue Name are selected by default that you can uncheck when you add more variables.
7

Use the following search options to filter the list:

  1. Enter a few words in the Search Variables field to search a specific variable by its name.

  2. Choose a variable type from the Select Variable Type drop-down list.

The list is autopopulated with variables as per your criteria entries.
8

Check the check boxes of the variables that you want to choose for the incoming popover.

You can choose a minimum of three and a maximum of six variables.

9

Click Save.

You can skip this step if you enable the Autosave toggle button.

The chosen variables appear in the Incoming Popover section.
10

Use the handle icon () beside a variable to move it up and down the list to set the order of appearance in the incoming popover of the Desktop.

11

(Optional) Click the x icon beside a variable to remove that variable from the list.

Configure variables for Interaction pane

Before you begin

Configure variables on the Interaction pane for incoming and outgoing calls.

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow.

The Flow Designer window appears.
4

From the Global Flow Properties pane, open the Variable Definition section.

5

Click the Desktop Viewability and Order tab.

6

In the Interaction Pane section, click Select Variables for Interaction Pane.

The Select Variables on Interaction Pane window appears. It shows all variables along with four system variables such as Phone Number, DNIS, Queue Name, and RONA Timeout.
7

Use the following search options to filter the list:

  1. Enter a few words in the Search Variables field to search a specific variable by its name.

  2. Choose a variable type from the Select Variable Type drop-down list.

The list is autopopulated with variables as per your criteria entries.
8

Check the check boxes of the variables that you want to choose for the Interaction pane.

You can choose a maximum of 30 variables.

9

Use the handle icon () beside a variable to move it up and down the list to set the order of appearance in the Interaction pane of the Desktop.

10

Click Save.

You can skip this step if you enable the Autosave toggle button.

The chosen variables appear in the Interaction Pane section.
11

(Optional) Click the x icon beside a variable to remove that variable from the list.

JSON Variables

JSON variables are custom flow variables of type JSON. You can create JSON variables in Flow Designer. For more information, see Create Custom Flow Variables.

You can use the following activities to store the data in JSON variable: HTTP Request, Parse, and Set Variable.

In HTTP and Parse activities, you can extract data using JSON path filter expression and store it in JSON variable.

In Set Variable activity, you can use the JSON variable in the Set Value option in the following ways:

  • Type in the JSON value in the text box. For example:

    {
        "userId":"rirani",
        "jobTitleName":"Developer",
        "firstName":"Romin",
        "lastName":"Irani",
        "preferredFullName":"Romin Irani",
        "employeeCode":"E1",
        "region":"CA",
        "phoneNumber":"408-xxxxx67",
        "emailAddress":"rirani@xyz.com"
    }
    

  • Use a Pebble expression.

Usage of JSON Variables in Pebble Expression

  • Dot(.) separated access: You can use dot(.) separated access in Pebble expression for JSON variable in call handling and flow control activities.

    Syntax: {{ jsonVariableName.fieldName }} where, jsonVariableName.fieldName should evaluate to a field in JSON variable.

    In the previous sample code snippet, if you extract the employee to a variable called empvar using HTTP or Parse:

    use {{empvar.employeeCode}} to get the value as E1.

  • Index access of JSON array: You can access a specific index from the JSON array similar to Pebble Syntax. For more details on Index Access in Pebble, visit https://pebbletemplates.io/wiki/guide/basic-usage/, for example:

    {
        "Employees" : [
            {
            "userId":"rirani",
            "jobTitleName":"Developer",
            "firstName":"Romin",
            "lastName":"Irani",
            "preferredFullName":"Romin Irani",
            "employeeCode":"E1",
            },
            {
             "userId":"thanks",
             "jobTitleName":"Program Manager",
             "firstName":"Tom",
             "lastName":"Hanks",
             "preferredFullName":"Tom Hanks",
             "employeeCode":"E3",
             "directReports":[
                {
                   "userId":"John",
                   "jobTitleName":"Developer",
                   "firstName":"John",
                   "lastName":"Irani",
                   "preferredFullName":"John Irani",
                   "employeeCode":"E2"
                },
                {
                   "userId":"Sam",
                   "jobTitleName":"Developer",
                   "firstName":"Sam",
                   "lastName":"Das",
                   "preferredFullName":"Sam Das",
                   "employeeCode":"E2"
                }
             ]
          }
       ]
    } 
    If you extract the Employees JSON array into a variable called var using HTTP or Parse:

    • Use {{ var[0]}} to get the employee details of rirani who is a manager.

    • Use {{ var[1].directReports[0] }} to get the employee details of John who is a direct reportee of the manager.

    • Use {{ var[1].directReports[0].preferredFullName }} to get the value as John Irani.

    • Use {{ var[0].preferredFullName }} to get the value as Romin Irani.

Usage of JSON variable in HTTP request

To use a JSON variable as request body of a HTTP request, use the Set Variable activity first to convert the JSON variable to a string. For example, in the Set Variable activity Variable Settings section, set a variable jsonString with value as {{ jsonVariable }}.

Use this variable as an input to the HTTP settings. For example, in the HTTP Request Settings section, set the Request Body as {{ jsonString }}.

Writing Expressions

Most text input fields in Flow Designer support writing expressions. Expressions are not required, but they allow for powerful scripting functionality through variables for advanced users. You can also enter basic text and numbers in the same input fields for simple flows if you do not need expressions.

Wrap each expression in double curly brackets as seen here: {{Enter Expression}}

For example, if you want to combine two string variables together, you must use {{var1+var2}}. For more information see: https://pebbletemplates.io/.

Pebble Template Syntax

All input fields in the Flow Designer use an open-source expression syntax called Pebble Templates: https://pebbletemplates.io/.

The following are supported symbols in Pebble Templates: ==, !=, <, >, <=, >=, +, -, *, / . To type custom variables in an expression, use this syntax: {{variable}}

Logic operators are also supported. For more information, see https://pebbletemplates.io/wiki/operator/logic/.

We recommend that you review the Pebble Template documentation before you use expressions in Flow Designer. For information on writing expressions, see the documents at: https://pebbletemplates.io/wiki/.

For example, in this basic condition use case, the expression checks to see if the caller’s AccountNumber is greater than or equal to a certain value. Based on how the expression evaluates for a given flow execution, the flow can take the True or the False path.

Custom Pebble filters

Epoch Time Stamp

You can use the following Pebble filters to return the epoch time stamp for Now or a given date string:

Epoch time stamp for Now:

{{ now() | epoch }}   => default UTC timezone and in seconds
{{ now() | epoch(inMillis=true) }} => default UTC timezone and in milliseconds
Example:
{{ now() | epoch }} -> 1667471488
{{ now() | epoch(inMillis=true) }} -> 1667471522829

Epoch Time Stamp for a specific date:

{{ '2017-10-19 16:18:03.779' | epoch(format='yyyy-MM-dd HH:mm:ss.SSS', inMillis=true) }} => custom format and in milliseconds
{{ '2017-10-19 16:18:03.779' | epoch(format='yyyy-MM-dd HH:mm:ss.SSS', inMillis=true, timeZone='America/Phoenix') }} => custom format with timezone and in milliseconds
Example:
{{ '2017-10-19 16:18:03.779' | epoch(format='yyyy-MM-dd HH:mm:ss.SSS', inMillis=true) }} -> 1508429883779
{{ '2017-10-19 16:18:03.779' | epoch(format='yyyy-MM-dd HH:mm:ss.SSS', inMillis=true, timeZone='America/Phoenix') }} -> 1508455083779

Validate Expressions

If an input field detects that an expression is being used (that is the {{ }} syntax is entered), a blue icon appears in the lower-right corner of the field.

Click the blue icon to open a modal where you can test and modify the expression until you get the desired outcome.

The Test Expression modal contains the following fields:

  • Expression: Shows the expression that was initially entered in the input field from the activity configuration.

  • Variable Fields: Each variable used in the expression has a supporting field where you can enter a sample variable value. Enter a value for each variable, then click Test to see the results if the expression is executed with the entered parameters.

    To set variables in an expression, use the format {{variable name}} only. For instance, {{NewPhoneContact.ANI}} is a variable syntax.

  • Result: Shows the result of the expression after you click Test. If the results are different than expected, modify the Expression as desired. If you make changes to the configuration, click Apply Changes to update the expression in the activity configuration.

Flow templates

Flow templates are preconfigured flows and subflows, each designed for a specific use case. You can use flow templates to build and publish flows and subflows quickly, as they are easily available in the Flow Designer canvas. By using flow templates, flow developers can start building flows with minimum time and effort to get started.

To create flows with flow templates, choose the required template, customize it for your business requirements, validate, publish, and start using the flow.

The following flow and subflow templates are available:

For more information about creating flows from flow templates, see Create flows from flow templates.

Create and Manage Flows

Create a Flow

You can create and manage flows using the Routing Resources module. When you design a flow, a Consult interaction can't contain a Courtesy Callback, Post-Call Survey Feedback, or Blind Transfer activity.

When you create a flow, if the number of nodes exceeds 100, you may experience latency in the Flow Designer. In such cases, we recommend that you use the Flow Chaining and Dynamic Variables features to break down a large flow into easily manageable smaller flows. For more information, see Flow Chaining and Queue Contact.

1

Sign in to your customer organization using the Control Hub URL https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

On the Flows page, click Manage Flows. Choose Create Flows from the drop-down list.

The Create a new flow wizard appears with the option to choose from Flow or Subflow.
4

Click Flow.

Click Subflow to create a subflow. The process of creating a subflow is similar to that of creating a flow.

5

Choose the required option for creating the flow:

  • Start Fresh—Use this option to create a new flow from the beginning.
  • Flow Templates—Use this option to create a flow from flow templates. For more information, see Create flows from flow templates.
  • Import—Use this option to import flows from a local storage. For more information, see Import a Flow.
6

Click Start Fresh.

7

In the Flow Name field, enter a unique name. .

The flow name must not contain spaces. The only allowed special character is _ (underscore). The allowed length is 80 characters. For example, NewContact_01.

8

Click Create Flow.

The Flow Designer window appears.

9

In the General Settings section, enter the description of the flow. You cannot modify the description later.

10

(Optional) Configure the following settings in the Diagram Settings section.

  • Curved Links—Enable or disable to toggle between curved links and right angled links for each flow.

    You can enable curved links to enhance the view of the connection between activities. In complex flows, curved links provide better readability as compared to straight lines which tend to overlap.

  • Link Color—Choose the color from the drop-down color palette to indicate the links.

  • Error Path Color—Choose the color from the drop-down color palette to indicate the error paths.

  • Selection Color—Choose the color from the drop-down color palette to indicate the chosen link and the connected activities.

  • Thickness—Specify the value to increase or decrease the thickness of the link and the connected activities. Thickness is measured in pixels and the default value is 1 pixel. The maximum thickness supported is 3 pixels.

11

Perform the following tasks to create the flow:

Create flows from flow templates

Flow templates give you out-of-the-box flows for common use cases. To create flows from flow templates:

1

Sign in to Control Hub.

2

Navigate to Services > Contact Center.

3

From the Contact Center navigation pane, click Customer Experience > Flows.

4

On the Flows page, click Manage Flows and click the Create Flows drop-down list.

The Create a new flow wizard appears with the option to choose from Flow or Subflow.
5

Click Flow.

To create a subflow, click Subflow. The process of creating a subflow is similar to that of creating a flow.

6

From the Choose a method, click Flow Templates.

7

Choose your template from the available list of templates. Click Next.

Click View Details to see a detailed preview of the template. Refer to the View flow template details section for more information.

8

In the Flow Name field, provide a unique name for the flow. Adhere to the naming conventions.

9

Click Next.

You have created a new flow from flow template.

For more information about the flows and if flows require further configuration before testing, use the links available in the flow template listing. See View flow template details

What to do next

Customize the activities and events in the flow as per your requirements. Validate and publish the flow.

View flow template details

To view more details about a specific template:

1

From the template collection page, choose the required template.

2

Click View Details. The Template Details page appears.

  • The top panel displays a preview of the chosen template. Click the full screen icon to open the template in full screen. Select specific sections of the template and zoom in and out. You can switch between Main Flow and Event Flows, if required.
  • The bottom pane has the following sections that provide detailed information about the selected flow template:
    • Description: Brief description and purpose of the template.
    • Details: Key features of the template.
    • Prerequisites: Steps that you must configure for the flow template to work as expected.
    • Flow Breakdown: Details about how the flow starts, what happens in the flow and how the flow ends.
    • Activities Used: Lists the various activies used in the specific template.
    • Additional Details: Additional details about the flow template.

What to do next

Click Select template to proceed with the chosen template.

Context menu options

Flow designer has context menu for additional actions. To launch the context menu, from the Flows page, choose the flow and open the flow in the Flow Designer module. Hover over the flow name. A menu appears with the following options:

  • Edit name—Use to rename the flow.

  • Export—Use to export the flow.

  • Import—Use to import the flow.

  • Delete—Use to delete the flow.

  • View Version History—Use to view the version details of the flow.

Edit Flow Variables

You can't edit a variable when it is in use. You can't edit the variable type after the variable is created.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to edit. The flow opens in the Flow Designer window.

4

Click on a variable tag from the Global Flow Properties Pane.

A pop-up window displays a summary of the variable information.
5

Click Edit in the upper-right corner of the pop-up window.

6

Select a variable that is not used in the flow.

7

Make the necessary changes to the variable name, description, value, and variable configurations.

Modify a Flow

Use the Edit toggle button to edit a flow. If you turn on the toggle button, other flow developers will not be able to edit the flow at the same time. When you open a flow, it defaults to the read-only mode. Turn on the Edit toggle button to edit the flow.

Flow Designer now enables you to mark variables that contain sensitive information as Secure. When you open an existing flow that contains Flow variables, you get a prompt to review and mark those variables as Secure as per your requirements. For more information on secure variables, see Secure Variables.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears and displays the list of flows with the following fields:

Name of the Field

Description

Flow Name

The name of the flow as configured in the Flow Designer application.

The flow name must be unique.

Description

The description of the flow as configured in the Flow Designer application.

Status

Indicates whether the flow is published or is still in the draft stage.

Last ModifiedIDate and time when the flow was last modified.
3

Click the Go to Flow Designer icon beside the flow that you want to edit. The flow opens in the Flow Designer window.

If the selected flow has flow variables, a message prompts you to mark variables as secure.

You can do the modifications to the flow only if the Edit On toggle button is enabled. If the Edit On toggle button is set to off, the flow appears in read-only mode.

4

Click Go Select Secure Variables to open the Edit Secure Variables dialog box.

You can click Skip for now to continue editing the selected flow without marking the secure variables. This dialog box appears the next time you edit the flow.

Check the Don't show this message again check box to permanently skip the selection process for the selected flow.

Currently this feature is not supported.

5

Check the check boxes of the variables that contain sensitive information and click Save.

The flow designer window displays the selected variables with a lock icon beside the variable names.

The selected flow opens in read-only mode.

6

Enable the Edit toggle button to make any changes to the flow.

7

Edit the draft flow as desired.

When you modify a flow, a Consult interaction can't contain a Courtesy Callback, Post-Call Survey Feedback, or Blind Transfer activity.

8

Click Save to save the flow if you disable the Autosave toggle button.

Search entities in a flow

Search functionality in Flow Designer enables flow developers to search for entities in a flow and access their locations quickly. For flows which are more elaborate and complex, use this search capability to avoid manual effort in finding the desired entities.

You can search the following entities in the flow using this search feature:

  • Activity names, descriptions, and inputs

  • Variable names

  • Pebble expressions

  • Flow properties

You can find and replace free text inside fields such as text inputs, descriptions, pebble expressions, and so on.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to edit. The flow opens in the Flow Designer window.

4

In the search box that appears in the top right corner, enter the keyword (activity name, variable name, or string) and press Enter.

Alternatively, you can trigger the search box by using the keyboard shortcuts: Cmd + K (for macOS) and ctrl + k (for Windows).

The search results appear in a separate search panel on the left side of the screen.
5

(Optional) Choose one or more entity types from the drop-down list to filter the search results.

6

To find and replace a text, do the following:

  1. Enter the word in the Replace field to replace the chosen keyword.

  2. You can either choose the individual search results and replace with the specified keyword or click the Replace all () icon to replace all occurrences across the flow.

Apply version labels to a flow

We recommend you to follow the best practice of adding version label to build a lifecycle of the flow through various phases such as development, test, and live for better control while managing the production flow. Instead of applying changes directly to the flow, you can publish the flow through phases before you deploy the flow to the production. This feature helps you avoid overwriting of your current flow in the production.

When you publish a flow, you can associate a version label such as 'Live', 'Test', or 'Dev' with the new flow version in addition to the flow name. This gives the ability to attach different versions of the same flow to different entry points or GoTo activity. Latest is the default version label that you can't remove from a flow version. You can apply any other version label along with Latest.

Moreover, you can attach multiple versions of the same flow to an entry point. During an entry point configuration, you can choose a flow along with one of its associated version labels.

You can also modify the flow logic dynamically by accessing Version Labels within the flow using the NewPhoneContact variable (see Start Flow for details). The NewPhoneContact.FlowVersionLabel variable displays the Flow Version Label currently in execution: whether 'Dev', 'Test', 'Live', or 'Latest'. Applying Flow Version Label enables crafting custom logic that is tailored to specific Version Label of the flow.

When you open the flow in edit mode, you see the Draft version from the Latest flow version published. When you publish this Draft version, it will associate the Latest version label to it. At a given time, only one flow has the Latest version label associated to it. This corresponds to the last published version of the flow.

Before you begin

You must publish the flow at least once.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to edit. The flow opens in the Flow Designer window.

4

Edit the flow.

5

Click Save to save the flow if you disable the Autosave toggle button.

6

Turn on the Validation toggle button to enable publish.

7

Click Publish.

8

(Optional) In the Publish Flow dialog box, enter a note about the version or any information that you want to share with other flow developers.

9

By default, the Latest is selected as the version label that indicates the latest version of the flow. You can apply multiple version labels to a flow version such as live, dev, or test from the Add Version Label drop-down list.

If a specific version label is already mapped to an entry point, an alert appears beside that version label in the drop-down list that says the label is mapped to an entry point.

10

Click Publish.

After you choose one or more appropriate version labels and publish, you can use this version of the flow when you assign to an entry point.

11

(Optional) Click the timer icon beside the version number to view the version history of the flow.

The Version History modal appears that displays the following details for Active Versions and Other Versions of the flow:

  • Publish time

  • Version number

  • Version Label (if applied)

  • Last edit by

  • Publish note

Use any of the following keyword search attributes to filter the table:

  • Version number

  • Version Labels

  • Published by

  • Publish Note

  • Date of publish

Click the View icon of any row to view the flow published in the chosen version.

12

(Optional) Click the View icon of any row to view the flow published in the chosen version.

If you choose to edit when viewing an older flow version, it overwrites the current draft with that specific flow version.

After you apply the appropriate version label to a flow, you can choose that flow version when you create a queue.

Enable or Disable the Autosave Option

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

To create a flow, click New.

4

To edit an existing flow, click the Go to Flow Designer icon beside the flow that you want to edit. The flow opens in the Flow Designer window.

5

To enable the autosave option, set the Autosave toggle button to ON.

6

To disable the autosave option:

  1. Set the Autosave toggle button to OFF.

    A message prompts you to confirm your action.

  2. Click Disable Autosave.

After you disable the Autosave option, save your changes manually. Otherwise, you will lose the changes made to the flow.

Copy and Paste Activities

As a flow developer, you can copy and paste an activity or a group of activities in the same flow so that you don't have to configure these activities from the scratch. For this purpose, you can select a single activity or a group of activities at a time and reuse them in the same flow. When you copy activities, the system creates duplicates of those activities and copies all the configured settings and links.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

To create a flow, click Manage Flows > Create Flows.

4

To edit an existing flow, click the Go to Flow Designer icon beside the flow to open the flow.

5

Do either of the following:

  1. To copy and duplicate a single activity, select the activity that you want to copy and click the copy icon ().

  2. To copy and duplicate multiple activities, press Shift and select the activities to group them and click the copy icon ().

Alternatively, you can press Ctrl+C on your keyboard to copy the selected activities and press Ctrl+V to paste the selected activities on the canvas.

6

Rearrange the copied activities as per your requirement.

Validate a Flow

You validate a flow to ensure that you configured all of the required fields and that the structure of the flow is valid. Validation cannot determine how the system executes the flow at run-time and doesn't guarantee that the flow runs as expected.

When validation succeeds, leave the Validation toggle on. You can't publish the flow unless validation succeeds.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to validate. The flow opens in the Flow Designer window.

4

Set the Validation toggle to On.

The validation starts and errors display in the window.

During validation, the system displays errors in these ways:

  • Flow Errors Button: A red button appears next to the Validation toggle that shows the number of active errors. If there are no errors (Flow Errors: 0), the button is Green.

  • Activity Error Styling: If an activity has configuration errors, the activity appears with a red outline and a red information icon in the upper-right corner. Click this icon to show a contextual tooltip that summarizes any errors with the activity. After you address the error, the activity loses the error styling in real time.

  • Validation Details Window: This pop-up window keeps a running list of active errors in the flow. You can drag and move this window around the canvas. Click the Close icon in the upper right to close the window.

    There are two sections within this window:

    • Flow Errors Section: This section lists all the active errors in the flow and breaks them down by activity. You must resolve all of these errors before you can publish the flow. For more information, see Flow Designer Error Codes.

    • Recommendations Section: This section lists best practices and reminders for building flows. While you should consider these items before you publish a flow, the recommendations are not required.

      If you do not want to see the recommendations, click Dismiss Recommendations to hide the list. The list stays hidden until you close the Validation Details window and open it again.

5

If you close the Validation Details window and want to reopen it, click the Flow Errors button.

6

Optional. If there are errors, set the Validation toggle to Off. You must fix the errors and restart the validation.

Flow validation can't evaluate functions or check to see if variables resolve to expected values. It only checks for structural errors. Double-check your variables to ensure that they work as expected.

Copy a Flow

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the ellipsis icon beside the flow that you want to copy and click Copy.

The name of the copied flow has this format: Copy_FlowName_FlowID where Flow Name is the name of the original flow, and FlowID is a unique identifier for the original flow.

4

Open the copied flow in the Flow Designer to edit the name.

Export a Flow

To extract a flow definition as a JSON file, use the Export option. Later, you can import the JSON file to create the same flow on a different tenant. To import a flow, see Import a Flow.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the ellipsis icon beside the flow that you want to export and click Export.

4

In the dialog box that opens, select Save and click OK to download the flow file.

The file downloads to your local system with the existing filename in JSON format.

Import a Flow

To import a flow into your tenant, use the Import option. You must export the flow as a JSON file from another tenant before importing it. To export a flow, see Export a Flow.

To reuse an existing flow within the same tenant, use the Copy option. For more information, see Copy a Flow.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Under Manage Flows click Import. Choose the flow file that is in JSON format from your local system.

4

Click Open to import the file.

The flow is imported into your tenant.

  • You can import a flow in JSON format only. The JSON file must be a valid flow for the import to be successful.

  • You can import a file size of up to 10 MB.

What to do next

You can modify or publish the flow. For more information, see Working with Flows.

Publish a Flow

You can publish a flow after the system validates the flow and finds it free of errors. You can use a published flow in Entry Point Routing Strategies.

Before you publish a flow, ensure that you are fully satisfied with the configuration and that the flow is suitable for use in live contact center interactions. Editing a published flow is not fully supported.

The Publish Flow button is disabled as long as the Validation toggle is off. The Publish Flow button remains disabled if there are any active errors in the flow.

When you click the Publish Flow button, the Publish Flow confirmation window appears. Before you publish a flow, ensure that all of the expressions work and that the flow behaves as desired.

If an error occurs:

  • You see a notification window with the Tracking Id and Flow Id. Contact Cisco Support for assistance with errors. Support requires the Tracking Id.

  • Click the Retry Publish button.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to publish. The flow opens in the Flow Designer window.

4

Click Publish to publish the flow.

If the flow publishes successfully, you see the confirmation message.

5

Select one of the following options:

  • Click Close Flow & Sign Out, if you are done reviewing the published flow and would like to sign out of Flow Designer.

  • Click Return to Flow, if you would like to review or edit the published flow.

    Editing a published flow could impact live contact center interactions if the flow is assigned to Entry Point Routing Strategies.

Delete a Flow

If a flow has a status of Published, it can be part of a Routing Strategy configuration. Ensure that you know where a flow is used before you delete it. Otherwise, you could impact live contact center interactions.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the ellipsis icon beside the flow that you want to delete, and click Delete.

4

Click Yes to confirm.

Entry Point Routing Strategies

An Entry Point Routing Strategy is a configuration that controls the routing behavior of a contact when the contact reaches an entry point. When a contact arrives at an entry point, the routing engine checks to see which Entry Point Routing Strategy is active at the given time and follows that configuration.

The Call Control section of the Entry Point Routing Strategy configuration allows you to choose a flow that controls the experience callers have during their interaction. With the Flow Designer application, you can configure an end-to-end flow that controls both the initial treatment of the call in the IVR, as well as the queue experience after the contact is queued.

Choose a flow from the Flow drop-down to indicate the flow that controls this end-to-end call experience during the time interval specified in the routing strategy. Only flows that have been published from the Flow Designer application are available from this drop-down list.

Flows are only available for Telephony Entry Points. You cannot override any settings in the flow from the Entry Point Routing Strategy.

Queue Routing Strategies

A Queue Routing strategy is a configuration that controls the routing behavior of a contact when the contact reaches a queue. When a contact arrives at a queue, the routing engine checks to see which Queue Routing Strategy is active at the given time and follows that configuration.

Customers who have Queue Routing Strategies in Webex Contact Center can access them, but they cannot create new strategies. We recommend that all customers transition their configurations to Queues.

Create and manage subflows

Flow designer provides a mechanism to modularize large flows into a series of smaller logical flows of lower complexity. Subflows are smaller flows that you can use across multiple flows to achieve a specific task. This makes the flows more modular and easier to manage in smaller chunks and thus avoids the complexities that arise out of creating larger flows. The following are some of the important characteristics of subflows:

  • You can create subflows at organization level to make them available internally. For example, you can view and invoke subflows which are available within the same organization. You can create a maximum of 200 subflows per organization.

  • You can invoke a subflow from within a flow to execute logic without linking to an entry point or leaving the main flow.

  • You can reuse subflows multiple times in a main flow or across main flows within the organization.

  • You can pass variables between parent flow and subflows and map input and output variables from the main flow to the subflow and the opposite way. This makes these variables used in the subflow independent of the variables used in the parent flow that invokes the subflow.

    You cannot pass global variables in a subflow. However, as a workaround you can pass global variables to the subflow through a local variable.

  • You can publish subflow independently. However, the changes made in the subflow will take effect only after you republish the main flow.

  • You can attach a version label such as Live, Dev, and Test to a subflow so that you can perform an end-to-end testing of the main flow in the respective environments.

  • Subflows must be invoked from the main flows. You can't invoke another subflow from a subflow.

  • You can't link a subflow from an entry point or queue routing strategy.

  • You can import and export subflows independently.

Create a subflow

You can create and manage subflows in Control Hub.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows > Subflows.

3

Click Manage Subflows > Create Subflow.

4

In the Subflow Name field, enter the name of the subflow.

The subflow name must be unique. It must not contain spaces. The only allowed special characters are _ (underscore) and - (hyphen). The allowed length is 80 characters.

5

Click Start Building Subflow.

The Flow Designer window appears.

6

In the General Settings section, enter the description of the subflow. You can modify this description later.

7

In the View Settings section, configure features such as Curved Links, Link Color, Error Path Color, Selection Color, and Thickness.

8

In the Variable Definition section, add the required variables that will be used while linking to the main flow.

  • Subflow input variable: (Required) This variable takes an input from the mainflow.
  • Subflow output variable: (Required) This variable returns an output back to the mainflow.
  • Subflow local variable: (Optional) This variable is used for logic that is isolated within the subflow and doesn't relate to any of the main flow variables.

All the above variables can be of type String, Integer, Date Time, Boolean, Decimal, and JSON.

9

Perform the following tasks to create the subflow:

Actions such as Apply version label, Flow tracing, etc. work the same way as in the case of the main flow. For more information, Apply version labels to a flow and Flow Tracing.

Edit a subflow

If you edit a subflow and publish it, the changes made in the subflow take effect in the main flow only after the main flow is published.

To modify a subflow:

1

Log in to Control Hub.

2

Go to Contact Center > Customer Experience > Flows > Subflows.

3

Click on the subflow that you want to edit.

4

Enable the Edit toggle button to make any changes to the subflow.

5

Make the required changes to the subflow.

Click Save to save the flow if you disable the Autosave toggle button.

Delete a subflow

You can't delete a subflow if it is used in any published main flow whether or not it is Live or attached to an entry point. However, you can remove the subflow from that main flow or delete the main flow first to delete that subflow.

1

Log in to Control Hub.

2

Go to Contact Center > Customer Experience > Flows > Subflows.

3

Click the vertical ellipsis icon on the subflow row that you want to delete, and click Delete.

4

Click Yes to confirm.

Add subflow to a main flow

You can add a subflow across multiple main flows.

1

Log in to Control Hub.

2

Go to Contact Center > Customer Experience > Flows.

You can also add a subflow to a main flow from the Management Portal navigation bar. Choose Routing Strategy > Flows. Click the ellipsis icon beside the flow that you want to edit and click Open.

3

Click on the flow that you want to modify to add a subflow.

The Flow Designer window appears.

4

Click the Subflows tab.

A list of subflows created for the chosen organization/tenant appears.

5

Drag and drop the required subflow from the list to the canvas to add it to the main flow.

You can view the details of the chosen subflow such as name, subflow version along with the version label, and all variables configured in the subflow.

Optionally, click the View button beside the subflow name to open the subflow in a new tab in the browser.

Moreover, if you haven't set any version label for this subflow, it’s set to Latest by default.

6

In the Subflow Input Variables section, map the main Flow Variables to the Subflow Input Variables.

Make sure that you map the same data type to enable the subflow to work without error.

Similarly, in the Subflow Output Variables section, map the Subflow Output Variables to the main Flow Variables with the same data type.

7

Publish the main flow.

Error Handling

The error handling path appears for each activity that is configured in a flow. You can configure the error handling path to handle the errors that may occur during flow execution. The error handling path appears by default and is optional to configure. If you don't configure the error handling path in the activity, alerts appear during flow validation. However, you can publish the flow with the validation alerts.

Errors that occur during flow execution are broadly classified into two types:

  • Activity execution errors: Indicate the errors that occur during the functional execution of the activity. For example, an activity error occurs when a customer enters an unmatched entry during execution of the Menu activity.

  • System/Global errors: Indicate the errors that occur in the system during the execution of activities. For example, system errors occur when there is an invalid pebble expression during the execution of the Set Variable activity.

    • Undefined Error: This error node sets the error output path that the flow takes when there are undefined system errors during flow execution. You can configure the flow for undefined errors by connecting the output path of this activity to appropriate activities.

      The following Flow Control activities don't have the Undefined Error node - Start Flow, End Flow, HTTP Request, and Parse.

      If you don't see the Undefined Error node in any activity, contact Cisco Support to enable the corresponding feature flag.

Configure error handling paths to optimize the flow. If there is no error handling path configured for the activity, the flow uses the default path that is configured in the OnGlobalError event handler in the Event Flows tab. For more information about the OnGlobalError event handler, see Event Flows.

Flow Chaining

Flow chaining gives you the ability to link multiple flows. You can modify the caller's experience based on time (if handing off the call to an entry point), or to reuse a single flow in multiple scenarios (if handing off the call to a flow). Use GoTo to chain multiple flows. You can map flow variables across flows to ensure that data persists across the end-to-end call experience.

Example: Vaccination Registration

To handle customers participating in a vaccination campaign, you can provide two options: one for premium customers and the other for general customers.

When general customers call, the system hands the call off to the flow associated with the entry point handling registrations. Based on the active Entry Point Routing Strategies, the system routes the call to the appropriate agent to register the general customer.

When premium customers call, the system hands the call off to another flow to book an appointment.

Known Issues with Flow Chaining

  • You cannot delete an entry point that is used in flow chaining. Before you delete an entry point, ensure that you delete all of the resources such as queues and flows that are associated with the entry point.

  • You cannot delete a flow that is used in flow chaining. Before you delete the flow, ensure that you delete any references to the flow that were created as part of flow chaining.

  • If you forcefully delete an entry point or flow that is used in flow chaining, the flow control user interface does not validate or display any error messages to indicate that an entry point or flow was deleted.

Flow Tracing

Flow tracing is a postcall debugging process in Flow Designer that enables flow developers to get insights into the flow and view the path it took for a call. This feature also allows flow developers to view all the relevant information in the flow control execution path that helps to debug flows and troubleshoot any issues that arise during the flow execution.

If you have applied multiple version labels to a flow, you can trace the flow with respect to those version labels as well. For more information, see Apply version labels to a flow.

An interaction summarizes and correlates a set of activities associated with a contact's journey through a contact center. An Interaction ID is a system generated unique ID that identifies a given interaction. Interaction IDs corelate the journey of interactions through various paths that prompts you to identify the failure scenarios and activity failure paths to troubleshoot the flow execution.

You can use Flow Tracing to view different call control paths after execution of the flow in the production. This ensures verification of all the activity settings and other dependent flow configurations for a successful flow execution.

Before you begin

You must publish and execute a flow so that at least one interaction is established. For more information, see Create and Manage Flows.

1

Sign in to your customer organization using the Control Hub URL - https://admin.webex.com/.

2

Go to Contact Center > Customer Experience > Flows.

The Flows page appears.
3

Click the Go to Flow Designer icon beside the flow that you want to edit.

The flow opens in the Flow Designer window.
4

Click Debug.

The Interactions pane appears. A table displays the most recent 100 interactions for the flow. You can see the following details in the table:
  • Timestamp: Displays the date and time of the interaction.

  • Interaction ID: Indicates the unique ID of the interaction.

  • Version: Displays the version of the flow with the version label applied to it such as Latest, Dev, Live, and Test.
  • Entry Point: Displays the entry point assigned to the flow.

  • Last Executed Activity: Displays the activity that was executed at the end of the selected interaction.

5

(Optional) Use the search option to filter the list with the following search parameters:

  • Interaction ID: Enter an interaction ID to display the flow execution path for that interaction.

  • Date Range: Choose the start and end dates of the duration for which you want to fetch the interaction IDs.

  • Version Label: Choose one or more labels from this drop-down list to view all flow versions with the choosen version labels.
6

Choose an Interaction from the table.

The selected activity path gets highlighted in the canvas.

A new tab opens that displays the sequence of activities executed during the interaction. It shows the following details:

  • Sequence: Displays the activities in a sequence of their execution.

  • Activity Name: Displays the name of the activity.

  • Outcome: This can be either Success or Failed. Failed instances are shown in red.

You can choose multiple interactions that open in separate tabs.

7

Select an activity to view the following details:

  • Activity Interaction Metadata: Displays the name of the activity, and the start and end times of that activity execution.

  • Activity Inputs: Displays the list of inputs provided in the selected activity. For example, if you select the Play Music activity, inputs may include Music Duration, Music File, Start Offset, Dynamic Audio File, and so on.

  • Activity Outputs: Displays the output of the activity.

  • Modified Variables: Displays details of variables that are modified in the process of executing the selected activity. For example, if a flow variable is modified by using the Set Variable activity, the flow variable and the updated value are displayed in the Modified Variables section.

8

(Optional) Click the copy icon () to copy the interaction details to your clipboard.

You can identify the activities for the failed instances and troubleshoot by editing the flow. For more details, see Create and Manage Flows.

Flow Designer Error Codes

Flow Designer returns error codes to show the nature or reason for an error. Use the following table to identify the error and its description.

Table 58. Flow Designer Error Codes

Error Code

Description

FC1001

Flow version not found. Refresh the page or create a new flow.

FC1002

Start activity not found. Refresh the page or create a new flow. A Start activity appears by default when you create a new flow.

FC1003

One or more event flows do not have a valid start. Add an Event Handler activity to the start of each event flow.

FC1004

All non-event branches must lead to the end node.

FC1005

One of the variable configurations is invalid. For each variable, ensure that the configured data type and variable value are compatible.

FC1006

One or more ports in the activity are not connected. Ensure that all ports are connected to another activity through a link.

FC1007

Add a description for the activity.

FC1008

Some of the variables have the same name. Ensure that all variables have a unique name.

FC1009

The expression is invalid.

FC1010

The condition is invalid.

FC1011

A link in the Main Flow is broken. Delete the link to fix the error.

FC1012

A link in the Event Flow is broken. Delete the link to fix the error.

FC1013

The activity is used in more than one Event Flows. Event Flows cannot share common activities and must have a unique start and end.

FC1014

Queue Contact must terminate the flow. The output link can only connect to an End Flow activity.

FC1015

One or more fields in the activity are not configured correctly. Follow the requirements of each field to correct all errors and enter valid inputs.

FC1016

Another user created a flow that conflicts with the name of this flow. Edit the flow name to make it unique.

FC1017

An activity has arrows that originate from and point to itself.

For more information about GraphQL Server errors, see https://www.apollographql.com/docs/react/data/error-handling/.