- Home
- /
- Article
Flow Designer
Flow Designer is an integral component of Webex Contact Centre that enables you to route the real-time calls through a system. You can specify how agents are assigned to the calls and what occurs at each stage of the process through configuring activities and events.
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 .The Flows page appears.
You can also access Flows from the Management Portal. From the Management Portal navigation bar, choose . |
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 File | Choose 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: 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:
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:
|
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 the
AgentDisconnected
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.
Parameter | Description |
---|---|
Voice Based |
To play an inline survey to the customer, do the following:
|
Email/SMS Based |
To provide an offline Email/SMS survey to the customer, do the following:
|
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.
Parameter | Description |
---|---|
Override Language Settings |
Enable the Override Language Settings toggle button to set any custom language for Webex Experience Management.
If the Override Language Settings toggle button is not enabled, the |
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.
Parameter | Description |
---|---|
Customer ID | (Optional) Select a unique identifier for the customer from the drop-down list. |
| (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.
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.
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.
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.
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.
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.
|
Override Default Language & Voice Settings |
Use this toggle button to override the voice settings configured in the |
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:
|
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.
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}}
.
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
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:
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.
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.
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.
|
Override Default Language & Voice Settings |
Use this toggle to override the voice settings configured in the |
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:
|
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: 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.
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.
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:
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:
|
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.
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.
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.
|
Override Default Language & Voice Settings |
Use this toggle button to override the voice settings configured in the |
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:
|
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: 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.
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 |
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.
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.
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.
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.
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.FailureDescription | This 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. |
2 | Busy | The external DN is either engaged or has rejected the incoming call. |
3 | No answer | The external DN failed to answer the call within the preset timeout duration. |
48 | Unsupported flow activity | The flow can't execute the Bridged Transfer activity post-queueing or once an once an agent has been assigned to the call. |
5 | Unsupported_DN | You 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. |
6 | System_Error | This code represents miscellaneous errors that do not fall into the above defined categories. |
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
Before you use a Virtual Agent:
-
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.
-
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 Agent | Choose 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 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:
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 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:
|
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.
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: Value: The contact center sends these parameter values to the Google Dialogflow as a JSON value in the |
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 variableErrorCode 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.
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:
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.
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:
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.
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 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:
|
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:
|
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.
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:
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:
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:
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:
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.
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.
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:
The contacts are handled as follows:
|
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.
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.
To configure skill relaxation:
-
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.
-
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.
-
-
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:
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:
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:
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:
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: |
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:
|
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:
|
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:
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:
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.
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.
Use Case |
AgentState |
AgentIdleCode |
---|---|---|
|
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.
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 |
-
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:
Scenario |
Configuration |
Result ANI |
---|---|---|
Customer calls in |
PreDial event handler is not configured |
|
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 |
|
Set Caller ID activity configured will take precedence. |
Courtesy callback |
|
|
Courtesy callback |
|
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 . |
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:
-
In the Flow Designer, drag and drop the Recording Control activity from the Activity Library to the canvas.
-
Click the Recording Control activity to configure the activity settings.
-
In General Settings, enter a name for the activity in Activity Label.
-
(Optional) In the Activity Description field, enter a description for the activity.
-
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:
| ||||||||||||||||||||||||
6 |
In Record Settings, configure the following fields:
| ||||||||||||||||||||||||
7 |
In the Output Variables section, view the following variables:
The following table lists the error codes and descriptions for the Record activity:
|
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.
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 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.
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 |
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 |
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:
|
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: Value: |
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:
To add an HTTP Header, click Add New. This adds a row where you can enter the respective key‐value 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.
|
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.
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.
Parameter | Description |
---|---|
Enable Audio on Wait | Toggle 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.
Condition |
Description |
---|---|
Condition |
Choose the Condition from the drop‐down list:
|
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
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. |
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.
Parameter | Description |
---|---|
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.
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 typeInteger
from the Map Current Variables drop-down list, the To Destination Variable drop-down list displays only variables of typeInteger
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. |
2 | FailureDescription |
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.
Variable Name |
Description |
---|---|
|
During the flow execution, this variable stores the name of the shift defined in the working hour. |
|
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. |
|
During the flow execution, this variable stores the name of the override that matches with the current time as defined in the Overrides. |
|
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:
|
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.
The percentage allocation activity has the following output variables:
|
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.
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.
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.
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 .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:
| ||||||||||||||
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:
| ||||||||||||||
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:
-
The Customer variables Phone Number, DN, Queue, RONA Time
-
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 .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 .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 .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: 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 .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 .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.
|
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 .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.
-
You must create variables that you want to add in the incoming popover of the Desktop. For more information, see Create a Global Variable and Create Custom Flow Variables.
-
You must mark variables as Agent Viewable. For more information on how to mark a Global Variable as Agent Viewable, see Edit Global Variable in a Flow.
1 |
Sign in to your customer organization using the Control Hub URL https://admin.webex.com/. |
2 |
Go to .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: 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.
-
You must create variables that you want to add in the incoming popover of the Desktop. For more information, see Create a Global Variable and Create Custom Flow Variables.
-
You must mark variables as Agent Viewable. For more information on how to mark a Global Variable as Agent Viewable, see Edit Global Variable in a Flow.
1 |
Sign in to your customer organization using the Control Hub URL https://admin.webex.com/. |
2 |
Go to .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: 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 asE1
. -
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:
If you extract the Employees JSON array into a variable called{ "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" } ] } ] }
var
using HTTP or Parse:-
Use
{{ var[0]}}
to get the employee details ofrirani
who is a manager. -
Use
{{ var[1].directReports[0] }}
to get the employee details ofJohn
who is a direct reportee of the manager. -
Use
{{ var[1].directReports[0].preferredFullName }}
to get the value asJohn Irani
. -
Use
{{ var[0].preferredFullName }}
to get the value asRomin 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:
- Business hours
- Collect callback info subflow
- Comprehensive inbound contact flow
- Error handling subflow
- Google DialogFlow ES Integration with Webex Contact Center
- Hello world
- HTTP connector for ServiceNow
- HTTP data dip subflow
- Menu auto attendant
- Percentage allocation & A/B distribution
- Queue treatment subflow
- Simple inbound call flow
- Variable flow
- Virtual agent with Google DialogFlow CX
- Webex Contact Center-IVR HTTP connector for MS Dynamics
- Webex Contact Center-IVR HTTP connector for Salesforce
- Zendesk HTTP Connector for Webex Contact Center
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 .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:
|
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.
|
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 . |
3 |
From the Contact Center navigation pane, click . |
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.
|
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 .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 .The Flows page appears and displays the list of flows with the following
fields:
| ||||||||||
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 .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: |
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.
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 .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:
Use any of the following keyword search attributes to filter the table:
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. |
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 .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: 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 .The Flows page appears.
|
3 |
To create a flow, click . |
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: 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 .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:
|
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 .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 .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 .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.
|
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
andFlow Id
. Contact Cisco Support for assistance with errors. Support requires theTracking 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 .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:
|
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 .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 . |
3 |
Click . |
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.
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 . |
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 . |
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 .You can also add a subflow to a main flow from the Management Portal navigation bar. Choose . 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 .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:
|
5 |
(Optional) Use the search option to filter the list with the following search parameters:
|
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:
You can choose multiple interactions that open in separate tabs. |
7 |
Select an activity to view the following details:
|
8 |
(Optional) Click the copy icon () to copy the interaction details to your clipboard. |
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.
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. |