Lab 2 - Let's Rock

Navigation: ◀ Lab 1 | Index | Lab 3 ▶

Table of Contents

Topic Lab Type Difficulty Estimated length
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 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.
First you will Route Calls based on Teams, later by Skills

Introduction

Live Demo by Günter

Lab Objective

Pre-requisites


Introduction to Flow Designer

Demo by Günter

Configuring tenant for Call Delivery

You can use this Audio Files during your Lab Experience
![[lab_wav.zip]]

Create a queue

  1. In the left pane of Control Hub > Select Contact Center > Queues
  2. 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_Team1 → Save Group
      • Create second group → Select Your_Attendee_ID_Team2 → After: 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

  1. Either Use the Flow Template or Create a Flow from Scratch.
    ![[flow_template 1.json]]

  2. In the left pane of Control Hub, click Flows.

  3. Click Manage Flows.

  4. Click Import Flows.

  5. Click Choose file or drag the flow template into the upload box.

  6. Click Import.

  7. Click the name of the newly imported flow_template:

    • Rename the flow to AttendeeID_TechSummit by clicking on the pencil icon at the top.
    • Click 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

  1. In the left pane of Control Hub, click Channels.
  2. Click Create Channel:
    • Name your Channel: EP_AttendeeID
    • Description: optional
    • Channel Type: telephony
    • Service Level Threshold: 60
    • Routing Flow: AttendeeID_TechSummit
    • Music 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

  1. Call your Support Number from your supervisor extension.
    • You 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

  1. Delete the connection that loops from the end of the Play Music node back to its beginning.
  2. Drag a new Play Message node under the Play Music node.
  3. Click on the Play Message node:
    • Activity Label: comfortMessage
    • Audio File: comfort_1_English
  4. Click on the Play Music node:
    • Set the music duration to 15 seconds
  5. Connect the end of the Play Music node to the beginning of the Play Message node.
  6. Connect the end of the Play Message node to the beginning of the Play Music node.
  7. Validate and Publish the flow:
    • Click the Validation switch to turn on validation
    • Click Publish Flow → Add Publish Note → Publish Flow → Return to Flow → Turn off Validation
    • Compare reference image
  8. 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

  1. Create a new flow variable:

    • Click on the cog in the lower left corner of the canvas
    • Click Add Flow Variables
    • Name: Loop_Count, Variable Type: Integer, Default value: 0
    • Click Save
  2. Delete the connection from the Play Music node to the comfortMessage node.

  3. Drag a Set Variable node onto the canvas and place it below the Play Music node.

  4. Click on the Set Variable node:

    • Activity Label: lCount
    • Variable: Loop_Count
    • Set Value: {{ Loop_Count + 1 }}
  5. Connect the Play Music node to lCount.

  6. Drag a Condition node on the canvas.

  7. Connect the end of the Set Variable node to the Condition node.

  8. Click on the condition node:

    • Activity Label: evenOdd
    • Expression: {{ Loop_Count is odd}}
  9. Drag another Play Message node:

    • Activity Label: websiteMessage
    • Audio File: website_English.wav
  10. Connect the True node edge from evenOdd to comfortMessage.

  11. Connect the False node edge from evenOdd to websiteMessage.

  12. Connect the end of websiteMessage to Play Music.

  13. Publish your flow (compare).

  14. Place a test call. Did you hear the comfort message and website message alternate every 15 seconds?

Creating an opt-out option with ANI readout

  1. 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
  2. Delete the connection from websiteMessage to Play Music.

  3. Drag a Menu node:

    • 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
  4. Connect websiteMessage to callback_opt.

  5. 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)}}
  6. Connect the callback_opt optOut node edge to callbackANI_set.

  7. Add a Play Message node:

    • Activity Label: cfrom
    • Audio File: calling_from_English.wav
  8. Connect callbackANI_set to cfrom.

  9. Add a Set Variable node:

    • Activity Label: rDigit_set
    • Select Variable: rDigit
    • Set to Value: {{callbackANI | slice (sPosition,sPosition+1)}}
  10. Connect cfrom to rDigit_set.

  11. 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
  12. Connect rDigit_set to playDigit.

  13. Add a Set Variable node:

    • Activity Label: advance
    • Select Variable: sPosition
    • Set to Value: {{sPosition+1}}
  14. Connect playDigit to advance.

  15. 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 here
  16. Connect advance to positionCheck.

  17. Publish your flow (compare).

  18. Test: Call, press 1 for callback. Did you hear your 10-digit callback number being read back?

Adding the ability to receive a callback at a different number

  1. Add a new Menu node:

    • Activity Label: confirmNumber
    • Prompt: number_confirm_English.wav
    • Make Prompt Interruptible: True
    • Digit 1: Link Description confirm number
    • Digit 2: Link Description change number
    • Connect No-Input Timeout & Unmatched Entry to the front of confirmNumber
  2. Delete the False node edge from positionCheck to Disconnect Contact.

  3. Connect the False node edge from positionCheck to confirmNumber.

  4. Connect the confirm number edge to Disconnect Contact.

  5. 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 & Unmatched Entry to the front of newNumber
  6. Connect the change number edge to newNumber.

  7. Add a Set Variable node:

    • Activity Label: newCB
    • Variable: callbackANI
    • Set Value: {{newNumber.DigitsEntered}}
  8. Connect newNumber to newCB.

  9. Add a Set Variable node:

    • Activity Label: resetPosition
    • Variable: sPosition
    • Set Value: 0
  10. Connect newCB to resetPosition.

  11. Add a Play Message node:

    • Activity Label: rcontext
    • Audio File: entered_English.wav
  12. Connect resetPosition to rcontext.

  13. Connect rcontext to rDigit_set.

  14. Publish (compare).

  15. Test: Press 1 for callback, press 2 to enter a different number. Did the new number get read back?

Adding the ability to collect an extension and present it to an agent during a callback

  1. Create new flow variable:

    • Name: Extension, Type: String, no default value
    • Set as agent Viewable: True
    • Desktop Label: Extension
  2. Add a Menu node:

    • Activity Label: needExt
    • Audio File: ext_English.wav
    • Make Prompt Interruptible: True
    • Digit 1: Link Description collect ext
  3. Delete the connection from confirm number edge of confirmNumber to Disconnect Contact.

  4. Connect the confirm number edge of confirmNumber to needExt.

  5. Add a Collect Digits node:

    • Activity Label: getEXT
    • Audio File: enter_ext_English
    • Make Prompt Interruptible: True
    • Connect No-Input Timeout & Unmatched Entry to the front of getEXT
  6. Connect the collect ext edge of needExt to getEXT.

  7. Add a Set Variable node:

    • Activity Label: setExt
    • Variable: Extension
    • Set Value: {{getEXT.DigitsEntered}}
  8. Connect getEXT to setEXT.

  9. Add a Set Variable node:

    • Activity Label: clrsPos
    • Variable: sPosition
    • Set Value: 0
  10. Connect setEXT to clrsPos.

  11. Add a Play Message node:

    • Activity Label: entEXT
    • Audio File: entered_English.wav
  12. Connect clrsPos to entEXT.

  13. Use Shift + left-click to select these nodes:

    • rDigit_set, playDigit, advance, positionCheck
  14. Click the copy button in the lower-left corner of the canvas.

  15. Drag the copied versions of the nodes under clrsPos.

  16. Rename the copied nodes the original names + _EXT (example: rDigit_set_EXT).

  17. Connect entEXT → rDigit_set_EXT → playDigit_EXT → advance_EXT → positionCheck_EXT.

  18. Edit rDigit_set_EXT:

    • Set value: {{Extension | slice (sPosition,sPosition+1)}}
  19. Edit positionCheck_EXT:

    • Expression: {{sPosition <= (Extension.length -1) }}
    • Connect True node edge to rDigit_set_EXT
  20. Add a Menu node:

    • Activity Label: confirmEXT
    • Audio File: ext_confirm_English.wav
    • Make Prompt Interruptible: True
    • Digit 1: Link Description confirmed
    • Digit 2: Link Description again
    • Connect No-Input Timeout & Unmatched Entry to the front of confirmEXT
    • Connect the Again edge to getEXT
  21. Connect the False edge of positionCheck_EXT to confirmEXT.

  22. Add a Callback node:

    • Activity Label: callback
    • Callback Dial Number: callbackANI
    • Callback Queue: Q_AttendeeID
  23. Connect the confirmed edge of confirmEXT to callback.

  24. Add a Play Message node:

    • Activity Label: callbackConfirm
    • Audio File: callback_confirm_English.wav
  25. Connect callback to callbackConfirm.

  26. Connect callbackConfirm to Disconnect Contact.

  27. Connect the No-Input Timeout and Unmatched Entry edges from needExt to Disconnect Contact.

  28. Publish (compare).

  29. Test:

    • Press 1 to receive a callback
    • Press 1 to keep the number that was read back
    • Press 1 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


Congratulations, you have completed this lab! Continue with Lab 3 — Agent Desktop.

Powered by Forestry.md