Lab 2 - IVR Contact Routing
Last modified: Tue, 27 Jun 2023
Table of Contents
Topic | Lab Type | Difficulty Level | Estimated length |
---|---|---|---|
Introduction to Flow Designer | Watch & Understand | EASY | 10 min |
Configuring tenant for Call Delivery | Practical Lab | EASY | 10 min |
Adding a comfort message while a call is in queue | Practical Lab | EASY | 8 min |
Creating alternating comfort messages while a call is in queue | Practical Lab | EASY | 15 min |
Creating an opt-out option with ANI readout | Practical Lab | EASY | 15 min |
Adding the ability to receive a callback at a different number | Practical Lab | EASY | 15 min |
Adding the ability to collect an extension and present it to an agent during a callback | Practical Lab | EASY | 15 min |
Overview of the lab:
In this lab, we will configure all of the required elements to deliver a call into a queue. We will then create a new flow and iterate on it adding functionality and exploring opportunities for improvement.
Introduction
Lab Objective
- Configure Entry Point, Entry Point Mapping, Routing Strategy, and Queue
- Create a basic flow
- Add functionality to the flow by making small changes
Pre-requisites
- Complete Lab 1 “Admin Experience”
- You have the administrator’s access to the Tenant Management Portal.
- Agent and Supervisor users created and configured
- You have agent’s access to the Agent Desktop
- You have the supervisor’s access to the Tenant Management Portal.
- Agent is part of 2 Teams.
- Webex Calling extensions are assigned to a WxCC users (agent and supervisor).
Quick Links
Control Hub: https://admin.webex.com
Portal: https://portal.wxcc-us1.cisco.com/
Agent Desktop: https://desktop.wxcc-us1.cisco.com\
Fill in the form with the details provided and agent email address you created in the previous lab, then click “Update Directions”
Please skip the task if you are doing the labs on the Gold Tenant. The task below is only for the Lab Tenant option where you have received an email with the Lab tenant credentials. In a such case, please copy and paste the data from the email into the corresponding fields.
Lab Section
Introduction to Flow Designer
Flow designer is a simple drag-and-drop user interface (UI) to define the flows. The following video explains the Flow Designer layout, activity library, and terminology used in the Flow Designer.
Configuring tenant for Call Delivery
⚠️ If you are using your Gold Tenant you can use this link to download the Audio Files. Those files are already pre-uploaded on the Lab Tenant.
Create a queue
-
In the left pane of Control Hub > Select Contact Center > Queues (click for details)
- Click Create Queue
Name your queue Q_
AttendeeID Description: optional
Queue Type: Inbound Queue
Channel Type: Telephony
Queue Routing Type: Longest Available Agent
Call Distribution:
Click Create Group
Select
Your_Attendee_ID _Team1Save Group
Create second group
Select
Your_Attendee_ID _Team2After: 60 Seconds in queue
Priority: 2
Save Group
Click Close
Service Level Threshold: 60
Maximum Time in Queue: 600
Default Music in Queue: defaultmusic_on_hold.wav
Save
Create your first flow
- Download the Flow Template
The file will open in a separate window.
If using Firefox, Select the save option. (click for details)
If using Chrome or Edge, right click and select save. (click for details)
If using Chrome on a MAC, click the share icon in the URL bar and select save. (click for details)
- In the left pane of Control Hub, click Flows
- Click Manage Flows
- Click Import Flows
- Click Choose file or drag the flow template into the upload box
-
Click Import
- Click the name of the newly imported flow_template
Rename the flow to
AttendeeID _TechSummit by clicking on the pencil icon at the top of the screen, next to the flow nameClick on the Play Message node
Audio File: welcome.wav
Click on the Queue Contact node
Select Static Queue
Queue: Q_
AttendeeID
Click on the Play Music node
Select Static Audio File
Music File: defaultmusic_on_hold.wav
Click the Validation switch to turn on validation
Click Publish Flow
Add a Publish Note of your choosing
Click Publish Flow
Click Return to Flow
Turn off Validation
Create your Channel
- In the left pane of Control Hub, click Channels
- Click Create Channel
Name your Channel EP_
AttendeeID Description: optional
Channel Type: telephony
Service Level Threshold: 60
Routing Flow:
AttendeeID _TechSummitMusic on Hold: defaultmusic_on_hold.wav
In Support Number section:
Click Add
In Webex Calling location, select “Office”
In Available Numbers select
Your Support Number Click the check mark
Click Save
Test your configuration
- Call
Your Support Number from your supervisor extensionYou should hear the greeting message and then the music in queue
Go available in the agent desktop
The call should be delivered to your agent extension
End the call, Wrap-up, and Go unavailable
Adding Functionality to Your Flow
Adding a comfort message while a call is in queue
- Delete the connection which loops from the end of the Play Music node back to the beginning of the Play Music node.
- Drag a new Play Message node under the Play Music node.
- Click on the Play message node
Activity Label: comfortMessage
Audio File: comfort_1_English
- Click on the Play Music node
Set the music duration to 15 seconds
- Connect the end of the Play Music node to the beginning of the play message node.
- Connect the end of the Play Message node to the beginning of the Play Music node.
- Validate and Publish the flow:
Click the Validation switch to turn on validation
Click Publish Flow
Add a Publish Note of your choosing
Click Publish Flow
Click Return to Flow
Turn off Validation
- Place a test call to
Your Support Number Did you hear the comfort message every 15 seconds?
Creating alternating comfort messages while a call is in queue
- Create a new flow variable:
Click on the cog in the lower left corner of the canvas (or on the background of the flow)
Click Add Flow Variables
Name: Loop_Count
Variable Type: Integer
Default value: 0
Click Save
- Delete the connection from the Play Music node to the comfortMessage node.
- Drag a Set Variable node onto the canvas and place it below the Play Music node
- Click on the Set Variable node
Activity Label: lCount
Variable: Loop_Count
Set Value: {{ Loop_Count + 1 }}
- Connect the Play Music node to lCount
- Drag a Condition node on the canvas
- Connect the end of the Set Variable node to the Condition node
- Click on the condition node
Activity Label: evenOdd
Expression: {{ Loop_Count is odd}}
- Drag another Play Message node onto the canvas
Activity Label: websiteMessage
Audio File: website_English.wav
- Connect the True node edge from evenOdd to comfortMessage
- Connect the False node edge from evenOdd to websiteMessage
- Connect the end of websiteMessage node to the Play Music node
- Publish your flow Compare
- Place a test call to
Your Support Number Did you hear the comfort message and website message alternate every 15 seconds?
Creating an opt-out option with ANI readout
- Create new flow variables:
Name: callbackANI
Type: String
No default value
Name: rDigit
Type: string
No default value
Name: sPosition
Type: Integer
Default Value: 0
- Delete the connection from the websiteMessage node to Play Music
- Drag a Menu node onto the canvas
Activity Label: callback_opt
Audio File: opt_out_English.wav
Make Prompt Interruptible: True
Digit Number: 1 Link Description: optOut
Connect the No-Input Timeout node edge to Play Music
Connect the Unmatched Entry node edge to Play Music
- Connect the websiteMessage to the callback_opt node
- Add a Set Variable node
Activity Label: callbackANI_set
Select Variable: callbackANI
Set to Value: {{NewPhoneContact.ANI | slice (NewPhoneContact.ANI.length -10,NewPhoneContact.ANI.length)}}
- Connect the callback_opt optOut node edge to callbackANI_set
- Add a Play Message Node
Activity Label: cfrom
Audio File: calling_from_English.wav
- Connect callbackANI_set to cfrom
- Add a Set Variable node
Activity Label: rDigit_set
Select Variable: rDigit
Set to Value: {{callbackANI | slice (sPosition,sPosition+1)}}
- Connect cfrom to rDigit_set
- Add a Play Message node
Activity Label: playDigit
Click Add Audio Prompt Variable
Audio Prompt Variable: {{rDigit}}_English.wav
Delete the Audio File Drop Down
- Connect rDigit_set to playDigit
- Add a Set Variable node
Activity Label: advance
Select Variable: sPosition
Set to Value: {{sPosition+1}}
- Connect playDigit to advance
- Add a Condition node
Activity Label: positionCheck
Condition: {{sPosition <= (callbackANI.length -1) }}
True: Connect to rDigit_set
False: Add a new Disconnect Contact node and connect it here
- Connect advance to positionCheck
- Publish your flow Compare
- Place a test call to
Your Support Number When you are given the option for a callback, press 1.
Did you hear your 10 digit callback number being read back?
Adding the ability to receive a callback at a different number
- Add a new Menu node
Activity Label: confirmNumber
Prompt: number_confirm_English.wav
Make Prompt Interruptible: True
Digit Number: 1 Link Description: confirm number
Digit Number: 2 Link Description: change number
Connect No-Input Timeout to the front of the confirmNumber node
Connect Unmatched Entry to the front of the confirmNumber node
- Delete the False node edge from positionCheck to Disconnect Contact
- Connect the False node edge from positionCheck to confirmNumber
- Connect the confirm number node edge to Disconnect Contact
- Add a Collect Digits node
Activity Label: newNumber
Audio File: new_number_English.wav
Make Prompt Interruptible: True
Minimum Digits: 10
Maximum Digits: 10
Connect No-Input Timeout to the front of the newNumber node
Connect Unmatched Entry to the front of the newNumber node
- Connect the change number node edge to newNumber
- Add a Set Variable Node
Activity Label: newCB
Variable: callbackANI
Set Value: {{newNumber.DigitsEntered}}
- Connect newNumber to newCB
- Add a Set Variable Node
Activity Label:resetPosition
Variable: sPosition
Set Value: 0
- Connect newCB to resetPosition
- Add a Play message node
Activity Label: rcontext
Audio File: entered_English.wav
- Connect resetPosition to rcontext
- Connect rcontext to rDigit_set
- Publish your flow Compare
- Place a test call to
Your Support Number When you are given the option for a callback, press 1.
Press 2 to enter a different number.
Did you hear your 10 digit callback number being read back?
Did you hear the number you entered read back?
Adding the ability to collect an extension and present it to an agent during a callback
- Create new flow variable:
Name: Extension
Type: String
No default value
Set as agent Viewable: True
Desktop Label: Extension
- Add a Menu node
Activity Label: needExt
Audio File: ext_English.wav
Make Prompt Interruptible: True
Digit Number: 1 Link Description: collect ext
- Delete to connection from the confirm number node edge of confirmNumber to Disconnect Contact
- Connect the confirm number node edge of confirmNumber to needExt
- Add a Collect Digits node
Activity Label: getEXT
Audio File: enter_ext_English
Make Prompt Interruptible: True
Connect the No-Input Timeout node edge to the front of the getEXT node
Connect the Unmatched Entry node edge to the front of the getEXT node
- Connect the collect ext node edge of needExt to getEXT
- Add a Set Variable node
Activity Label: setExt
Variable: Extension
Set Value: {{getEXT.DigitsEntered}}
- Connect getEXT to setEXT
- Add a Set variable node
Activity Label: clrsPos
Variable: sPosition
Set Value: 0
- Connect setEXT to clrsPos
- Add a Play Message node
Activity Label: entEXT
Audio File: entered_English.wav
- Connect clrsPos to entEXT
- Use Shift + left click to select nodes:
- rDigit_set
- playDigit
- advance
- positionCheck
- Click the copy button in the lower left corner of the canvas
- Drag the copied versions of the nodes under the clrsPos node
- Rename the copied nodes the original names = _EXT (example: rDigit_set_EXT)
- Connect entEXT > rDigit_set_EXT > playDigit_EXT > advance_EXT > positionCheck_EXT
- Edit rDigit_set_EXT
Set value: {{Extension | slice (sPosition,sPosition+1)}}
- Edit positionCheck_EXT
Expression: {{sPosition <= (Extension.length -1) }}
Connect True node edge to rDigit_set_EXT
- Add a Menu node
Activity Label: confirmEXT
Audio File: ext_confirm_English.wav
Make Prompt Interruptible: True
Digit Number: 1 Link Description: confirmed
Digit Number: 2 Link Description: again
Connect No-Input Timeout to the front of the confirmEXT node
Connect Unmatched Entry to the front of the confirmEXT node
Connect the Again node edge to getEXT
- Connect the False node edge of positionCheck_EXT to confirmEXT
- Add a Callback node
Activity Label: callback
Callback Dial Number: callbackANI
Callback Queue: Q_
AttendeeID
- Connect the confirmed node edge of confirmedEXT to callback
- Add a Play Message node
Activity Label: callbackConfirm
Audio File: callback_confirm_English.wav
- Connect callback to callbackConfirm
- Connect callbackConfirm to Disconnect Contact
- Connect the No-Input Timeout and Unmatched Entry node edges from needExt to Disconnect Contact
- Publish your flow Compare
- Place a test call to
Your Support Number Press one to receive a callback
Press one to keep the number which was read back
Press one to receive a callback at an extension
Enter
Your Supervisor Extension and press #.In the agent desktop, go available.
When your agent phone rings, answer the call.
Listen to the prompts and enter the Extension shown on the agent desktop.
Your Supervisor extension should ring, answer it.
Coming soon:
Making the flow bi-lingual
Cisco TTS
Adding HTTP Request
Pubble Template
Congratulations, you have completed this lab! You can continue with the next one.