Data Items and Queries
In IVR elements’ attributes, and when entering their values as key/value pairs, the following data items can be selected from the drop-down lists. Depending on the item, either select it from the list as such, choose the values for possible x and y from corresponding selection lists, or complete the statement with Python code. Alternatively, enter the whole attribute with Python code.
In conditions and expressions, also the statement factors x and y can be selected from the list, but the list is limited to available menu and variable elements and CEM Data structures, see lists below.
To use also other data items for x and y directly from the list, define variables for x and y before the current element.
To define an expression for the number of calls waiting in a queue, choose the Queue Query: Number of Calls Waiting from the list and enter the queue number.
To define a condition that checks if the calling number starts with a defined string, such as 12345, choose the Condition: ’X’ Starts with ’Y’, and choose {ANUMBER} for x from the drop-down list, and enter 12345 for y.
CEM Data Items
The following CEM data Items can be selected directly from the drop-down menu for element attributes.
CEM Data Item |
Description |
---|---|
{ANUMBER} |
A number; the number of the caller who called to the IVR. |
{BNUMBER} |
B number; the number of the IVR currently being processed. |
{CALLID} |
Call id of the call currently being processed in the IVR. |
{CALLINFODATA} |
Call information attached to the call. |
{DBLASTFOUNDVALUE} |
String-type data, last value found in database |
{EXTERNALDATAARRAY} |
Dictionary-type data that has been assigned to variable {EXTERNALDATAARRAY}, last result of a custom method call or last response of a soap method, whichever has been performed latest. |
{EXTRADATA} |
Additional information attached to the call. |
{IP} |
IP address of CEM Server’s virtual unit. |
{IVRINFO} |
Additional information from another IVR, where from the call has been transferred to the current IVR. Information is specified as Call Attached Data in the transfer element. IVR info is included in {EXTRADATA} when the call is transferred. |
{LANGUAGE} |
The language that has been associated to the call. |
{LASTDTMF} |
The last received DTMF input from the caller in the current IVR. |
{LASTRECORDEDVALUE} |
The name of the file that has been recorded last by the record element in the current IVR. |
{PREVIOUSDTMF} |
The previous (one before last) received DTMF input from the caller in the current IVR. |
{PRIORITY} |
The priority of the call that can be assigned to the call with setpriority element, or for a queue extension. |
{SKILLS} |
Skill requirements attached to the call with setskills element. Skills are included in {EXTRADATA} when the call is transferred from the IVR. |
Conditions
When a condition of an element is true, the IVR performs as defined in the element: in the audio element the audio is played, in other elements the child elements are executed. When a condition is false, the IVR application proceeds to the next element.
Condition |
Python Statement |
Description |
---|---|---|
Condition: ’X’ Not Empty |
x |
Condition is true when ’X’ exists. |
Condition: ’X’ Is Empty |
not x |
Condition is true when ’X’ does not exist. |
Condition: ’X’ Not Empty and ’Y’ Not Empty |
x and y |
Condition is true when ’X’ and ’Y’ exist. |
Condition: ’X’ Is Empty and ’Y’ Is Empty |
not x and not y |
Condition is true when ’X’ and ’Y’ do not exist. |
Condition: ’X’ Not Empty and ’Y’ Is Empty |
x and not y |
Condition is true when ’X’ exists and ’Y’ does not exist. |
Condition: Compare ’X’ and ’Y’ |
x == y |
Condition is true when ’X’ is equal to ’Y’. |
x <> y |
Condition is true when ’X’ is not equal to ’Y’. |
|
x > y |
Condition is true when ’X’ is greater than ’Y’. |
|
x < y |
Condition is true when ’X’ is less than ’Y’. |
|
x >= y |
Condition is true when ’X’ is greater than or equal to ’Y’. |
|
x <= y |
Condition is true when ’X’ is less than or equal to ’Y’. |
|
Condition: ’X’ Contains ’Y’ |
str(x).find(str(y)) >= 0 |
Condition is true when the string ’X’ contains the string ’Y’. |
Condition: ’X’ Starts with ’Y’ |
str(x).startswith(str(y)) |
Condition is true when the string ’X’ starts with the string ’Y’. |
Condition: ’X’ Ends with ’Y’ |
str(x).endswith(str(y)) |
Condition is true when the string ’X’ ends with the string ’Y’. |
Condition: Compare ’X’ Length to ’Y’ |
len(str(x)) == y |
Condition is true when the string ’X’ length is equal to ’Y’. |
len(str(x)) <> y |
Condition is true when the string ’X’ length is not equal to ’Y’. |
|
len(str(x)) > y |
Condition is true when the string ’X’ length is greater than ’Y’. |
|
len(str(x)) < y |
Condition is true when the string ’X’ length is less than ’Y’. |
|
len(str(x)) >= y |
Condition is true when the string ’X’ length is greater than or equal to ’Y’. |
|
len(str(x)) <= y |
Condition is true when the string ’X’ length is less than or equal to ’Y’. |
Date/Time Expressions
With date and time expressions the IVR application can return current time in different formats.
Date/Time Expression |
Python Statement |
Description |
---|---|---|
Date/Time Expression: Current Date String (DDMM) |
datetime.datetime.now().strftime("%d%m") |
Current time expressed with number of days and month. |
Date/Time Expression: Current Date String (DDMMYYYY) |
datetime.datetime.now().strftime("%d%m%Y") |
Current time expressed with number of days, month, and the year expressed with four numbers. |
Date/Time Expression: Current Time String (hhmm) |
datetime.datetime.now().strftime("%H%M") |
Current time expressed with number of hours and minutes. |
Date/Time Expression: Current Date/Time String (DDMMhhmm) |
datetime.datetime.now().strftime("%d%m%H%M") |
Current time expressed with number of days, month, hours and minutes. |
Date/Time Expression: Current Date/Time String (DDMMYYYYhhmm) |
datetime.datetime.now().strftime("%d%m%Y%H%M") |
Current time expressed with number of days, month year, hours and minutes. |
Destinations
All phone queues and IVRs that have a defined number of the system are listed in the Destination drop-down list.
Expressions
With expressions, you can define values for attributes, such as destination, source, number, file location, and so on, instead of defining the actual item directly.
Expression |
Python Statement |
Description |
---|---|---|
Expression: String Value of ’X’ |
str(x) |
Expression returns the value of ’X’. |
Expression: Combine Strings ’X’ and ’Y’ |
str(x) + str(y) |
Expression returns combined value of strings ’X’ and ’Y’. |
Expression: String ’X’ in Lower Case |
str(x).lower() |
Expression returns value of ’X’ in lower case. |
Expression: String ’X’ in Upper Case |
str(x).upper() |
Expression returns value of ’X’ in upper case. |
Expression: First ’Y’ Characters of String ’X’ |
str(x)[:y] |
Expression returns a value consisting of the first ’Y’ characters of string ’X’. |
Expression: Last ’Y’ Characters of String ’X’ |
str(x)[y:] |
Expression returns a value consisting of the last ’Y’ characters of string ’X’. |
Expression: Substring of String ’X’ |
str(x)[y:z] |
Expression returns a substring of string ’X’ , starting from index ’Y’ and ending with index ’Z’, for example, if ’X’ is the number string ’12345678’, with start index 2 and end index 5, the expression returns ’345’. The indexes are zero based. |
Expression: String ’X’ with ’Y’ Replaced by ’Z’ |
str(x).replace(str(y), str(z)) |
Expression returns value of string ’X’ where ’Y’ values are replaced with ’Z’. |
Menus
Menus in the selection lists are marked with a prefix menu: and all menu elements defined in that IVR will appear in the selection list.
Queue Queries and Queue Status Queries
Queue queries and queue status queries provide information about the defined queue. Define the queue number directly in the statement, or use the var element.
Instead of queue number you can also use the queue ID in the queries below, which enables queries to the queues without number. Enter "intGUID(Queue ID)" instead of "[queue number]". You can use ID in formats with or without dashes between the sets of numbers. To find the queue ID, search for the queue, and when the search result list appears, choose ID for display with the button.
Query |
Python Statement |
Description |
---|---|---|
Queue Query: Checking Agent Availability |
QUEUE.QUERY("[queue number]", "Que_Available") |
This query returns the number of potentially available agents if the queue is open according to its service times and does not use instant forwarding if it's a phone queue. Otherwise the query returns zero. The system considers an agent potentially available when all of the following conditions are fulfilled. The agent:
Examples of situations where the system considers an agent potentially available when the above conditions are also fulfilled:
|
Queue Query: Number of Calls Waiting per Agent |
QUEUE.QUERY("[queue number]", "Que_CallsPerAgentWaiting") |
This query returns the number of calls waiting per agent in the queue [queue number]. |
Queue Query: Number of Calls Waiting |
QUEUE.QUERY("[queue number]", "Que_CallsWaiting") |
This query returns the number of calls waiting in the queue [queue number]. |
Queue Query: Estimated Waiting Time |
QUEUE.QUERY("[queue number]", "Que_EstWaitTime") |
This query returns the estimated waiting time in seconds in the queue [queue number]. Note:
If there are no calls in the queue, the query returns the value set for Max. Waiting Time of the queue. |
Queue Query: Checking Service Availability |
QUEUE.QUERY("[queue number]", "Que_ServiceOpen") |
This query checks if the queue [queue number] is open according to its schedule. Return values are 1 (open) and 0 (closed). |
Queue Query: Number of Agents Serving |
QUEUE.QUERY("[queue number]", "Que_TotalAgents") |
This query returns the total number of agents serving in the queue [queue number]. |
Queue Query: Number of Calls in Queue |
QUEUE.QUERY("[queue number]", "Que_TotalCalls") |
This query returns the total number of calls in the queue [queue number]. |
Queue Query: Number of Calls per Agent |
QUEUE.QUERY("[queue number]", "Que_TotalCallsPerAgent") |
This query returns the total number of calls per agent in the queue [queue number]. |
Queue Status Query: Number of Administrative Agents |
QUEUE.QUERY("[queue number]", "Sta_AgentsAdmin") |
This query returns the number of administrative agents in the queue [queue number]. |
Queue Status Query: Number of Not-Ready Agents |
QUEUE.QUERY("[queue number]", "Sta_AgentsPaperWork") |
This query returns the number of not-ready agents in the queue [queue number]. |
Queue Status Query: Number of Paused Agents |
QUEUE.QUERY("[queue number]", "Sta_AgentsPaused") |
This query returns the number of paused agents in the queue [queue number]. |
Queue Status Query: Number of Talking Agents |
QUEUE.QUERY("[queue number]", "Sta_AgentsTalking") |
This query returns the number of talking agents in the queue [queue number]. |
Queue Status Query: Number of Waiting Agents |
QUEUE.QUERY("[queue number]", "Sta_AgentsWaiting") |
This query returns the number of waiting agents in the queue [queue number]. |
Queue Status Query: Average Waiting Time |
QUEUE.QUERY("[queue number]", "Sta_AverageWaitingTime") |
This query returns the average waiting time in seconds of the queue [queue number]. |
Queue Status Query: Maximum Waiting Time |
QUEUE.QUERY("[queue number]", "Sta_MaxWaitingTime") |
This query returns the maximum waiting time in seconds in the queue [queue number]. |
Variables
Variables in the selection lists are marked with a prefix var:.
The var: selection list consists of the following items:
-
Variables defined with the var element in the IVR document above the current element, for example, the global variables that are defined above the actual IVR.
-
Parameters defined in the Custom Parameters view.
-
Built-in IVR parameters defined in the Survey IVR Settings block. See the Survey IVR for more information.
Survey IVR Setting
Corresponding var: Item
Survey IVR Number
SurveyExtension
Opt-In IVR Call Type Filter
CallTypeFilter
Opt-In Query Percent
IntakePercentage
Script Name for Monitoring and Reporting
ScriptName
Disable Pre-Welcome in Opt-In in Use
DisablePrewelcomePrompt
Disable Welcome in Opt-In in Use
DisableWelcomePrompt