Agenda
Unified Contact Center Express Editor
Basic
Scripting Fundamentals
Deployment
Advanced
Enterprise Data, Custom Variables, Agent-based Routing, Get
Reporting Statistics step, eMail steps, HTTP Triggers, Custom
Java, multi-language support
Changes in CCX 8.0
Script Repository
FAQ (If time permits)
Q&A
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Unified Contact Center Express Editor
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Unified Contact Center Express Editor
Palettes Pane
Script
Pane
Message
Pane
Variables Pane
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Unified Contact Center Express Editor
Each step has its own unique capabilities, from
simple increment to generating and playing out
prompts, obtaining user input, queuing calls, or
performing database operations.
Steps are grouped into palettes: General, Call
Control, Media, ACD etc.
Every step (except End step) has at least one
output branch.
Variables can be created and accessed anywhere
in the script.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Unified Contact Center Express Editor
Variables can be specified as final or parameter.
The values of parameter variables can be set in
AppAdmin.
Variables support built-in types: String, int, char,
boolean etc.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Unified Contact Center Express Editor
Additional editor functions: Validate, Debug
Validate checks if all steps are properly customized
and all execution paths terminate to an End step.
Debug in real-time add breakpoints, reactive and
non-reactive debugging
More details on how to debug scripts available in
Getting Started With Scripts guide.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Scripting Fundamentals
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Scripting Fundamentals
Basic Steps:
GeneralIf, Increment, Label, Goto, Annotate,
Call Subflow
Call ControlAccept, Redirect, Terminate
MediaPlay Prompt, Menu, Get Digit String
ACDSelect Resource, Connect, Set Priority
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Scripting FundamentalsGeneral
Steps
Start, EndThe first and last
steps of execution
IfBranch based on boolean
condition
Increment, Set
Goto, LabelJump to any
label in the script
Call SubflowA subflow is a
script that is invoked from
another script.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
Scripting Fundamentals
Call Control Steps
The Accept step answers
the call. The caller hears
ring tone until the Accept
step is executed.
The Redirect steps
redirects the call to a
specified destination.
Output branches are
Successful, Busy, Invalid,
Unsuccessful.
The Terminate step ends
the call.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
10
Scripting FundamentalsMedia Steps
The Play Prompt plays back a specified prompt to the caller.
The step has properties such as:
Interruptible (Yes or No): Can the step be interrupted by an
event such as an agent going Ready?
Barge-In (Yes or No): Can the caller interrupt the prompt?
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
11
Scripting FundamentalsMedia Steps
The Menu step provides
a menu from which
callers can choose an
option.
The Menu step receives
a single digit entered or
spoken by a caller and
maps this entry to a
series of output
branches.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
12
Scripting FundamentalsMedia Steps
The Get Digit String step captures either DTMF or
spoken digit string from the caller in response to a
prompt.
The step waits for input until the caller does one
of the following:
Presses the terminating key (DTMF only)
Exceeds the max number of retries
Enters the max number of keys (DTMF only)
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
13
Scripting FundamentalsACD Steps
Use Select Resource step to
queue for a CSQ or agent
If there is no agent available,
exit on Queued output
branch. The script is
interrupted when an agent
becomes available.
If there is an agent available,
exit on either Connected or
Selected output branch.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
14
Scripting Fundamentals
Properties of Select Resource Step:
Contact
Routing Target Type:
CSQ, Resource
CSQ/Resource Target
Connect option
Timeout
Resource Selected
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
15
Scripting Fundamentals
Simple Routing Script
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
16
Scripting Fundamentals
Deploying Scripts
Write script
Validate and debug script
Upload scriptuse AppAdmin to upload script to repository
Create Applicationuse AppAdmin to create application
and set values for configurable parameters
Create triggercreate telephony or HTTP trigger for the
application
Admin Guide has more details on how to debug and create/deploy
applications.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
17
First Chance to Win Fabulous Prize
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
18
Question
Which of the following is not a name previously used
by Cisco Unified Contact Center Express?
CRA
CRS
CRX
IPCCX
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
19
Advanced Scripting
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
20
Enterprise Data
Enterprise data is data related to the customer that
is presented to the agent on CAD or IPPA.
Script can collect enterprise data by prompting
caller, doing database lookups etc.
Additional configuration is required on Cisco
Desktop Administrator (CDA) to present enterprise
data on CAD and IPPA
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
21
Enterprise Data
Enterprise
Data
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
22
Enterprise Data
How to Display Enterprise Data on CAD?
Add ECC variables or
the 12 predefined call
variables to a layout.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
23
Enterprise Data
Steps to Set up Enterprise Data to Display on CAD
Use the Set Enterprise
Call Info step in script to
set enterprise data values.
The step is used to set
values for both ECC and
predefined (called call
peripheral variables)
enterprise data.
Remember to set the
layout.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
24
Enterprise Data
Enterprise Data on CAD
Enterprise
Data
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
25
Custom Variables
Custom variables allow users to store custom
information about a contact that is not already stored
as part of a Contact Call Detail record (called number,
disposition etc). Example: you want to track at what
point in the script a call is abandoned.
The Call Custom Variable report shows information
about any custom variables set using the Set
Enterprise Call Info step.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
26
Custom Variables
Call variables 1-10 are
stored in the Contact Call
Detail table.
Use the Set Enterprise Call
Info step to set the values.
ECC variables are NOT
stored in the Contact Call
Detail table.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
27
Custom Variables
Example of how custom
variable can be used to
track the path taken in
a script
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
28
Routing Options
Agent-Based Routing
Routes a call to an agent
directly.
Available in Enhanced and
Premium.
In the Select Resource step,
select Resource as the
Routing Target Type, and
specify the agent to route
the call to.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
29
Routing Options
Agent-Based Routing
Script needs a way
to determine which
specific agent to
route to (e.g. DB
lookup)
Agent-based
queuing is not
supported, so what
do you do?
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
30
Get Reporting Statistics Step
Used to retrieve real-time stats
overall, CSQ and agent-based
stats.
Examples:
Number of logged in agents
Duration of oldest call in queue
Number of handled calls for
a CSQ
Number of handled calls for
an agent
Position in queue
Expected wait time
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
31
Get Reporting Statistics Step
Formula for Expected Wait Time =
Position in queue * the CSQs average handle
duration/(total number of working agents of the
CSQ)
where total number of working agents of the CSQ =
number of talking + reserved + work agents, and
the CSQ handle time includes reserved, talking and
wrap-up time.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
32
Email Steps
Used to send outgoing emails.
Only available with CCX Premium and IPIVR.
Need to configure the email subsystem by providing the
address of the mail server.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
33
Email Steps
Email steps: Create eMail, send
eMail, Attach to eMail
Typical sequence:
Get email address you want to send the
email to
Use Create eMail step to create email.
Specify the subject and body and assign
the email to a Contact variable.
Use Attach to eMail to attach any
documents to the same Contact variable.
Use the Send eMail step to send the email.
Specify the destination and use the same
Contact variable.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
34
Email Steps: Example
Lets look at a sample script that emails agents
when the number of calls in queue exceeds a
threshold.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
35
HTTP Triggers
Script execution can be triggered from HTTP requests
Only available in CCX Premium and IPIVR
To create an HTTP Trigger, provide the following:
URL (the relative url, e.g.hello)
Default Language
Maximum number of sessions
Idle timeout (how long the system waits for a session to become available)
Enabled
To invoke the HTTP trigger, invoke the url, e.g. .
www.myCCXserver.com:9080/hello
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
36
HTTP Triggers
Sample HTTP script:
Presents queue stats on
a browser. Can be used
to supplement CAD realtime stats.
Invoke script by
accessing
http://myserver.com:9080
/queueStats
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
37
HTTP Triggers
First, gather real-time
stats using the Get
Reporting Stat
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
38
HTTP Triggers
Use Create File Doc step
to create a document
object based on a html
template
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
39
HTTP Triggers
Use Keyword Transform
Doc step to replace
keywords in a predefined
template with values
obtained from local
variables
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
40
HTTP Triggers
Use the Send Http
Response step to send
back response
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
41
Custom Java
Available in CCX Enhanced and Premium and IPIVR
Allows script to execute custom Java code
You can upload your own JAR file or add your own Java code in the
expression editor
You can access the expression editor anytime you see a 3-dot button
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
42
Custom Java
Example:
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
43
Custom Java
To make custom Java
classes accessible to
the editor:
Use AppAdmin to upload
the jar file containing the
custom classes to the
document repository. Jar
file must be uploaded to
default/classpath folder.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
44
Custom Java
Use AppAdmin to
configure a custom class
path to specify the JAR file
(System Custom File
Configuration)
Restart the Cisco Unified
CCX Editor to load the
custom jar file.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
45
Multiple Language Support
CCX 8.0 supports the following IVR languages:
Australian English, Polish, Czech, Hungarian,
Turkish
The CCX system has a default language configured
(System->Language Configuration)
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
46
Multiple Language Support
When a script needs to play a prompt, it will use the
contacts language context. e.g. You may have a
context of L[en_AU, en_GB]. The system will look
for prompts in the following folders in the following
order:
\en_AU
\en
\en_GB
\default
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
47
Multiple Language Support
When you create a trigger, you need to specify a
language. This is the first language in the contacts
language context.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
48
Multiple Language Support
You can write a script that supports multiple
languages
You can use the Set Contact Info step to add a new
language to a contacts language context.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
49
Another Chance To Win
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
50
Question
Which of the following is not a valid CCX release
(there may be multiple)?
3.1
4.1
5.1
7.1
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
51
What Changed in CCX 8.0
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
52
Changes in CCX 8.0
New Time Zone data type added.
Time zone support in Day of Week and Time of
Day steps
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
53
Changes in CCX 8.0
Limited access to local file system for reading and
writing.
Single directory will be opened for reading/writing
This directory is meant for temporary storage.
The location to the directory can be retrieved by using:
System.GetProperty(uccx.customer.dir)
Files should be stored in the Document Repository.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
54
Script Repository
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
55
Script Repository
Provides scripts that can be used as reference and
some can be used out-of-the-box.
Provides commonly-used functionalities:
System State
Holiday Management
Prompt Management
Basic Menu
Advanced Menu with Enterprise Data
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
56
Script Repository
Release 1:
Agents Logged-In Check
Auto Agent Greeting, Auto Agent Greeting Upload
Emergency, Emergency Check
Holiday, Holiday Check
ICD Demo
Musician Supply, Musician Supply MOH
QueueStats
Utility CSQ-based MOH
VoiceMail, VoiceMail Queuing
WebCallback, WebCallback Queuing
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
57
Script Repository
Release 2:
System State Management
Holiday Management
Prompt Management
Basic Menu
Advanced Menu with Enterprise Data
Extensive documents
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
58
Script Repository
Release 3:
Database Access
HTTP Trigger with callbacks
Advance Queuing with Voicemail and Callbacks
Extensive documents
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
59
Final Chance to Win Fabulous Prize
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
60
Question
Which of the following is the most recent CCX
release?
5.0(2)SR3
7.0(2)
8.0(1)
8.0(2)
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
61
FAQ
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
62
FAQ
The Upload Prompt step does not seem to work
anymore after upgrading from CCX 4.0 to CCX 7.0.
Starting in CCX 4.5, the Upload Prompt step needs a user that
is authenticated. Use the Authenticate User step to
authenticate the user.
Do I need to purchase TTS to speak numbers such as
account number, currency, phone number?
No, the system can use the system prompts to do this. Take a
look at the Create Generated Prompt for a list of generated
prompts supported: number, character, spelling, currency etc.
I modified a script but it does not seem to take effect?
You need to upload the new script to the script repository and
refresh the script on AppAdmin.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
63
FAQ
How do I allow callers to press any digit while in queue to be
transferred to the operator?
Use the Get Digit String and Redirect steps. Set Barge-In to True. If you
have a series of Play Prompt steps after the Get Digit String step, set
Barge-In to True and Flush Input Buffer to False on all the steps.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
64
FAQ
I would like to play out the customers account number but I
want to hear three-seven-four-two instead of three thousand
seven hundred and forty two?
You can use the Create Generated Prompt step and specify spelling as
the generator type, or when you create the Prompt, specify the second
parameter, Play.Full, to be false. E.g. N[3472, false]
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
65
FAQ
How do I route based on area-code?
Use Get Contact Info step to get ANI. Use Set step to
extract the first 3 digits. Depending on the number of area
codes, you can build logic directly in the script, or do XML or
database lookups for the right queue.
I would like to track how many callers selected 2 for
Spanish in my script. How do I do this?
Use the Set Enterprise Call Info step to set a value of a
predefined call variable.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
66
FAQ
I would like to do some processing even after the
caller drops the call. How do I do this?
Use the On Exception Goto step to catch the
ContactInactive exception, and add steps in your script to
handle this exception.
I do not want to mark a call as abandoned if the
caller drops within 1 min. How do I do this?
Store the start time of the call in a variable, e.g. startTime =
T[now]. Use the On Exception Goto step to catch the
ContactInactive exception, and then use the Set Contact
Info step to mark the call as handled if the currentTime
startTime < 1 min.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
67
FAQ
Script2
Script1
Ag1
Ag2
CSQ1
CSQ2
I have 2 CSQs, CSQ1 and CSQ2. I have 2 scripts: Script1 queues
for CSQ1 and script2 queues for CSQ2. Ag1 belongs to CSQ1 and
Ag2 belongs to CSQ1 and CSQ2. I only want to route calls from
CSQ1 to Ag2 if there are no queued calls on CSQ2, regardless of
how long call has waited on CSQ1.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
68
FAQ
Problem: Calls queued on CSQ1 are routed to Ag2
even when there are calls queued on CSQ2,
because the system always selects the longest
waiting contact. How do I ensure that calls queued
on CSQ1 are routed to Ag2 only when there are no
calls in queue on CSQ2?
Use the Set Priority step in script2 to increase the priority
of calls that queue on CSQ2.
If traffic is light and you have available agents, you
want calls to CSQ1 to get routed to Ag1, not Ag2.
Increase the competence level of Ag1 and set the resource
selection criteria of CSQ1 to Most Skilled.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
69
FAQ
I use the Name To User step to search the
corporate directory but I dont want the system to
spell out the name to the caller. Do I need to invest
in TTS to address this?
No. You can use spoken names. This allows users to
upload their spoken name wav file to the system. You can
use the
Get User Info step to get the spoken name and play it back
to the caller.
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
70
FAQ
I use the Get Reporting Stats step to get the
Expected Wait Time but it returns -1.
Formula for Expected Wait Time = PIQ * AHT / NWA
PIQ = Position in queue
AHT = the CSQs average handle duration
NWA = total number of working agents of the CSQ)
If there are no working agents (no agents in Talking,
Reserved and Work state), it returns -1. You need to handle
this in the script!
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
71
Summary
Unified Contact Center Express Editor
Scripting Fundamentals
Advanced Scripting Techniques
Changes in CCX 8.0
Script Repository
FAQ (if time permits)
Q&A
Presentation_ID
2010 Cisco and/or its affiliates. All rights reserved.
Cisco Public
72