IVR Programming

IVR module

The Interactive Voice Response (IVR) module is used for automated voice processing during a call. IVR can be used for inbound calls and also for automatically initiated outbound calls.

IVR entries

There are different types of IVR entries [Mode]

  • Entry – The entry to which iCC itself allocates calls and processes them further; it is also used for automatic outbound calls

  • DirectEntry – The entry to which calls are directly routed (they can also be controlled by the branch exchange or an external system), whereby iCC further processes the call; this type cannot be used for automatic outbound calls

  • VoiceMailQ23Entry – The entry is used to read call information for the voice mail

Explanation of fields:

  • ID – A unique internal identifier

  • Name – An entry name that is used for the administrator’s purposes.

  • IVR script – A script to which the entry belongs. It is only significant for DirectEntry. Otherwise the entry from the Pre/Post Condition is used.

  • Mode – Indicates the method of use.

    • Entry – An ordinary entry to which a synchronous services switches the call.

    • DirectEntry – The entry to which calls are routed directly without any influence by the synchronous service (without a pilot, i.e. depending on the branch exchange settings)

    • VoiceMailQ23Entry – An entry to the VM that contains the Q23 key codes and is monitored by the CTI.

  • Branch exchange number – A number under which the entry exists from the viewpoint of the branch exchange (i.e. CTI).

  • TimeOut – The maximum time (in seconds) for handling a call in the IVR system. Once this limit has been reached, the running script will be terminated and the entry will be made free.

  • Capacity - Indicates the entry capacity. The caller’s number is not checked for single-channel entries.

  • Mark transferred calls as served – Indicates that calls switched outside from the IVR (outside the pilot in the case of an external IVR) are marked as Served and not as Lost.

  • Wait for internal transfer – Indicates that, if a call is coming from an internal number, the system should wait for a given period of time to see whether the caller switches an external call so that the external caller can go through the entire process under their identity.

  • Default language – A default language used for the given IVR entry. It is usually changed in the subsequent process.

  • Time zone – The default call time zone (TimeZoneInfo); the field can be empty, in which case no time zone is set and the computer setting is used.

IVR scripts

IVR scripts indicate which machine type will process them (IVR Machine).

  • Integrated – A script controlled from the synchronous service; it executes IVR steps

  • External – A script executed by a different equipment; the outcome of its activity is a call switched to an agreed pilot number, which indicates the processing result; while being processed by the external equipment, the course of the call is not controlled by the synchronous service

Explanation of fields:

  • ID – A unique internal identifier

  • Name – A script name that is used for the administrator’s purposes.

  • Description – More detailed information that is used for the administrator’s purposes.

  • IVR machine – Identifies the IVR machine in which the script is to run.

  • Scenario – A default scenario used to save script data. If left empty, no data structure is created.

IVR steps

There are two types of IVR steps:

  • Integrated – These work with information in the iCC and support call status monitoring

  • External – These just describe possible results using the Target item

Common fields of internal IVR steps

Name

DisplayName

A name of the step; it is used by the administrator and should describe the step purpose.

IVR script

(IvrScriptId)

The script to which the step belongs. By changing the value, you can transfer the step to another script.

Rank

(Rank)

The step rank, a flag. The system processes steps in an ascending order. If two steps have an identical number, the system itself will determine their rank (which is not desirable).

Action command

(Action)

A name of the action that is to be executed.

Calendar mode

(TimeMode)

A time filter – a condition type; if there is no valid time period, the step will be skipped. An empty field indicates that the time condition is not evaluated.

From

(TimeFrom)

The start date and time of the time condition. Example: If DayInYear is chosen, the year is ignored, and if DayInWeek is selected, just the day of the week is extracted. The field may be empty only if TimeMode is also empty. The local time is used.

To

(TimeTo)

The end date and time of the time condition. Example: If DayInYear is chosen, the year is ignored, and if DayInWeek is selected, just the day of the week is extracted. The field may be empty only if TimeMode is also empty. The local time is used.

Language (Culture)

A condition for the call language. The condition is fulfilled if the string entered in this field corresponds to the Culture field in the language table. If the string is empty (“”), the condition is fulfilled if the call has no language associated, if it is NULL, then the condition is not evaluated. If the condition is not fulfilled, the step will be skipped.

Other fields: Time limit (TimeOut), Wait (WaitTimeOut), File name (FileName), Multiple languages (MultiLanguage), Number of trials (MaxTrials), DTMF – result (ResultDigits), DTMF – skip (SkipDigits), DTMF – replay (ReplayDigits), Target values (Targets), target project ID (TargetId) and Numbers (Numbers) have different meanings depending on the command used and are explained in more detail below.

Stating file names with prompts

All recording names in the FileName field automatically receive a prefix with the IvrPromptPath configuration parameter value. If MultiLanguage is set, the recording names automatically receive a suffix with the “_” sign and a language abbreviation from the Language table.

Example:

IvrPromptPath: /data/IVRspeechsound/
FileName: welcome
Language.Culture: en

File to be played: /data/IVRspeechsound/welcome_en.wav

Using texts directly converted to speech (Text-to-Speech)

If the Text-to-Speech (TTS) functionality is implemented in the system, then instead of the recording name in the FileName field, you can directly enter a text that is to be converted to speech. For the sake of differentiation, this text needs to start with “>” (greater than), which must be followed with the speaker’s name (incl. language), as defined by the TTS system, and end again with “>”. Any subsequent spaces are ignored. Any Multiple languages choice is ignored.

Example:

FileName: >eliska8ka> Hello, welcome to our contact center.

A text directly converted to speech can be used for the following action commands:

  • Prompt

  • Question

  • QuestionTarget (Question to column)

  • ReadNumber

  • ReadNumberTarget (Read number to column)

  • Exec (Execute)

  • Record

Saving values to data set

The IVR script can have associated a data set. This data set can be represented either by form fields (ScenarioResult) for permanent data storage or by variables.

Form as storage

The form (scenario) stated for the script in the Scenario (ScenarioId) field is used as the template. All fields are created and the form is created in the PreFilled status. If the Scenario field is not filled out, then no form will be created.

If any step saves a value to the data set, then it depends on the field type. If it is a selection field (Select from a list [DropDown], Single option from a list [RadioButtons], Single option with your own text [RadioButtonsLastText], Multiple options from a list [CheckBoxes], Multiple options from a list with your own text [CheckBoxesLastText]), then during saving, depending on the ResultText value, the system will try to find the ResultNumber value as well. Otherwise, it only saves ResultText. For fields of the ResultTime type, the system will attempt at converting the values to date and time.

Variables as storage

The IVR script can create local variables that are held in RAM, available through the script run. Once the script terminates, these variables are discarded. Variables store only text representation of data. Variables are prefixed by %. Variable has to be initialized by node SetTarget, AssignTarget, ReadNumberTarget, QuestionTarget or QuestPartTarget otherwise it cannot be used in other nodes, where data set values can be used.

Time condition

The TimeMode field indicates how the TimeFrom/TimeTo fields are interpreted. If it is NULL, then the time is not checked.

  • Yearly (DayInYear) – Valid on a specific day in the year, every year, time from/to

  • One-off (SingleDay) – Valid on a specific day (incl. year), time from/to

  • Weekly (DayInWeek) – Valid on a specific day of the week, every week, time from/to

  • Weekly (inverse) (NotDayInWeek) – An inverse condition to DayInWeek, i.e. not valid on a specific day of the week, every week, time from/to

When entering the “from” time, the system will set seconds to 00.0, while for the “to” time it will set seconds to 59.9.

Example for entering the entire morning: 8:00 until 11:59

Language

Scripts use the Culture two-letter abbreviation, which must be consistent with the setting in the Languages table.

Local server name

In some parameters (typically the URL), you can use the server name as the “##LSN##” macro; the server name is taken from the configuration file of the executing service (iCC.ServiceSync). The option to use the “##LSN##” macro is always stated in the command section for the relevant parameter. It concerns the following parameter:

<setting name="LocalServerName" serializeAs="String">
 <value>localhost</value>
</setting>

Data in CallEvent

All operations of the IVR script have the EventType as either IvrScriptA, IvrScriptB or IvrScriptW, depending on the phase from which the script is called. The ReferenceId field always includes the IvrStep identifier. The ReferenceData field always shows the step result, which starts with the step name; in the case of a serious error, it shows “Error”, whereby the error details can be in ResultData. Duration is not filled out.

The line conditions for time and for language have a common non-fulfillment indication (the prefix is always the step name):

  • _SkipNoTime – The time condition is not fulfilled

  • _SkipNoLang – The language condition is not fulfilled

IVR steps – voice and DTMF input/output

Prompt

It plays a file with a prompt. The playback can be terminated by any defined DTMF signal; it does not react to non-defined ones. If the Targets value is filled out, then the condition is first evaluated whether the field or variable from the data set contains a certain value; if it is not fulfilled, the prompt will be skipped. The prompt can be played repeatedly if the Retries value is set.

File name

(FileName)

A name of the file that is to be played. If TTS exists, then the text is converted.

Multiple languages

(MultiLanguage)

Indicates that “Culture” is to be appended to the file name as the current call language.

Target values

(Targets)

A name of the data set field, the value of which is to be found (TargetColumn).
Example: “Membership”

Example: “%Info”

Numbers

(Numbers)

A value that is to be compared. It uses the SQL LIKE syntax and Regex syntax for variables. If the field is empty, then the condition applies if the data set field is NULL.

If it contains ##Empty##, the system checks whether the field contains an empty string.

Example: “1000%”

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Number of retries

(Retries)

Indicates the number of repetitions. An empty value means a single try. The TimeOut value applies to one prompt retry.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • PromptOK – The action command was correctly executed

  • PromptNoTarget – A check was required of the data set value condition, and

  • PromptHangup – The caller hung up during the prompt

PromptTarget (Prompt by column)

It plays a file with a prompt based on the information in the column. The playback can be terminated by any defined DTMF prompt; it does not react to non-defined ones. The column is stated in Targets; the value is used the same way as the FineName field content for the Prompt node, whereby FileName here represents a .NET formatting string – it can be used either as a part of the file path or as speaker indication for TTS. There are four formatting positions available, and depending on their value different data column type data is used; it can also be empty, in which case ResultText is used. If TTS exists, the node can provide a similar functionality as the SayDigits, SayTime and SayDate nodes.

File name

(FileName)

A name formatting string for the file that is to be played, or with a speaker prefix a text that is to be read out loud (if TTS exists, the conversion is performed). For fields, the following .NET formatting positions have the below substitutions:

0 – ResultText

1 – ResultNumber

2 – ResultNumeric

3 – ResultTime

Examples:

“>eliska8ka> Hello, the train comes at {3:t}.”

“towns/{0}”

If the variable is used, only formatting position 0 contains data, other positions are empty.

If the value in FileName empty, ResultText or variable content is directly used.

Multiple languages

(MultiLanguage)

Indicates that “Culture” is to be appended to the file name as the current call language.

Target values

(Targets)

A name of the data set field or variable, the value of which is to be used as the source of information (TargetColumn).
Example: “Membership”

Example: “%Info”

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • PromptTargetOK – The action command was correctly executed

  • PromptTargetNoTarget – The value in the data set is empty

  • PromptTargetHangup – The caller hung up during the prompt

StartMusic (Start background music)

This command starts background music. If the FileName parameter is entered, it will be used as the music class (It usually specifies a folder with music files); if the parameter is not specified, the default class will be used (called “default”).

If a command that plays a sound is subsequently called while the script is running, the “music” playback will be terminated, the relevant sound is played, and if the music playback is to be resumed, then such a command needs to be followed by calling “StartMusic”.

File name

(FileName)

Music class while waiting.

Example:

“waitmoh” – Starts playing the waitmoh music class.

Possible entries in CallEvent

  • StartMusicOK – The step was properly executed with music

  • StartMusicFail – The step failed

StopMusic (Stop background music)

This command will stop the background music. There are no parameters to be set.

Possible entries in CallEvent

  • StopMusicOK – The step was performed and the music was stopped

  • StopMusicFail – The step failed

Record (Recording)

This command will acquire a record (record a message). The recording can be terminated with any defined DTMF signal; it does not react to non-defined codes; alternatively, the recording can stop when the maximum record time has been reached. The column is stated in Targets; the value is used the same way as the FineName field content for the Prompt node, whereby FileName here represents a .NET formatting string – it can be used either as a part of the file path (dynamically entered name). The path to the recording to be acquired is augmented with a prefix in the IvrRecordPath configuration parameter. If the Targets field is empty, the FileName value is used in its literal wording (statically entered name). Another option is to state a special value of ##CallId## in the Targets field, which adds call metadata behind the parameters.

File name

(FileName)

A name formatting string for the file that is to be recorded. The following .NET formatting positions have the below substitutions for the data column:

0 – ResultText

1 – ResultNumber

2 – ResultNumeric

3 – ResultTime

Example:

“notes/{0}”

When the special value of ##CallId## is used, then the following formatting positions are available:

0 – unique call ID (from the InboundCall or OutboundCall table)

1 – call direction (I for inbound, O for outbound)

2 – external telephone number (it can be empty)

Example:

“messages/MSG{1}{0}-{2}”

A mandatory parameter.

Target values

(Targets)

A name of the data set field, the value of which is to be searched for (TargetColumn); it indicates the name of the file to which the recording is to be saved. If there is no such field in the data set, the recording will be skipped. The special value of “##CallId##” makes it possible to use call metadata.

Example: “Membership”

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

DTMF – result

(ResultDigits)

If the field is not empty, then a beep sounds before the recording begins; if the field is empty, then no beep is inserted.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback or recording.

Number of retries

(Retries)

The maximum duration of silence. If the parameter is not specified, 4 seconds will be used.

Possible entries in CallEvent

  • RecordOK – The action command was correctly executed

  • RecordHangup – The caller hung up during the prompt

  • RecordNoTarget – The recording name in the target column is missing

RecordAndSend (Record and send)

Acquires a recording (records a message) and sends the recording as an e-mail or task. The recording can be anytime terminated using any defined DTMF signal; it does not react to non-defined ones; alternatively, the recording ends when the maximum recording time limit has been reached. The FileName field here represents a .NET formatting string – it must be used as a part of the file path (dynamically entered name). The path to the recording to be acquired is augmented with a prefix in the IvrRecordPath configuration parameter. The Targets field contains the e-mail template ID (in the Messages table) that is to be used to create a message. Macro fields are replaced in that template. If the template is of the TmpEmail type, then an e-mail message will be sent. The Numbers field contains the target e-mail address to which the recording is to be sent. If the template is of the TmpTask type, then a task will be created.

File name

(FileName)

A name formatting string for the file that is to be recorded. The following .NET formatting positions have the below substitutions for the data column:

0 – recording identifier (CallId is always used – a unique call ID)

Example:

“messages/{0}”

It is a mandatory parameter.

Note: The recording is extracted from the IVR system using the IvrRecordShadow path, whereby the same resulting string is used as for acquiring the recording, the slash characters (“/”) are replaced with backslash characters (“\”).

Numbers

(Numbers)

The target e-mail address to which the message is to be sent as an attachment.

Example: “servis@atlantis.cz

It is a mandatory parameter for the e-mail template.

Target values

(Targets)

Message subject

A mandatory parameter.

Target ID

(TargetId)

An ID number of the template that is to be used

Example: “4C1CBA3C-FA23-4C6A-957C-ABE60E6846BC”

A mandatory parameter.

The following macro parameters are processed when a message is being created from the template:

$CallerNumber$ - the caller’s number

$ResultText:TargetColumn$ - a value of the TargetColumn data set in the ResultText field.

For a greater macro expansion, please refer to the message module description.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

DTMF – result

(ResultDigits)

If the field is not empty, then a beep sounds before the recording begins; if the field is empty, then no beep is inserted.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback or recording.

Number of retries

(Retries)

The maximum duration of silence. If the parameter is not specified, 4 seconds will be used.

Possible entries in CallEvent

  • RecordAndSendOK – The action command was correctly executed

  • RecordAndSendFailed – SAMBA failed to download the recording

  • RecordAndSendNoTemplate – The template ID is invalid

  • RecordAndSendNoAddress – The Numbers field does not include an e-mail address

  • RecordAndSendInvalid – Outbound message creation failed; an incorrect configuration

  • RecordAndSendHangup – The caller hung up during the prompt

Question (Question)

This command plays a prompt file and shortly waits for one DTMF signal of an answer. If there is no answer, it repeats the prompt. Once an answer is received, it goes to another script line depending on the answer sequence.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the prompt has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

Target values

(Targets)

A list of the Rank line numbers to which the system should jump. The separating character is either a comma or semicolon. Example: “100,120,180,230”

DTMF – result (ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group is accepted and the selection is made on that basis. Example: “123#”. The sequence of codes plays a role as the Targets jump will be used in the same sequence. If there are any discrepancies, the command will be terminated and the system will proceed to the next step.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated without any jump elsewhere.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries (Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • QuestionIgnored – All tries have expired in vain

  • QuestionHangup – The caller hung up during the step

  • QuestionSkip – The caller opted to skip the step from SkipDigits

  • QuestionOK – The caller made a final selection from ResultDigits, yet in Targets there was either NULL or an insufficient number of values, or the values were not numeric

  • QuestionGo – The caller made a final selection from ResultDigits and the system jumped to another script step

QuestPart (Question with parts)

This command offers option prompts based on the specification and waits for a while for a response DTMF signal. If there is no response, the prompts are repeated. Once a response is received, the script jumps to a different line of the script depending on the response sequence.

This feature requires that the FileName folder contains the following files (the _XX part only if MultiLanguage is activated):

  • For every language one file in the volbaN_XX.wav format – the “volba” (selection) text can be configured in the Targets structure as QuestFile

  • For every language and for every numerical value used by the language there is the stiskN_XX.wav file – the “stisk” text can be configured in the Targets structure as OptionFile

  • If the caller selects nothing, the NoChoiceFile prompt will be played between the retries (Retries)

File name

(FileName)

A file path

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A prefix used for the “volbaM” selection name files, a prefix used for the “stiskN” selection files, a list of jump targets (the number must correspond to the selections made in ResultDigits). It has the JSON format.

Example: {“QuestFile”:”jazyk” (language),”OptionFile”:”stisk” (press),”NoChoiceFile”:”nevolba” (no selection),”Targets”:[100,120,180,230]}

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the menu has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A list of selectable options used as “N” for the stiskN_XX.wav file . The sequence of codes plays a role as the Targets jump will be used in the same sequence. If there are any discrepancies, the command will be terminated and the system will proceed to the next step. The asterisk function requires that the file includes the “!” character. Example: 1234

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated, with the language remaining unchanged.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries

(Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • QuestPartIgnored – All retries have expired in vain

  • QuestPartHangup – The caller hung up during the step

  • QuestPartSkip – The caller opted to skip the step from SkipDigits

  • QuestPartOK – The caller made a final selection from ResultDigits, yet in Targets there was either NULL or an insufficient number of values, or the values were not numeric

  • QuestPartGo – The caller made a final selection from ResultDigits and the system jumped to another script step

QuestionTarget (Question to column)

This command plays a prompt file and for a while waits for one DTMF signal of the response. The prompt is repeated if there is no response. Once a response has been received, it selects a target value from the Numbers field and saves it in a data set field (form – ScenarioResult or variable). The script then continues with the next line. For variables as a side-effect it creates a variable.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the prompt has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

Target values

(Targets)

A field name from a data set to which the value is to be saved (TargetColumn). Example: “PreferredContact”

Numbers

(Numbers)

Values separated with commas or semicolons that will be saved in the data set target field for the relevant choice. The number must correspond to the number of choices in ResultDigits. Example: “Phone,Email,Personal,None”.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group is accepted and the selection is made on that basis. Example: “123#”. The sequence of codes plays a role as the results in Numbers will be used in the same sequence. If there are any discrepancies, the command will be terminated and the system will proceed to the next step.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated, without a jump elsewhere.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries

(Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • QuestionTargetIgnored – All retries have expired in vain

  • QuestionTargetHangup – The caller hung up during the step

  • QuestionTargetSkip – The caller opted to skip the step from SkipDigits

  • QuestionTargetOK – The caller made a final selection from ResultDigits, the result was recorded according to Numbers

QuestPartTarget (Question with parts to column)

This command offers option prompts based on the specification and waits for a while for a response DTMF signal. If there is no response, the prompts are repeated. Once a response has been received, it selects a target value from the Numbers field and saves it in a data set field (form – ScenarioResult or variable). The script then continues with the next line. For variables as a side-effect it creates a variable.

This feature requires that the FileName folder contains the following files (the _XX part only if MultiLanguage is activated):

  • For every language one file in the volbaN_XX.wav format – the “volba” (selection) text can be configured in the Targets structure as QuestFile

  • For every language and for every numerical value used by the language there is the stiskN_XX.wav file – the “stisk” text can be configured in the Targets structure as OptionFile

  • If the caller selects nothing, the NoChoiceFile prompt will be played between the retries (Retries)

File name

(FileName)

A file path

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A prefix used for the “volbaM” selection name files, a prefix used for the “stiskN” selection files, a file name from a data set to which the value is to be saved (TargetColumn). It has the JSON format.

Example: {“QuestFile”:”jazyk”,”OptionFile”:”stisk”,”NoCh oiceFile”:”nevolba”,”Target”:”PreferredContact”}

Numbers

(Numbers)

Values separated with commas or semicolons that will be saved in the data set target field for the relevant choice. The number must correspond to the number of choices in ResultDigits.

Example: “Phone,Email,Personal,None”.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the prompt has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A list of selectable choices used as “N” for the stiskN_XX.wav file . The sequence of codes plays a role as the Targets jump will be used in the same sequence. If there are any discrepancies, the command will be terminated and the system will proceed to the next step. The asterisk function requires that the file includes the “!” character. Example: 1234

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated, with the language remaining unchanged.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries

(Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • QuestPartTargetIgnored – All retries have expired in vain

  • QuestPartTargetHangup – The caller hung up during the step

  • QuestPartTargetSkip – The caller opted to skip the step from SkipDigits

  • QuestPartTargetOK – The caller made a final selection from ResultDigits, and the result is recording according to Numbers

ReadNumber (Read a number)

Plays a prompt file and waits for the required number of digits to be entered. The playback can be terminated with any numerical or defined DTMF signal, and it does not react to any non-defined codes. The result is saved in a system log.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the digit entering can take.

Numbers

(Numbers)

The maximum number of digits that are to be entered. If the SkipDigits field is not filled in, then it waits exactly for the given number of digits. Example: “6”.

DTMF – result

(ResultDigits)

Not used.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback and digit entry.

DTMF – replay (ReplayDigits)

Not used.

Possible entries in CallEvent

  • ReadNumberHangup – The caller hung up during the step

  • ReadNumberSkip – The caller opted to skip the step from SkipDigits without entering any digits

  • ReadNumberOK – The caller made a final selection from, stated in ResultData

ReadNumberTarget (Read number to column)

Plays a prompt file and waits for the required number of digits to be entered. The playback can be terminated with any numerical or defined DTMF signal, and it does not react to any non-defined codes. The result is saved in a data set field (form – ScenarioResult or variable). For variables as a side-effect it creates a variable.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the digit entering can take.

Numbers

(Numbers)

The maximum number of digits that are to be entered. If the SkipDigits field is not filled in, then it waits exactly for the given number of digits. Example: “6”.

Target values

(Targets)

A field name of a data set to which the value is to be saved (TargetColumn). Example - field: “MemberNumber”

Example - variable: “%Member”

DTMF – result

(ResultDigits)

If ##IfNotEmpty## is set, then the target field will be overwritten only if at least one digit is entered.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback and digit entry.

DTMF – replay (ReplayDigits)

Not used.

Possible entries in CallEvent

  • ReadNumberHangup – The caller hung up during the step

  • ReadNumberSkip – The caller opted to skip the step from SkipDigits without entering any digits

  • ReadNumberOK – The caller made a final selection, which is stated in ResultData and the data set.

ReadSentence (Read a sentence)

This command plays a prompt file and waits for a voice response, which it recognizes based on the defined grammar and the specified conversion language. The playback can be terminated when the counterparty begins to speak (barge-in). The result is saved in a system log, and if the target column names are filled out, then also in the data set (ScenarioResult).

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback and the subsequent conversion in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the command should wait for a voice response once the prompt has been played.

Target values

(Targets)

A name of the grammar file that is to be used for the voice conversion.

Number of retries

(Retries)

The required conversion confidence level from the interval of 0-100.

Numbers

(Numbers)

Additional voice conversion parameters separated with the “&” character

spl – the language that is to be used for voice conversion (e.g. cs-CZ or en-US)

i – digits to allow recognition to be interrupted with (by default DTMFs are sent to the MRCP server to recognize; otherwise, if “any” or other digits are specified, recognition will be interrupted)

b – barge-in value (no barge-in allowed=0, barge-in allowed=1)

gd – grammar delimiters

ct – confidence threshold (0.0 - 1.0) [Note: If this parameter is used, then in the case of failure it is not stated in ResultData since the conversion will fail already on the recognition system level]

sl – sensitivity level (0.0 - 1.0)

sva – speed vs accuracy (0.0 - 1.0)

nb – n-best list length

nit – no entry timeout (msec)

sit – start entry timers (true/false)

sct – speech complete timeout (msec)

sint – speech incomplete timeout (msec)

dit – DTMF interdigit timeout (msec)

dtt – DTMF terminate timout (msec)

dttc – DTMF terminate characters

sw – save waveform (true/false)

nac – new audio channel (true/false)

rm – recognition mode (normal/hotword)

hmaxd – hotword max duration (msec)

hmind – hotword min duration (msec)

cdb – clear DTMF buffer (true/false)

enm – early no match (true/false)

Example:

spl=cs-CZ&sw=true

DTMF – result

(ResultDigits)

A field name of a data set (TargetColumn) to which the value is to be saved of “INSTANCE” (a symbolic translation) of the speech recognition performed. Example: “Number”

DTMF – skip (SkipDigits)

A field name of a data set (TargetColumn) to which the value is to be saved of “ENTRY” (text transcription) of the speech recognition performed. Example: “Text”

DTMF – replay (ReplayDigits)

A field name of a data set (TargetColumn to which the value is to be saved of “CONFIDENCE” (conversion confidence) of the speech recognition performed (an integer from the interval of 0 to 100). Example: “Validity”

Possible entries in CallEvent

  • ReadSentenceHangup – The caller hung up during the step

  • ReadSentenceError – An error occurred, with error details specified in the ResultData field (SYSTEM – IVR does not contain the recognition module, ERROR – recognition module error, TIMOUT – the command timed out as a whole); in this case, the command always continues with the next line.

  • ReadSentenceFailed – The entered grammar could not be recognized; the ResultData field indicates the actual recognition confidence level (if the Retries parameter was used); in this case, the command continues with the TargetOnFailure branch

  • ReadSentenceTimeOut – The caller did not say anything to be recognized; in this case, the command continues with the TargetOnTimeOut branch

  • ReadSentenceOK – The grammar could be recognized; the first recognized value in the “INSTANCE” field is saved in ResultData (the first 64 characters); in this case, the command continues with the TargetOnSuccess branch

SayDigits (Say (play) digits)

This command says (plays) digits from a data set field (ResultText) or variable. The playback can be terminated with any defined DTMF signal; it does not react to any non-defined ones. The files with recorded digits must be located in a subfolder of the standard “IvrCanonicalPrompts” location under the name Digits and have the DIGn or DIGn_cc format depending on whether the Multiple languages parameter is used, where n is an integer from 0 to 9 (for all dial numbers).

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A field or variable name from the data set, the value of which is to be said (TargetColumn).
Example: “ShipmentNumber”

Example: “%Info”

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • SayDigitsOK – The action command was correctly executed

  • SayDigitsNoTarget – There is no value in the data set

SayTime (Say (play) time)

This command says (plays) time from a data set field (ResultTime). This command does not support variables. The playback can be terminated with any defined DTMF signal; it does not react to any non-defined ones. The files with recorded times must be located in a subfolder of the standard “IvrCanonicalPrompts” location under the name Numbers and have the NUMn or NUMn_cc format depending on whether the Multiple languages parameter is used, where n is an integer from 0 to 59 (for all hours, minutes and seconds). The command performance is influenced by the “IvrUseFullNumbersInTime” configuration parameter; when the value is “false”, the numbers consist of two recordings for tens and units (e.g. NUM30, NUM7), when the value is “true”, then just one recording is used (NUM37).

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A field name from the data set, the value of which is to be said (TargetColumn). Example: “ShipmentTime”

Numbers

(Numbers)

A format of the time said (played).
HHMMSS – plays hours, minutes and seconds

Any other value – plays just hours and minutes

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • SayTimeOK – The action command was correctly executed

  • SayTimeNoTarget – There is no value in the data set or it is null

SayDate (Say (play) date)

This command says (plays) a date from a data set field (ResultTime). This command does not support variables. The playback can be terminated with any defined DTMF signal; it does not react to any non-defined ones. The files with recorded dates must be located in a subfolder of the standard “IvrCanonicalPrompts” location under the names Dates, Months and Years and have the NUMn or NUMn_cc format depending on whether the Multiple languages parameter is used, where n is an integer from 1 to 31 (for all days), or from 1 to 12 (for all months); the exact year number (e.g. 2010) is used for years. The command performance for days and months is influenced by the “IvrUseFullNumbersInDate” configuration parameter; when the value is “false”, the numbers consist of two recordings for tens and units (e.g. NUM20, NUM3), when the value is “true”, then just one recording is used (NUM23). The recordings for months can contain either a number or the month name. The years are pronounced (played) according to the SayNumber rules, but from the files stored in the Years directory!

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A field name from the data set, the value of which is to be said (TargetColumn). Example: “ShipmentTime”

Numbers

(Numbers)

The format of the said date.
DDMMYY – Plays the day, month and year

Any other value – Plays just the day and month

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • SayDateOK – The action command was correctly executed

  • SayDateNoTarget – There is no value in the data set or it is null

SayNumber (Say (play) number)

Plays a number from the following interval: -999,999,999 to 999,999,999 from a data set field (ResultNumber). This command does not support variables. The playback can be terminated with any defined DTMF signal; it does not react to any non-defined ones. The files with recorded dates must be located in a subfolder of the standard “IvrCanonicalPrompts” location under the name Numbers and have the NUMn or NUMn_cc format depending on whether the Multiple languages parameter is used, where n is an integer from 0 to 99, 100, 1000 and for million 1M (for national versions it may be necessary to add more variants differentiated with letters a…z – e.g. NUM1000a); the minus sign is recorded under Minus. The command performance for numbers is influenced by the “IvrUseFullNumbersBelow100” configuration parameter; when the value is “false”, the numbers from 0 to 99 consist of two recordings for tens and units (e.g. NUM30, NUM7), when the value is “true”, then just one recording is used (NUM73). If a unit of measure is filled out, then its name will be used, potentially extended with a national (local) version, and the number reading grammar will be adjusted (e.g. EUR_sk or EURa_sk) – these files need to be in the Units directory.

File name

(FileName)

A name of the unit of measure that is to be added behind the number. Example: EUR.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A field name from the data set, the value of which is to be said (TargetColumn). Example: “ShipmentTime”

Numbers

(Numbers)

If a unit of measure is used, it indicates a suffix that will be added behind the recording of the commonly used number.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Note

The current implementation supports the following languages: cs, sk and en. The English (en) language requires just basic files in the default grammatical form, whereas sk requires the following additional files: NUM1a (“jedno”), NUM2a (“dve”) a NUM1000a (“tisíce”); cs requires the following additional files: NUM1a (“jedno”), NUM2a (“dvě”), NUM100a (“stě”), NUM100b (“sta”), NUM100c (“set”), NUM1000a (“tisíce”), NUM1Ma (“milióny”), NUM1Mb (“miliónů”).
If a unit of measure is used, then the Numbers field allows you to differentiate the grammatical gender of the unit of measure if the language requires so. The recommended values are as follows: “m” – male, “f” – female, “n” – neutral, whereas the en language does not use this differentiation; sk and cs use a suffix for the numbers of 1 and 2 – the digit name body is added (e.g. NUM2n_cs.WAV).
Files with units of measure require the following variants (example using the euro €): en – EUR – basic form, EURa – plural, sk and cs – EUR – basic form, EURa – plural for numbers 5 and higher, EURb – plural for numbers 2, 3 and 4.

Possible entries in CallEvent

  • SayNumberOK – The action command was correctly executed

  • SayNumberNoTarget – There is no value in the data set or it is null

LangSel (Select language)

This command offers language selection by specification. The condition is that the call either comes from a pre-defined redirector or follows a given pilot number or direct entry (in which case it must not be from a redirector); alternatively, the caller’s number can correspond to a certain pattern – a list of redirectors, pilots, entries and patterns can be found under Numbers.

This command works only if the following files are available in the FileName folder:

  • For every language one file in the format of jazyk_XX.wav – the text of “jazyk” (language) can be configured in the Targets structure as LangFile

  • For every language and for every numerical choice used by it there must be a file in the format of stiskN_XX.wav – the text of “stisk” can be configured in the Targets structure as OptionFile

  • If the caller selects nothing, the NoChoiceFile prompt will be played between the retries (Retries), and if the GoIgnore field is filled out, the command will jump to the line specified in that field

Furthermore, it is necessary to explicitly specify for which languages only the choice is to be made (use the Cultures field in the Targets structure).

File name

(FileName)

A file path

Numbers

(Numbers)

A list of numbers with and without prefix, separated with semicolons or commas. The “R” prefix indicates a redirector, the “P” prefix indicates a pilot, and the “D” prefix indicates a direct entry. Numbers without a prefix represent patterns to check the caller’s number. If the field is empty, then this condition is not checked. If the field does not contain any item with the prefix of “P”, “D” or “R”, the check of pilots, entries and redirectors is not performed. If it does not contain any pattern, the check for a matching caller’s number is not performed.

The patterns for caller’s number checks use the following convention:

123 – exactly 123

*123 – a number ending with 123

123* – a number starting with 123

* – any number

A question mark represents any single digit.

Example 1: R101,R124,R202,P300,P301

Example 2: 060*, 07*, 2710010??

Example 3: P301,0033*

Target values

(Targets)

A prefix used for the “stiskN” selection files, a list of languages (their number must correspond to the selections made in ResultDigits). It has the JSON format.

Example: {“LangFile”:”jazyk” ,”OptionFile”:”stisk”,”NoChoiceFile”:”nevolba_cs”, “GoIgnore”:”120”,”Cultures”:[“cs”,”en”,”de”,”ru”]}

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the menu has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A list of language selections used as “N” for stiskN_XX.wav file. In parallel, the language is changed according to the selection made. The asterisk function requires that the file includes the “!” character. Example: 1234

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated, with the language remaining unchanged.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries

(Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • LangSelNoMatch – A condition for the redirector, pilot or direct entry has not been fulfilled

  • LangSelOK – A change has successfully been made

  • LangSelFail – The caller made a choice but the execution failed - e.g. a non-existing culture

  • LangSelHangup – The caller hung up during the step

  • LangSelIgnored – All retries have expired in vain

  • LangSelSkip – The caller opted to skip the step from SkipDigits

LangAgentSel (Select language by agents)

This command offers language selection based on specification. It offers only those languages for which the current call would have agents available based on the selected rule. If a project is known, then it is applied, otherwise a project is acquired using the project selection rules (ProjectCondition). The Numbers field then indicates what the result would of processing IvrResponseA.

This command works only if the following files are available in the FileName folder:

  • For every language one file in the format of jazyk_XX.wav – the text of “jazyk” (language) can be configured in the Targets structure as LangFile

  • For every language and for every numerical choice used by it there must be a file in the format of stiskN_XX.wav – the text of “stisk” can be configured in the Targets structure as OptionFile

  • If the caller selects nothing, the NoChoiceFile prompt will be played between the retries (Retries), and if the GoIgnore field is filled out, the command will jump to the line specified in that field

Furthermore, it is necessary to explicitly specify for which languages only the choice is to be made (use the Cultures field in the Targets structure). It is also possible to set the agents’ minimum language skill required for inclusion (Proficiency in the Targets structure).

File name

(FileName)

A file path

Numbers

(Numbers)

A value that will be used instead of IvrResponseA if the project is still unknown.

Target values

(Targets)

A prefix used for the “stiskN” selection files, a list of languages (their number must correspond to the selections made in ResultDigits). It has the JSON format.

Example:

{“LangFile”:”jazyk”,”OptionFile”:”stisk”,”NoChoiceFi

le”:”nevolba_cs”,”GoIgnore”:”120”,”Rule”:”Logged”, “Cultures”:[“cs”,”en”,”de”,”ru”],”Proficiency”:30} Options for Rule:

“Logged” – It is enough for the agent to be logged in

“LoggedNotMarked” – The agent must be logged in and their status description must not contain characters that follow this value; any spaces before and after are ignored.

“Ready” – The agent must be ready

“ReadyFree” – The agent must be ready and be free

Example: “Ready”

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds during which the system waits for a DTMF signal to be entered once the menu has been played. When this period of time expires in vain, another try is started or the command is terminated and the system proceeds to the next step.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback. A list of language selections used as “N” for stiskN_XX.wav file. In parallel, the language is changed according to the selection made. The asterisk function requires that the file includes the “!” character. Example: 1234

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the step to be immediately terminated, with the language remaining unchanged.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback. A code from this group will cause the prompt to be played again, without a try being deducted.

Number of retries

(Retries)

Number of retries. If none of the aforementioned DTMF signals is entered and the period of time expires in vain, the prompt is played again and the process is repeated, yet only for maximum that many times that are set in the Number of retries. An empty value means just a single try.

Possible entries in CallEvent

  • LangAgentSelNoAgent – The caller has selected a language (which was not read to them) for which there are no agents

  • LangAgentSelOK – A change has successfully been made

  • LangAgentSelFail – The caller made a choice but the execution failed - e.g. a non-existing culture

  • LangAgentSelHangup – The caller hung up during the step

  • LangAgentSelIgnored – All retries have expired in vain

  • LangAgentSelSkip – The caller opted to skip the step from SkipDigits

IVR steps – script control

Gosub (Subprogram)

The command makes it possible to call another script as a subprogram; once that script is finished, the control is returned to the current script. The script ID is in TargetId; if the script is invalid, it will not be called. If the value of IvrMaxNesting is reached, the entire script is moreover terminated with a general error. The condition is that the call came either from a defined redirector or after an entered pilot number or direct entry (then it must not be from a redirector); alternatively, the caller’s number may correspond to one of the patterns – a list of redirectors, pilots, entries and patterns can be found under Numbers.

Target ID

(TargetId)

An ID of the script that is to be called

Numbers

(Numbers)

A list of numbers with and without prefix, separated with semicolons or commas. The “R” prefix indicates a redirector, the “P” prefix indicates a pilot, and the “D” prefix indicates a direct entry. Numbers without a prefix represent patterns to check the caller’s number. If the field is empty, then this condition is not checked. If the field does not contain any item with the prefix of “P”, “D” or “R”, the check of pilots, entries and redirectors is not performed. If it does not contain any pattern, the check for a matching caller’s number is not performed.

The patterns for caller’s number checks use the following convention:

123 – exactly 123

*123 – a number ending with 123

123* – a number starting with 123

* – any number

A question mark represents any single digit.

Example 1: R101,R124,R202,P300,P301

Example 2: 060*, 07*, 2710010??

Example 3: P301,0033*

Possible entries in CallEvent

  • GosubNoMatch – The condition for a pilot/redirector/direct entry has not been fulfilled

  • GosubOK – Information that the script was called

  • GosubFail – The script ID in TargetId is invalid

  • GosubTooDeep – The maximum call embedding depth, likely a program error

Goto (Branching)

This command makes it possible to change the course of a program. Apart from the TimeMode time condition and the language condition, the Numbers field is also used. The condition is that the call came either from a defined redirector or after an entered pilot number or direct entry (then it must not be from a redirector); alternatively, the caller’s number may correspond to one of the patterns – a list of redirectors, pilots, entries and patterns can be found under Numbers. If the conditions are met, the script jumps to the line defined in Targets. If the jump target is empty, the script will be terminated without any result recorded in IvrResult; if the script was called as a subprogram, the program will return to the calling script.

Numbers

(Numbers)

A list of numbers with and without prefix, separated with semicolons or commas. The “R” prefix indicates a redirector, the “P” prefix indicates a pilot, and the “D” prefix indicates a direct entry. Numbers without a prefix represent patterns to check the caller’s number. If the field is empty, then this condition is not checked. If the field does not contain any item with the prefix of “P”, “D” or “R”, the check of pilots, entries and redirectors is not performed. If it does not contain any pattern, the check for a matching caller’s number is not performed.

The patterns for caller’s number checks use the following convention:

123 – exactly 123

*123 – a number ending with 123

123* – a number starting with 123

* – any number

A question mark represents any single digit.

Example 1: R101,R124,R202,P300,P301

Example 2: 060*, 07*, 2710010??

Example 3: P301,0033*

Target values

(Targets)

The line number to which the script is to jump. An empty value results in script termination.

Possible entries in CallEvent

  • GotoNoMatch – The condition of a matching telephone number is not fulfilled

  • GotoEnd – Fulfilled, Targets is empty, the script is terminated or, if relevant, the program returns to the calling script

  • GotoOK – Fulfilled, a jump to another line follows

  • GotoFail – The line in Targets is invalid

Project (Branching by project)

This command makes it possible to change the course of a program. Apart from the TimeMode time condition, the TargetId field is also used, which indicates the project to which the condition is applied. The Targets field represents the jump target; if the jump target is empty, the script will be terminated without any result recorded in IvrResult. If it is used before a project is assigned to the call (before ProjectCondition), it is never successful.

Target ID

(TargetId)

A project ID of the current call.

Target values

(Targets)

The line number to which the script is to jump. An empty value results in script termination.

Possible entries in CallEvent

  • ProjectNoMatch – The condition of a matching project ID is not fulfilled

  • ProjectEnd – Fulfilled, Targets is empty, the script is terminated or, if relevant, the program returns to the calling script

  • ProjectOK – Fulfilled, a jump to another line follows

  • ProjectFail – The line in Targets is invalid

Holiday (Branching on holidays)

This command makes it possible to change the course of a program. Apart from the TimeMode time condition, the Numbers field is also used, which indicates a group of holidays from a holiday table. If the Multiple languages field is checked, the regional call time will be determined based on the time zone, otherwise the local time will be used. The Targets field represents the jump target; if the jump target is empty, the script will be terminated without any result recorded in IvrResult.

Numbers

(Numbers)

A name of a group of holidays according to which the holiday validity is determined.

Multiple languages

(MultiLanguage)

Indicates that the caller’s regional time is to be applied instead of the contact center’s local time.

Target values

(Targets)

The line number to which the script is to jump. An empty value results in script termination.

Possible entries in CallEvent

  • HolidayNoHoliday – The holiday condition is not fulfilled

  • HolidayEnd – Fulfilled, Targets is empty, the script is terminated or, if relevant, the program returns to the calling script

  • HolidayOK – Fulfilled, a jump to another line follows

  • HolidayFail – The line in Targets is invalid

SwitchTarget (Branching by column)

This command makes it possible to change the course of a program. Apart from the TimeMode time condition, the Numbers field is also used, indicating a value that needs to be contained in the selected data set column. The Targets field specifies two values – the first one refers to title of the data set column (field or variable) that is to contain the value, and the other one is the jump target; if the jump target is empty, the script will be terminated without any result recorded in IvrResult.

Numbers

(Numbers)

A value that is to be compared. It uses the SQL LIKE syntax for fields and Regex syntax for variables. If it contains the special value of ##Empty##, the condition applies if the data set field equals the empty string; if the field is empty, then the condition applies if the data set field is NULL.

Example: “1000%”

Example: “” [test for NULL]

Target values

(Targets)

Two values separated by a comma or semicolon. The first one refers to the column title, the other one is either empty or indicates a number of the line to which the program should jump. An empty field leads to script termination.

Example 1: “Memebership,120”

Example 2: “%Info,300”

Example 3: “c_card,”

Possible entries in CallEvent

  • SwitchTargetNoTarget – The condition for the data set field value is not fulfilled

  • SwitchTargetEnd – Fulfilled; the second value in Targets is empty; the script is terminated or, if relevant, the program returns to the calling script

  • SwitchTargetOK – Fulfilled, a jump to another line follows

  • SwitchTargetFail – The line in Targets is invalid

SwitchDb (Branching by DB)

First option is a command, that performs a parametric query using the ODBC mechanism over a selected data source; the returned values are recorded in a data set fields (ScenarioResult) or variables, provided that the field names match those in TargetColumn or name of existing variable (without % prefix). If the IvrApplyQueryResultToNullOnly configuration parameter is selected, only those fields are overwritten that have the NULL value. Windows and Linux supported. Used for on-premise installations with additional ODBC drivers.

The second option is ADO.NET connection. With this option, you can’t use the full connection string, but instead, the one set in appsettings.json will be used (file according to the background service). Used for container installations.

  • Note 1: All parameters are submitted and returned as text nvarchar.

  • Note 2: This command can also be used to carry out customer calculations using the SQL Server

File name

(FileName)

A connection string for the ODBC provider.

More info:

https://www.connectionstrings.com/microsoft-odbc-driver-17-for-sql-server/

Example for SQL Server 2019: Driver={ODBC Driver 17 for SQL Server};Server=myServerAddress;Database=myDataBase;UID=myUsername;PWD=myPassword

A connection string for the ADO provider.

Example:

  • ADO – connection to the default server and database, which FS uses

  • ADO TableName – connection to the default server, but default database is substituted for the provided "TableName"

Parameters

(Parameters)

Names of data set fields (TargetColumn), the values of which will be used as the query parameters. The separating characters are commas or semicolons. The parameter sequence determines their insertion in the ODBC command. Special parameters:

“##CallerNumber##” – the caller’s number

“##CallId##” – call ID

“##ScenarioResultId##” – data set ID

“##PilotNumber##” – inbound pilot number

“##Redirector##” – inbound redirector number

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RegionalTime##” – the time of call reception based on the entry time zone

“##LocalTime##” – the time of call reception based on the local time zone

“##IvrDevice##” – a name of the device that processes the call

“##None##” – no parameter

Example 1: “MemberNumber”

Example 2: “MemberNumber,##Culture##,%Info”

Target values

(Targets)

A parametric ODBC command suitable for the given provider. The parameters are marked with " ? " and submitted to the query based on the sequence.

More info: https://learn.microsoft.com/en-us/dotnet/api/system.data.odbc.odbccommand.parameters?view=dotnet-plat-ext-7.0

Example 1: “exec FindMember ?”

Example 2: “SELECT * FROM Membership WHERE Id=?”

ADO.Net usage:

Example: ” SELECT * FROM Membership WHERE Id=@MemberNumber

Possible events

  • SwitchDbOK – Fulfilled; the returned value is not 0, a jump to TargetOnSuccess follows

  • SwitchDbNoTarget – Not fulfilled; the returned value is 0, a jump to TargetOnFail follows

  • SwitchDbError – The query failed; ResultData specifies the error code, a jump to TargetOnTimeOut follows

Agents (Branching by agents)

This command makes it possible to change the course of the program based on agent availability for the current call language. If a project is known, then it will be used, otherwise the project selection rules (ProjectCondition) will be used to acquire a project. The Numbers then indicates what would be the result of processing IvrResponseA. If no agent is available, a jump follows. The Targets field indicates the jump target. FileName indicates the agent calculation method. If the Retries field is filled out, only agents with a certain minimum language skill are considered.

Numbers

(Numbers)

A value that will be used instead of IvrResponseA if a project is still unknown.

Target values

(Targets)

The line number to which the script is to jump. An empty value results in script termination.

File name

(FileName)

An agent is counted if they fulfill one of the selected conditions.

Options:

“Logged” – It is enough for the agent to be logged in

“LoggedNotMarked” – The agent must be logged in and their status description must not contain characters that follow this value; any spaces before and after are ignored.

“Ready” – The agent must be ready

“ReadyFree” – The agent must be ready and be free

Example: “LoggedNotMarked (Ext)”

Number of retries

(Retries)

If entered, it indicates the minimum required language skill of the agent (apart from the skill level required for the call).

Possible entries in CallEvent

  • AgentsAvailable – There are enough agents; the script continues on the next line without any jump

  • AgentsEnd – There is a lack of agents; Targets is empty; the script is terminated or, if relevant, the program returns to the calling script

  • AgentsOK – There is a lack of agents; a jump to another line follows

  • AgentsFail – There is a lack of agents; the line with the second value in Targets is invalid

Result (Result)

This command terminates the script and writes the result to the relevant field of IvrResponseA/B/W for the InboundCall record. If it is an embedded script, the processing of all calling scripts will be terminated anyway. If the script is in a waiting mode, i.e. the PassToWaitMode node has been performed, then the result is recorded to IvrResponseA/B/W and the controlling service can continue to process the call (using the relevant rules), but the script continues with the next step.

Target values

(Targets)

The resulting value that is to be recorded.

Special values:

“##AppResult##” – Takes the current value in AppResult and the call and uses it.

“##ScenarioResultValue##” – Uses a value from the data set field or variable that has the name as stated in Numbers

Numbers

(Numbers)

A name of the TargetColumn field from the associated data set.

Example: SpecResult

Example: %Info

Possible entries in CallEvent

  • ResultExitMode – The result was recorded and the script terminated

  • ResultWaitMode – The result was recorded but the script was not terminated (It will be terminated either explicitly, e.g. using Hangup, or by the controlling service, which will use CTI to transfer the call elsewhere)

PassToWaitMode (Pass to waiting mode)

This command switches the script to the waiting mode, which ensures that, once the Result command has been called, the script will not end but will continue to be performed (e.g. prompts or music while waiting can be played using StartMusicOnHold); however, the actual processing by the controlling service will not wait anymore but will continue. This mode makes it possible to use the IVR script for waiting in queue (like IVR-W). Any command that follows this command can be terminated at any time, in which case the call will be distributed.

The command can start the music playback in the background directly (analogously to the StartMusic command) – it is sufficient to fill out the music class (it usually indicates a folder with music files):

File name

(FileName)

A class of music played while waiting.

Example:

“waitmoh” – Start playing the waitmoh music class.

Possible entries in CallEvent

  • PassToWaitModeOK – The step was performed without music

  • PassToWaitModeMusic – The step was performed with music

  • PassToWaitModeFail – The step with music has failed

TerminateRequest (Request for termination)

This command defines that when the script ends, the message or call processing at the given stage is terminated (analogous to the Terminate attribute with PreCondition/PostCondition), and it is no longer processed. If the script is to be terminated at the same time, then the Result or Goto step must follow after this command. The call will be explicitly hung up and marked with the “Served” attribute.

Possible entries in CallEvent

  • TerminateRequest OK

  • TerminateRequest Fail

IVR steps – logic and metadata

SetLang (Set language)

The command changes the language or the acceptable language skill level or, if required, both parameters of the call.

Target values

(Targets)

Name of the language culture that is to be used. Example: “de”

Numbers

(Numbers)

A value of the acceptable language skill level (0 to 100)

Possible entries in CallEvent

  • SetLangOK – Information that the change was made

  • SetLangFail – The value in Targets or Numbers is invalid

SetPriority (Set priority)

Changes the call priority.

Numbers

(Numbers)

Priority level (0 to 10,000)

Possible entries in CallEvent

  • SetPriorityOK – Information that the change was made

  • SetPriorityFail – The value in Numbers is invalid

SetAppResult (Set application result)

This command sets the AppResult field value for a related call (Inbound/Outbound).

Target values

(Targets)

A value that is to be set. It is considered literally.

Possible entries in CallEvent

  • SetAppResultOK – Information that the change was made

SetIvrFeedback (Set IVR feedback attribute)

¨This command sets the IvrFeedback bit value for a related call (Inbound only). If this function is run on an outbound call, it does nothing.

Target values

(Targets)

A value that is to be set. The possible values are as follows:

true – set (or empty)

false – reset

Possible entries in CallEvent

  • SetIvrFeedbackOK – Information that the change was made

Nop (Marking step)

This command makes an entry in the CallEvent table with the IvrScriptX parameters, ResultData contains a value from Targets, and Duration indicates the time passed since the last Nop step or, if relevant, from the script start time till the first command.´

Target values

(Targets)

A mark that is to be recorded in the database.

Possible entries in CallEvent

  • NopOK – Information about a pass through the step; ResultData and Duration include values

PreferredAgent (Preferred agent)

This command performs a calculation and sets a preferred agent for the given call.

Target values

(Targets)

Agent determination method.
Options:

“AgentId” – A specific agent; their ID is in TargetId

“Last” – The caller’s number is used to find the last inbound or outbound call that has been served by an agent; the search is made over a defined number of hours in the past

“LastAndLogged” – The caller’s number is used to find the last inbound or outbound call that has been served by an agent; the search is made over a defined number of hours in the past; the agent must be logged in

“LastAndReady” – The caller’s number is used to find the last inbound or outbound call that has been served by an agent; the search is made over a defined number of hours in the past; the agent must be ready

Numbers

(Numbers)

A number of hours indicating how far in the past the call is to be searched (using the methods of Last…)

Target ID

(TargetId)

A specific agent’s identifier used for the AgentId method.

Possible entries in CallEvent

  • PreferredAgentOK – Information that an agent was found and the change was made

  • PreferredAgentFail – Information that no agent was found

CallBack (Callback)

This command creates an outbound call based on the relevant rules. The source can be either a data set field or the caller’s current number. The number is formatted according to the current iCC numbering plan. If a data set (ScenarioResult) is associated with an inbound call, it will be associated with an outbound call as well so that metadata can be potentially used. An outbound call is created with the language indication that the inbound call has at the given moment. The knowledge and skills level values will be used as defined in the campaign.

Call can be converted into virtual inbound call, that keeps the same logical position as original real inbound, but is represented as outbound call.

Conditions iCC:

  • There is an outbound project (Project)

  • There is an outbound campaign for this project (OutboundList)

  • There is a record of project transitions (ProjectTransition) with the “IvrCallBack” type (if an IVR A script is concerned, then the field will be left empty in the source project).

Target values

(Targets)

A field name from a data set from which the number is to be read that is to be called (TargetColumn).
Example: “MyNumber”
Special parameter:

“##CallerNumber##” – The caller’s number

Numbers

(Numbers)

A number of minutes by which the callback is to be postponed (scheduled) later in respect of the inbound call.

Or a text “VIRTUAL” if you want the callback to be created as true replacement of virtual call.

Possible entries in CallEvent

  • CallBackOK – Information that an outbound call was created

  • CallBackFail – Information that the process has failed

SendEmail (Send message)

This command sends a message (e-mail, SMS, facsimile) to addresses specified in Targets using the Numbers template (the expansion depends on the current data set). FileName is used as the message subject, and the message is sent beyond the gateway specified in TargetId.

Note: The node will just create a request for the message to be sent based IvrStepId and ScenarioResultId – this request is processed with a certain delay by an asynchronous service; therefore, it is not desirable that the data referred to in the macro-expansion is further subject to change.

Target ID

(TargetId)

An ID of the gateway beyond which the message is to be sent.

Target values

(Targets)

Direct target addresses to which the message is to be sent, separated with commas, or a name of the data set field (TargetColumn), the value of which will be used as the sender’s address (it can contain multiple addresses separated with commas). If Targets contains at least one @ character or starts with +, then the text is considered as a direct address (e.g. telephone number).

Example 1: “ReportEmail”

Example 2: “info@atlantis.cz

Example 3: “+420602330533”

File name

(FileName )

A text (plain) that is to be used as the message subject. The text will be macro-expanded. Apart from the $Result…:TargetColumn$ expansion, only the following expansion is supported: $CallerNumber$.

Numbers

(Numbers)

An ID of an e-mail or generic template that will be used for the message body; the message macro-parameters will be expanded; if nothing is filled out, the message will have an empty body.

Apart from the $Result…:TargetColumn$ expansion, only the following expansion is supported: $CallerNumber$.

The template will not be used for the SMS channel.

Example: “33B2BBC5-46CC-E411-855A-0811968B9484”

Possible events

  • SendMailOK – The message request was created successfully (ChangeRequest – its ID is in ReferenceId); a jump to TargetOnSuccess follows.

IVR steps – data transactions

SetTarget (Set to column)

This command sets a data set field value in a form, or variable to a literal value or special value. For variables as a side-effect it creates a variable.

Target values

(Targets)

A name of a data set field to which the value is to be saved (TargetColumn). Example – form field: “Membership”

Example – variable: “%SecurityPin”

Numbers

(Numbers)

A value that is to be set. It is considered literally except for special parameters. An empty value means NULL. (Usefull for initialization of a variable).
Special parameters:

“##CallerNumber##” – the caller’s number

“##CallId##” – call ID

“##PilotNumber##” – inbound pilot number

“##Redirector##” – inbound redirector number

“##IvrEntryNumber##” – IVR port/branch number (based on the IvrEntry table)

“##IvrEntryId##” – IVR port/branch number (based on information from the IVR hardware)

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RegionalTime##” – the time of call reception based on the entry time zone

“##IvrDevice##” – a name of the device that processes the call

“##LocalTime##” – the time of call reception based on the local time zone
“##CurrentTime##” – the current local time just at the moment of command execution

“##NewGuid##” – a generated unique identifier in the format of 470ABC44-28C5-4B17-B549-197FAFC041DC

Possible entries in CallEvent

  • SetTargetOK – Information that the change was made

AssignTarget (Assign column to column)

This command sets a data set field value in a form, or variable to value obtained from another data set field. For variables as a side-effect it creates a target variable.

Target values

(Targets)

A name of a data set field TO which the value is to be saved (TargetColumn). Example – form field: “Membership”

Example – variable: “%SecurityPin”

Numbers

(Numbers)

A name of a data set field FROM which the value is to be read (TargetColumn). Example – form field: “Membership”

Example – variable: “%SecurityPin”

Possible entries in CallEvent

  • AssignTargetOK – Information that the change was made

QueryDb (Query to DB)

First option is a command, that performs a parametric query using the ODBC mechanism over a selected data source; the returned values are recorded in a data set fields (ScenarioResult) or variables, provided that the field names match those in TargetColumn or name of existing variable (without % prefix). If the IvrApplyQueryResultToNullOnly configuration parameter is selected, only those fields are overwritten that have the NULL value. Windows and Linux supported. Used for on-premise installations with additional ODBC drivers.

The second option is ADO.NET connection. With this option, you can’t use the full connection string, but instead, the one set in appsettings.json will be used (file according to the background service). Used for container installations.

  • Note 1: All parameters are submitted and returned as text nvarchar.

  • Note 2: This command can also be used to carry out customer calculations using the SQL Server

File name

(FileName)

A connection string for the ODBC provider.

More info: https://www.connectionstrings.com/microsoft-odbc-driver-17-for-sql-server/

Example for SQL Server 2019: Driver={ODBC Driver 17 for SQL Server};Server=myServerAddress;Database=myDataBase;UID=myUsername;PWD=myPassword

A connection string for the ADO provider.

Example:

  • ADO – connection to the default server and database, which FS uses

  • ADO TableName – connection to the default server, but default database is substituted for the provided "TableName"

Parameters

(Parameters)

Names of data set fields (TargetColumn), the values of which will be used as the query parameters. The separating characters are commas or semicolons. The parameter sequence determines their insertion in the ODBC command. Special parameters:

“##CallerNumber##” – the caller’s number

“##CallId##” – call ID

“##ScenarioResultId##” – data set ID

“##PilotNumber##” – inbound pilot number

“##Redirector##” – inbound redirector number

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RegionalTime##” – the time of call reception based on the entry time zone

“##LocalTime##” – the time of call reception based on the local time zone

“##IvrDevice##” – a name of the device that processes the call

“##None##” – no parameter

Example 1: “MemberNumber”

Example 2: “MemberNumber,##Culture##,%Info”

Target values

(Targets)

A parametric ODBC command suitable for the given provider. The parameters are marked with " ? " and submitted to the query based on the sequence.

More info: https://learn.microsoft.com/en-us/dotnet/api/system.data.odbc.odbccommand.parameters?view=dotnet-plat-ext-7.0

Example 1: “exec FindMember ?”

Example 2: “SELECT * FROM Membership WHERE Id=?”

ADO.Net usage:

Example: ” SELECT * FROM Membership WHERE Id=@MemberNumber

Possible entries in CallEvent

  • QueryDbOK – The query has successfully been performed, and ResultData shows how many fields were used from how many returned fields

  • QueryDbFail – The query has failed , and ResultData shows the error code.

QueryUrlCsv (Query for URL in CSV)

This command carries out a parametric query using the http/https mechanism for the entered web server; the returned values are processed as one CSV line with a header (values separated by semicolons) and recorded in a data set fields (ScenarioResult) or variables, provided that the field names match those in TargetColumn or name of existing variable (without % prefix). If the IvrApplyQueryResultToNullOnly configuration parameter is set, only those fields are overwritten that have the value of NULL.

Note 1: All parameters are submitted as text within a Query String. Note 2: This command can also be used to write and update values using a web server.

File name

(FileName)

A basic URL address for which the parameters are submitted as a Query String:

Parameter example:

https://www.atlantis.cz/OrderStatus.aspx

Example of a sent URL with parameters: lang=”cz” and number=”41547”:

https://www.atlantis.cz/ OrderStatus.aspx?lang=cz&number=41457

A basic URL address for which parameters are submitted as placeholders:

Parameter example:

https://www.atlantis.cz/{lang}/{number}”

Example of a sent URL with the following parameters: lang=”cz” a number=”41547”:

https://www.atlantis.cz/cz/41457

Note: Special parameters are stated in braces without the # or % characters; it is necessary to avoid a collision of the names with the form.

The address can contain the ##LSN## macro-element.

Numbers

(Numbers)

Names of data set fields (TargetColumn) or variables, the values of which will be used as query parameters. The separating character is a semicolon or comma. The sequence of parameters determines their placement in the command. Special parameters:

“##CallerNumber##” – the caller’s number

“##CallId##” – call ID

“##ScenarioResultId##” – data set ID

“##PilotNumber##” – inbound pilot number

“##Redirector##” – inbound redirector number

“##IvrEntryNumber##” – IVR port/branch number (based on the IvrEntry table)

“##IvrEntryId##” – IVR port/branch number (based on information from the IVR hardware)

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RegionalTime##” – the time of call reception based on the entry time zone

“##LocalTime##” – the time of call reception based on the local time zone

“##IvrDevice##” – a name of the device that processes the call

“##None##” – No parameter

Example 1: “MemberNumber”

Example 2: “MemberNumber,##Culture##,%Info”

Target values

(Targets)

A username and password if it is to be used for a general http/s authentication, separated with a semicolon.

Example 1: “system;ws7787!P”

It is also possible to use the special value of “SSPI”, in which case an integrated login is used under the Windows account under which the iCC synchronous service is running.

Example 2: “SSPI”

If it is necessary to send a basic authentication without the 401/WWW-Authenticate handshake, a prefix can be added before the username: “!PRE!”

Example 3: “!PRE!system;ws7787!P”

If JWT authentication is to be used, a prefix “!JWT!” has to be added before the username and authentication URL as third part has to entered.

Example 4: “!JWT!system;ws7787!P;https://identity/jwt”

If OIDC client_credentials flow is to be used, a prefix “!OIDC_CC!” has to be added before the username, authentication URL as third and token authentication scope as fourth part has to entered.

Example 5: !OIDC_CC!Myclientid; MyClientSecret;https://identity/token;oidc

Example 6: “!APIKEY!ws7787!P”

DTMF – skip (SkipDigits)

The separator used in the returned CSV cata – usually it is a comma (,) or semicolon (;).

DTMF – result

(ResultDigits)

An empty value or “QS” – A URL is used, followed by a Query String (HTTP GET request).

“REST” – Placeholders are used with the format of {name} (HTTP GET request.)

Number of retries

(Retries)

A code page used for the response; examples (depending on the installed server version):

Empty – auto-detection

1250 – Windows 1250

852 – DOS 852

65001 – UTF8

Possible entries in CallEvent

  • QueryUrlCsvOK – The query has successfully been performed, and ResultData shows how many fields were used from how many returned fields

  • QueryUrlCsvFail – The query has failed

QueryUrlJson (Query for URL in JSON)

This command carries out a parametric query using the http/https mechanism for the entered web server; the returned values are processed as one record in the JSON format (http://www.json.org) and recorded in a data set fields (ScenarioResult) or variables, provided that the field names match those in TargetColumn or name of existing variable (without % prefix). If the IvrApplyQueryResultToNullOnly configuration parameter is set, only those fields are overwritten that have the value of NULL.

Note 1: All parameters are submitted as text within a Query String or as placeholders. Note 2: This command can also be used to write and update values using a web server.

File name

(FileName)

A basic URL address for which the parameters are submitted as a Query String:

Parameter example:

Example of a sent URL with parameters: lang=”cz” and number=”41547”:

https://www.atlantis.cz/ OrderStatus.aspx?lang=cz&number=41457”

A basic URL address for which parameters are submitted as placeholders:

Parameter example:

https://www.atlantis.cz/{lang}/{number}”

Example of a sent URL with the following parameters: lang=”cz” a number=”41547”:

https://www.atlantis.cz/cz/41457

Note: Special parameters are stated in braces without the # or % characters; it is necessary to avoid a collision of the names with the form.

The address can contain the ##LSN## macro-element.

Numbers

(Numbers)

Names of data set fields (TargetColumn) or variables, the values of which will be used as query parameters. The separating character is a semicolon or comma. The sequence of parameters determines their placement in the command.
Special parameters:

“##CallerNumber##” – the caller’s number

“##CallId##” – call ID

“##ScenarioResultId##” – data set ID

“##PilotNumber##” – inbound pilot number

“##Redirector##” – inbound redirector number

“##IvrEntryNumber##” – IVR port/branch number (based on the IvrEntry table)

“##IvrEntryId##” – IVR port/branch number (based on information from the IVR hardware)

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RegionalTime##” – the time of call reception based on the entry time zone

“##LocalTime##” – the time of call reception based on the local time zone

“##IvrDevice##” – a name of the device that processes the call

“##None##” – No parameter

Example 1: “MemberNumber”

Example 2: “MemberNumber,##Culture##,%Info”

Target values

(Targets)

A username and password if it is to be used for a general http/s authentication, separated with a semicolon.

Example 1: “system;ws7787!P”

It is also possible to use the special value of “SSPI”, in which case an integrated login is used under the Windows account under which the iCC synchronous service is running.

Example 2: “SSPI”

If it is necessary to send a basic authentication without the 401/WWW-Authenticate handshake, a prefix can be added before the username: “!PRE!”

Example 3: “!PRE!system;ws7787!P”

If JWT authentication is to be used, a prefix “!JWT!” has to be added before the username and authentication URL as third part has to entered.

Example 4: “!JWT!system;ws7787!P;https://identity/jwt”

If OIDC client_credentials flow is to be used, a prefix “!OIDC_CC!” has to be added before the username, authentication URL as third and token authentication scope as fourth part has to entered.

Example 5: “!OIDC_CC!Mycl ientid;MyClientSecret;https://identity/token;oicd”

Example 6: “!APIKEY!ws7787!P”

DTMF – result

(ResultDigits)

An empty value or “QS” – A URL is used, followed by a Query String (HTTP GET request).

“REST” – Placeholders are used with the format of {name} (HTTP GET request.)

“POST” – Placeholders are used with the format of {name} and the parameters from Numbers are submitted as a “flat” JSON structure in the body of the HTTP POST request

Number of retries

(Retries)

A code page used for the response; examples (depending on the installed server version):

Empty – auto-detection

1250 – Windows 1250

852 – DOS 852

65001 – UTF8

Possible entries in CallEvent

  • QueryUrlJsonOK – The query has successfully been performed, and ResultData shows how many fields were used from how many returned fields

  • QueryUrlJsonFail – The query has failed.

QueryUrlText (Query for URL as Text)

This command carries out a parametric query using the GET http/https mechanism for the entered web server; the returned values are processed as a single text value, which can be recorded in a data set field (ScenarioResult) or variable, if required, in a field whose name is stated in Targets (a field called TargetColumn or a name of a variable – with % prefix). If no scenario is associated with the IVR system or Targets is empty, only the URL will be called. If Targets does not contain the target field, the returned http response is discarded.

Note 1: All parameters are submitted as text within a Query String or as placeholders. Note 2: This command can also be used to write and update values using a web server.

File name

(FileName)

A basic URL address for which the parameters are submitted as a Query String:

Parameter example:

Example of a sent URL with parameters: lang=”cz” and number=”41547”:

https://www.atlantis.cz/ OrderStatus.aspx?lang=cz&number=41457”

A basic URL address for which parameters are submitted as placeholders:

Parameter example:

“atlantis.cz/{lang}/{number}?Id={InstanceRefId}”

Example of a sent URL with the following parameters: lang=”cz” a number=”41547”:

https://www.atlantis.cz/cz/41457

Note: Special parameters are stated in braces without the # characters; it is necessary to avoid a collision of the names with the form.

The address can contain the ##LSN## macro-element.

Numbers

(Numbers)

Names of data set fields (TargetColumn), the values of which will be used as query parameters. The separating character is a semicolon or comma. The sequence of parameters determines their placement in the command.
Special parameters:

“##RemoteAddress##” – an e-mail address or number sent via SMS (according to channel type)

“##MessageId##” – message ID

“##MessageType##” – message type/channel: e-mail, SMS, Fax, SocWall, SocMsg

“##PilotAddress##” – inbound pilot (gateway) address

“##FromField##” – a text in the “From” field

“##ToField##” – a text in the “To” field

“##ToCcField##” – a text in the “Cc” field

“##SubjectField##” – a text in the “Subject” field

“##BodyText##” – a text in the “BodyText” field; if it is empty, then tags will be cropped from the BodyHtml field

“##BodyHtml##” – a text in the “BodyHtml” field; if it is empty, then the BodyText will be extended with basic ones

“##ProjectName##” – project name if known already

“##Culture##” – a language in the Culture notation (e.g. “cs”)

“##RecievedTime##” – a time when the message was received based on the local time zone

“##ScenarioResultId##” – data set ID

“##None##” – No parameter

Example 1: “MemberNumber”

Example 2: “MemberNumber,##Culture##,%Info”

Target values

(Targets)

A name of a data set field to which the text returned using http is to be saved. Optionally, there can also be a username and password (with values separated with semicolons).

Example 1: “MemberNumber”

Example 2: “MemberNumber;system;ws7787!P”

It is also possible to use the special value of “SSPI”, in which case an integrated login is used under the Windows account under which the iCC synchronous service is running.

Example 3: “MemberNumber;SSPI”

Example 4: “%Info;SSPI”

The returned value can be ignored:

Example 4: “;SSPI”

DTMF – result

(ResultDigits)

An empty value or “QS” – A URL is used, followed by a Query String

“REST” – Placeholders are used with the format of {name}

Number of retries

(Retries)

A code page used for the response; examples (depending on the installed server version):

Empty – auto-detection

1250 – Windows 1250

852 – DOS 852

65001 – UTF8

Possible events

  • QueryUrlTextOK – The query has successfully been performed, and ResultData shows how many fields were used from how many returned fields or the value of “Discarded” if the IVR has no scenario or Targets is empty

  • QueryUrlTextFail – The query has failed.

QueryVarText (Query for variable as text)

This command carries out a query for an internal variable of the IVR script called Numbers. The text result is saved in a data set field or vaiable specified in Targets.

Numbers

(Numbers)

A name of the internal variable or function that is to be read from the script.

Examples for the speech recognition module:

RECOG_RESULT

RECOG_ENTRY()

Target values

(Targets)

A name of the data set field to which the value is to be saved (TargetColumn). Example: “Membership”

Example: “%Info”

DTMF – result

(ResultDigits)

If ##IfNotEmpty## is set, then the target field will be overwritten only if the recorded value is not empty.

Possible entries in CallEvent

  • QueryVarTextOK – The query has successfully been performed; in this case, the command continues with the TargetOnSuccess branch

  • QueryVarTextEmpty – The query has successfully been performed but the returned value was empty and the ##IfNotEmpty## switch was used; in this case, the command continues with the TargetOnTimeOut branch

  • QueryVarTextFail – The query has failed; in this case, the command continues with the TargetOnFailure branch

QueryVarXml (Query for variable as XML)

This command performs a query for an internal variable of the IVR script with the Numbers name. The text result is parsed as XML and then the text value (inner text) is extracted from FileName using the XPath query and then saved to a data set field or variable indicated in Targets. If multiple results of XPath are returned, just the first result will be used.

Documentation for XPath:

Numbers

(Numbers)

A name of an internal variable or function that is to be read from the script.

Examples for the speech recognition module:

RECOG_RESULT

File name

(FileName)

An XPath statement that will be used to extract data from XML

Target values

(Targets)

A name of the data set field to which the value is to be saved (TargetColumn). Example: “Membership”

Example: “%Info”

DTMF – result

(ResultDigits)

If ##IfNotEmpty## is set, then the target field will be overwritten only if the recorded value is not empty.

Possible entries in CallEvent

  • QueryVarXmlOK – The query has successfully been performed; in this case, the command continues with the TargetOnSuccess branch

  • QueryVarTextEmpty – The query has successfully been performed but the returned value was empty and the ##IfNotEmpty## switch was used; in this case, the command continues with the TargetOnTimeOut branch

  • QueryVarXmlFail – The query failed while establishing the variable value; in this case, the command continues with the TargetOnFailure branch

  • QueryVarXmlNotParsed – The query failed when parsing as XML; in this case, the command continues with the TargetOnFailure branch

  • QueryVarXmlBadXpath – The query failed when performing the XPath query; in this case, the command continues with the TargetOnFailure branch

IVR steps – connection control

Answer (Answer call)

This command answers a call. It depends on the IVR module configuration whether this command needs to be placed at the beginning of the script. In most cases this is not necessary.

Wait

(WaitTimeOut)

A waiting time in milliseconds, for which the step still waits after the call is answered. For example, this can be used for analog ports to bridge the connection setup time. If the value is NULL, there will be no waiting.

Possible entries in CallEvent

  • AnswerOK

  • AnswerFail

Hangup (Hang up call)

This command hangs up the call on the part of the IVR module. The InboundCall will be marked as lost. Important: It depends on the IVR module hardware type how the action will actually be carried out.

Wait

(WaitTimeOut)

A waiting time in milliseconds, for which the step waits for call to terminate. If the value is NULL, there will be no waiting.

Possible entries in CallEvent

  • HangupOK

  • HangupFail

Transfer (Combined transfer)

This command will terminate processing on the part of iCC and transfer the call to the target number. The call is not processed by the IVR module. This command can be used for all calls. An InboundCall will be marked as lost if the IvrEntry settings are not set for transferred calls to be regarded as served [MarkTransferredAsServed]. The command can transfer on a ‘blind’ basis or wait for being picked up. The transfer functionality uses the CTI operations of Consult/Transfer/Reconnect (analogous transfers as on a telephone).

Numbers

(Numbers)

The telephone number to which the call is to be transferred

File name

(FileName)

A name of a data set field from which the telephone number is to be read to which the call is to be transferred (TargetColumn). If this field is empty or the value is NULL, a telephone number from Numbers will be used. Example: “ShopNumber”

Time limit

(TimeOut)

A maximum time in milliseconds during which the transfer should be completed.

Wait

(WaitTimeOut)

A waiting time in milliseconds for which the command will wait for the target number to answer the call. A NULL means a blind transfer without waiting.

Target values

(Targets)

If the time period is met, a number of the step to which the script should jump, otherwise it will continue with the next step.

Possible entries in CallEvent

  • TransferBlind – The blind transfer was successful and the script terminated on call transferred

  • TransferFull – The transfer with consultation was successful; the target number answered the call within the time limit and the script terminated on call transferred

  • TransferNoAnswer – The transfer failed after the waiting time expired and the script proceeded to the next step

  • TransferNoLeg – The call to the target number could not be connected; the script proceeded to the next step

  • TransferNoConsult – The call could not be transferred to the target number; the script proceeded with the next step

  • TransferFail – The transfer failed after the total time expired or the original call, contrary to the expectations, was not really connected and the script proceeded to the next step

  • TransferHangup – The caller hung up before the transfer was completed and the script terminated on call hangup

SingleStepTransfer (Transfer in single step)

This command will terminate processing on the part of iCC and transfer the call to the target number. The call is not processed by the IVR module. This command can be used for all calls. An InboundCall will be marked as lost if the IvrEntry settings are not set for transferred calls to be regarded as served [MarkTransferredAsServed]. The command can transfer on a ‘blind’ basis only. The transfer functionality uses the CTI operation of SingleStepStransfer.

Wait

(WaitTimeOut)

A waiting time in milliseconds, for which the step waits for call to terminate. If the value is NULL, there will be no waiting.

Numbers

(Numbers)

The telephone number to which the call is to be transferred

File name

(FileName)

A name of a data set field from which the telephone number is to be read to which the call is to be transferred (TargetColumn). If this field is empty or the value is NULL, a telephone number from Numbers will be used. Example: “ShopNumber”

Possible entries in CallEvent

  • TransferBlind – The blind transfer was successful

  • TransferOK – The transfer was successful and the script terminated on call transferred

  • TransferNoConsult – The call to the target number could not be connected; the script proceeded to the next step

  • TransferFail – Contrary to the expectations, the original call was not really connected and the script proceeded to the next step

ExitTransfer (Transfer upon exit)

This command will terminate processing on the part of the IVR module and transfer the call to the target number. The call is processed by the IVR module. This command can be used for VoIP calls. An InboundCall will be marked as lost if the IvrEntry settings are not set for transferred calls to be regarded as served [MarkTransferredAsServed].

Wait

(WaitTimeOut)

A waiting time in milliseconds, for which the step waits for call to terminate. If the value is NULL, there will be no waiting.

Numbers

(Numbers)

The telephone number to which the call is to be transferred

File name

(FileName)

A name of a data set field from which the telephone number is to be read to which the call is to be transferred (TargetColumn). If this field is empty or the value is NULL, a telephone number from Numbers will be used. Example: “ShopNumber”

Time limit

(TimeOut)

A maximum time in milliseconds during which the transfer should be completed.

Target values

(Targets)

If time period is exceeded, a number of the step to which the script should jump

Possible entries in CallEvent

  • ExitTransferBlind – The blind transfer was successful; the target number failed to answer the call within the given time limit

  • ExitTransferOK –The transfer was successful and the script terminated on call transferred

  • ExitTransferFail – The transfer failed and the script proceeded to the next step

IVR steps – low-level integration with IVR module

Exec (Execute)

This command is used for integration with a corporate script. It executes a corporate script command in the IVR module.

Target values

(Targets)

Command text. It can contain the following .NET parameters: {0} through {5}

File name

(FileName)

Parameter {0}; if TTS exists, a conversion is performed.

Numbers

(Numbers)

Parameter {1}

DTMF – replay (ReplayDigits)

Parameter {2}

DTMF – result

(ResultDigits)

Parameter {3}

DTMF – skip (SkipDigits)

Parameter {4}

Wait

(WaitTimeOut)

Parameter {5}

Time limit

(TimeOut)

A maximum time in milliseconds for the command execution.

Possible entries in CallEvent

  • ExecTimeOut

  • ExecOK

  • ExecFail

SetExitPriority (Exit value)

A step for integration with a corporate script. It sets the exit value for a corporate script of the IVR module. It is intended for special use.

Target values

(Targets)

A value of the priority that is used

Possible entries in CallEvent

  • SetExitPriorityOK

IVR steps – cooperation with module by paging

PromptPaging (Prompt by paging)

This command plays a prompt file. The playback can be terminated with any defined DTMF signal; it does not react to any non-defined ones. If the value of Targets is filled out, then the condition is evaluated first whether the data set field contains a particular value; if the condition is not fulfilled, the prompt will be skipped.

During the execution, it is assumed that the IVR script was called using a workflow run (WorkflowInstance), which is a part of the paging processing (Paging). From that a text for TTS is acquired (the VoiceText field), macro-expanded, and if the FileName parameter has TTS selected, then the acquired text is appended behind the text in FileName.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Example: “>eliska8>” – In this case, TTS is selected and the prompt text is completely read from the paging process (the VoiceText field).

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Target values

(Targets)

A name of the data set field, the value of which is to be found (TargetColumn). Example: “Membership”

Numbers

(Numbers)

A value that is to be compared. It uses the SQL LIKE syntax. If the field is empty, then the condition applies if the data set field is NULL.

Example: “1000%”

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

DTMF – result

(ResultDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback.

DTMF – replay (ReplayDigits)

Any DTMF signal mentioned here will terminate the playback.

Possible entries in CallEvent

  • PromptPagingOK – The action command was correctly executed

  • PromptPagingNoTarget – A check of the data set field value condition was required, and

  • PromptPagingHangup – The caller hung up during the prompt

SwitchVoicePinPaging (Read voice PIN and decide on paging)

This command plays a prompt file and wait for required number of PIN digits to be entered. The playback is terminated with any numerical or defined DTMF signal; it does not react to any non-defined ones. The result is stored in the system log. The entered PIN is processed as follows:

  • The PIN is searched in active pagings (Paging) – If it is found, the command jumps to the third target in Targets. It means that paging is already running.

  • The PIN will be searched in paging templates (PagingTemplate) – If it is found, the command jumps to the second target in Targets. It means that paging is not running and it can be started.

  • No PIN was found; the command jumps to the first target in Targets; it means that the PIN is incorrect.

The step will create a record in the PagingEvent table, according to which the next steps (LaunchPaging and CancelPaging) can find the step result.

File name

(FileName)

A name of the file that is to be played. If the TTS functionality is available, then the conversion is performed.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the digit entering can take.

Numbers

(Numbers)

The maximum number of digits that are to be entered. If the SkipDigits field is not filled in, then it waits exactly for the given number of digits. Example: “6”.

Target values

(Targets)

The field must contain exactly three line numbers, separated by semicolons or commas. If the line number is left out, it means that the script will be terminated for the given selection.

Example: “100;;220”. A mandatory field.

DTMF – result

(ResultDigits)

Not used.

DTMF – skip (SkipDigits)

Any DTMF signal mentioned here will terminate the playback and digit entry.

DTMF – replay (ReplayDigits)

Not used.

Possible entries in CallEvent

  • SwitchVoicePinPagingHangup – The caller hung up during the step

  • SwitchVoicePinPagingSkip – The caller opted to skip the step from SkipDigits without entering any digits

  • SwitchVoicePinPagingOK – The caller made a final selection from; it is stated in ResultData

LaunchPaging (Launch paging)

This command finds the result of the last SwitchVoicePinPaging operation for the given call; it checks it and launches the paging according to the template. If paging has been launched differently in the meantime, it will do nothing.

This step has no parameters.

Possible entries in CallEvent

  • LaunchPagingOK – The paging was successfully launched

  • LaunchPagingFail – The paging had already been launched, so it was not necessary to launch it again.

CancelPaging (Cancel paging)

This command finds and checks the result of the last operation of SwitchVoicePinPaging for the given call, and cancels the current paging. If paging has in the meantime been cancelled otherwise, it will do nothing.

The step has no parameters.

Possible entries in CallEvent

  • CancelPagingOK – Paging was cancelled

  • CancelPagingFail – Paging had already been cancelled, and so it was not necessary to cancel it

IVR steps – agents’ login and status

The script can have an agent associated with it when running. The AuthenticateAgent node is used for this purpose. If the authentication is successful, the agent ID is saved in the script variable of ##AgentId##, and if the agent is logged in to their workplace, the workplace ID is saved in the script variable of ##WorkplaceId##.
../../_images/ivr-agent-login-diagram.nol10n.png

Fig. 5: A typical IVR diagram for agent login

AuthenticateAgent (Authenticate agent)

This command authenticates the caller using one of the selected methods:

  • CLIP – only based on the caller’s number (no DTMF entry is made)

  • WORKPLACE – only based on the caller’s number (no DTMF entry is made)

  • EXTWORKPLACE – only based on the caller’s number (no DTMF entry is made)

  • CLIP+PIN – based on the caller’s number and PIN

  • PIN – based on the PIN

  • NUM+PIN – based on the telephone number entered and PIN (two DTMF entries are made)

For CLIP puroposes, the caller’s number is compared with the ExternalPhone field of the Agent table, and the PIN entered during tone dialing is compared with the SystemPin field of the Agent table. For WORKPLACE and EXTWORKPLACE, an agent is searched by workplace (the caller’s number is compared with the Number field or ExternalNumber); however, the authentication is possible only for an agent who is already logged in to the workplace. A successful authentication jumps to TargetOnSuccess, a failed authentication jumps to TargetOnFailure, and no choice jumps to TargetOnTimeOut. The node itself in principle does not continue with another step. If the TTS feature is available, the node allows the name of a successfully authenticated agent to be read.

File name

(FileName)

A file name that is to be played as an invitation for authentication. If the TTS feature is available, a conversion is performed. If it is NULL, the invitation is not read.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the entry may take.

Numbers

(Numbers)

Method:

CLIP, CLIP+PIN, PIN, NUM+PIN

Target values

(Targets)

A name formatting string for the file that is to be played, or with a speaker prefix a text that is to be read out loud. The following .NET formatting positions have the below substitutions:

0 – agent ID (Agent.AgentId) – suitable for files

1 – Agent name (Agent.DisplayName) – suitable for TTS

2 – Agent description (Agent.Description) – suitable for files as well as TTS

Examples:

“>eliska8ka> Agent {1} successfully authenticated. Welcome.”

If the value is NULL, the information is not read out loud.

DTMF – result

(ResultDigits)

A character used to terminate the PIN or NUM section – usually #. The node itself derives the PIN length based on the values in SystemPin.

Number of retries

(Retries)

The number of repetitions if the authentication is invalid or there is no entry. An empty value means just a single try. The TimeOut value relates to one prompt repetition. Once all tries have been used up, then TargetOnFail or TargetOnTimeOut is called (based on the last try). It does not make sense for the CLIP method.

Possible entries in CallEvent

  • AuthenticateAgentOK – authentication successful

  • AuthenticateAgentFail – invalid authentication

  • AuthenticateAgentTimeOut – no entry

  • AuthenticateAgentHangup – call hung up during the node

ReadAgentStatus (Read agent status)

Reads the status of the authenticated agent.

File name

(FileName)

A name formatting string for the file that is to be played, or with a speaker prefix a text that is to be read out loud (if the TTS feature exists, a conversion is performed). The following .NET formatting positions have the below substitutions:

0 – Status ID (Status.StatusId) – suitable for files

1 – Status name (Status.DisplayName) – suitable for TTS

2 – Status description (Status.Description) – suitable for files as well as TTS

3 – A status code that can be read (Status.IvrCode), the digits are separated by spaces – suitable for TTS

Examples:

“>eliska8ka> {1}.”

“statuses/S{0}”

The value may not be NULL.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

DTMF – skip (SkipDigits)

Characters for terminating the reading.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Possible entries in CallEvent

  • ReadAgentStatusOK – OK, the parameter shows the status that was read

  • ReadAgentStatusHangup – Hung up during the node

ReadAgentWorkplace (Read agent workplace)

Reads the authenticated agent’s workplace if they are logged in to the workplace (TargetOnSuccess). If the agent is not logged in, the node will do nothing (TargetOnFail).

File name

(FileName)

A name formatting string for the file that is to be played, or with a speaker prefix a text that is to be read out loud (if the TTS feature exists, a conversion is performed). The following .NET formatting positions have the below substitutions:

0 – Workplace ID (Workplace.WorkplaceId) – suitable for files

1 – Workplace number (Workplace.Number) – suitable for files as well as TTS

2 – Workplace name (Workplace.DisplayName) – suitable for TTS

3 – External number (Workplace.ExternalNumber), the digits are separated by spaces – suitable for TTS

Examples:

“>eliska8ka> {2}.”

“workplaces/WP{1}”

The value may not be NULL.

Target values

(Targets)

A condition for the workplace type. If the agent is logged in but is not responsible for the given workplace type, the node will do nothing (TargetOnTimeOut). This makes it possible to read various information based on the workplace type. There are the following workplace types:

  • Active – Wokplace.Number is the primary parameter; Wokplace.ExternalNumber is not relevant in this case

  • Passive –Wokplace.Number is the primary parameter; Wokplace.ExternalNumber is not relevant in this case

  • Indirect – Wokplace.ExternalNumber is the primary parameter; Wokplace.Number is used just to make a choice when selecting a workplace

If left empty, the condition is not evaluated.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

DTMF – skip (SkipDigits)

Characters used to terminate the reading.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Possible entries in CallEvent

  • ReadAgentWorkplaceOK – OK; the parameter specifies the workplace that has been read

  • ReadAgentWorkplaceFail – The node has been skipped since the agent was not logged in

  • ReadAgentWorkplaceTimeOut – The node was skipped since the agent’s workplace type does not meet the condition in Targets

  • ReadAgentWorkplaceHangup – Hung up during the node

AgentActivity (Branching by agent activity)

This command performs branching by the authenticated agent’s status. If the agent’s activity (Agent.Activity) matches the defined value, it jumps to TargetOnSuccess, otherwise to TargetOnFailure.

Target values

(Targets)

A compared value, one of the following:

  • Ready

  • PostCall

  • Pause

  • Logoff

Possible entries in CallEvent

  • AgentActivityOK – The activity corresponds; a jump to TargetOnSuccess follows

  • AgentActivityFail – The activity does not correspond; a jump to TargetOnFailure follows

SetAgentStatus (Set agent status)

The agent must be logged in; if the agent is not logged in to the workplace or authenticated, the node does nothing and continues with the next step. The node will change the agent status to the status specified in TargetId. A jump is performed to TargetOnSucces if the status change is successful, or to TargetOnFailure if the agent ID is invalid. A jump is performed to TargetOnTimeOut if the status could not be set (e.g. it is blocked).

Target ID

(TargetId)

An ID of the required status (from the StatusId table)

Possible entries in CallEvent

  • SetAgentStatusOK – A valid choice; a status change has been performed

  • SetAgentStatusSkip – The agent is not logged in or authenticated; the action is irrelevant

  • SetAgentStatusFail – An invalid status

  • SetAgentStatusTimeOut – The status could not be set; the ClientModel rights and seating are missing; the agent has logged out in the meantime

SelectAgentStatus (Select and change agent status)

The agent must be logged in; if the agent is not logged in to the workplace or authenticated, the node does nothing and continues with the next step. The node will read the list of statuses that the agent can choose from. It will ready only the statuses for which the IvrCode field is completed in the Status table. IvrCode is used as a DTMF code to select a status. The node does not read the current status in the list. If a file is used, the recording must contain information about IvrCode; with TTS it is assumed that the code is included in the text using a parameter. A jump is performed to TargetOnSucces if the status change is successful, or to TargetOnFailure if the code is invalid. A jump is performed to TargetOnTimeOut if there is no entry. A missing Ivr in Seating.UsedClientModel will cause an error.

Note: Before the node is used, it is appropriate to explain to the caller using the Prompt node what they should do; this node will only read the available options and wait for a DTMF choice.

File name

(FileName)

A name formatting string for the file that is to be played for one choice, or with a speaker prefix a text that is to be read out loud (if the TTS feature exists, a conversion is performed). The following .NET formatting positions have the below substitutions:

0 – Status ID (Status.StatusId) – suitable for files

1 – Status name (Status.DisplayName) – suitable for TTS

2 – Status description (Status.Description) – suitable for TTS

3 – A status code that can be read (Status.IvrCode), the digits are separated by spaces – suitable for TTS

Examples:

“>eliska8ka> For {1} select {3}.”

“statuses/S{0}”

The value may not be NULL.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the entry may take.

DTMF – skip (SkipDigits)

A character used to skip the node (terminate repetitions) or terminate the entry (depending on the values in IvrCode, the node itself will derive the maximum number of digits) – usually #. A jump is performed according to TargetOnFailure.

Number of retries

(Retries)

The number of repetitions if the choice is invalid or there is no entry. An empty value means just a single try. The TimeOut value relates to one prompt repetition. Once all tries have been used up, then TargetOnFail or TargetOnTimeOut is called (based on the last try).

Possible entries in CallEvent

  • SelectAgentStatusOK – A valid choice; the status is changed

  • SelectAgentStatusSkip – The agent is not logged in; the action is irrelevant

  • SelectAgentStatusFail – An invalid choice

  • SelectAgentStatusTimeOut – No entry or a skip or no status available; missing ClientModel rights or seating; the agent logged out in the meantime

  • SelectAgentStatusHangup – Hung up during the node

SelectAgentWorkplace (Select workplace and log in)

The agent may not be logged in to the workplace; if they are already logged in, the node will do nothing and continue with the next step. It will read a list of workplaces that the agent can choose from. It only ready allowed free workplaces. The workplace number (the Number field of the Workplace table) is used for the DTMF choice. If a file is used, the recording must contain information about the workplace Number; in the case of TTS, it is assumed that the number is incorporated in the text. A jump is performed to TargetOnSuccess if the login is successful, to TargetOnFailure if the choice is invalid, and to TargetOnTimeOut in the case of no entry.

Note: Before this node, it is appropriate to use the Prompt node to explain the caller what they should do; this node will only read the options and wait for a DTMF choice.

File name

(FileName)

A name formatting string for the file that is to be played, or with a speaker prefix a text that is to be read out loud (if the TTS feature exists, a conversion is performed). The following .NET formatting positions have the below substitutions:

0 – Workplace ID (Workplace.WorkplaceId) – suitable for files

1 – Workplace number (Workplace.Number) – suitable for files as well as TTS

2 – Workplace name (Workplace.DisplayName) – suitable for TTS

3 – External number (Workplace.ExternalNumber) – the digits are separated by spaces – suitable for TTS

Examples:

“>eliska8ka> For {2} choose {1}.”

“workplaces/WP{1}”

The value may not be NULL.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the entry may take.

DTMF – result

(ResultDigits)

A character used to terminate the entry – usually #. Depending on the values in IvrCode, the node itself will derive the maximum number of digits.

DTMF – skip (SkipDigits)

A character used to skip the node (terminate repetitions) – usually *. A jump is performed according to TargetOnFailure.

Number of retries

(Retries)

The number of repetitions if the choice is invalid or there is no entry. An empty value means just a single try. The TimeOut value relates to one prompt repetition. Once all tries have been used up, then TargetOnFail or TargetOnTimeOut is called (based on the last try).

Possible entries in CallEvent

  • SelectAgentWorkplaceOK – A valid choice; the login has been successful

  • SelectAgentWorkplaceSkip – The agent is logged in; the action is irrelevant

  • SelectAgentWorkplaceFail – An invalid choice

  • SelectAgentWorkplaceTimeOut – No entry, skipped, or no workplace available

  • SelectAgentStatusHangup – Hung up during the node

LogonAgentWorkplace (Log in to the line from which calls are made)

The agent may not be logged in to the workplace; if they are already logged in, the node will do nothing and continue with the next step. The agent will call from the branch exchange that servers as their workplace. If it is not a permitted workplace, or if it is not a workplace at all, the node will continue with TargetOnFailure and do nothing. If it is a branch exchange that is a permitted workplace, and there is an invitation in the FileName field, it will ask the agent whether they wish to log in to the workplace. If the agent declines or no entry is made, a jump will be performed to TargetOnTimeOut. If they confirm the login, the system will log in the agent to this workplace and then jump to TargetOnSuccess. If the FileName field is empty, the login will be performed instantly.

File name

(FileName)

A name formatting string for the file that is to be played as an invitation, or with a speaker prefix a text that is to be read out loud (if the TTS feature exists, a conversion is performed). The following .NET formatting positions have the below substitutions:

0 – Workplace ID (Workplace.WorkplaceId) – suitable for files

1 – Workplace number (Workplace.Number) – suitable for files as well as TTS

2 – Workplace name (Workplace.DisplayName) – suitable for TTS

3 – External number (Workplace.ExternalNumber) – the digits are separated by spaces – suitable for TTS

Examples:

“>eliska8ka> To login in to workplace {2}, press one, otherwise press the asterisk.”

“workplaces/WP{1}”

If the value is NULL, the caller does not confirm the login.

Multiple languages

(MultiLanguage)

Indicates that “Culture” of the current call language is to be appended to the file name.

Time limit

(TimeOut)

The maximum duration of prompt playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Wait

(WaitTimeOut)

A period of time in milliseconds, indicating the maximum time how long the entry may take.

DTMF – result

(ResultDigits)

A character for a positive choice, i.e. login confirmation.

DTMF – skip (SkipDigits)

A character for node skipping (terminated repetitions) – usually *. A jump follows based on TargetOnTimeOut.

Number of retries

(Retries)

The number of repetitions if the choice is invalid or there is no entry. An empty value means just a single try. The TimeOut value relates to one prompt repetition. Once all tries have been used up, then TargetOnFail or TargetOnTimeOut is called (based on the last try).

Possible entries in CallEvent

  • LogonAgentWorkplaceOK – A valid choice; the login is successful

  • LogonAgentWorkplaceSkip – The agent is logged in; the action is irrelevant

  • LogonAgentWorkplaceFail – The branch exchange is not a permitted workplace or there is no workplace available

  • LogonAgentWorkplaceTimeOut – No entry or skipped

  • LogonAgentStatusHangup – Hung up during the node

ReadLoggedAgents (Read logged agents)

This command gradually reads all agents who are logged in and also their statuses. Moreover, it jumps depending on whether any agents are logged in (TargetOnSuccess), none are logged in (TargetOnFailure), or none other are logged in apart from the authenticated agent (TargetOnTimeOut).

File name

(FileName)

A name formatting string for the file that is to be played for one choice, or with a speaker prefix a text that is to be read out loud for one item. The following .NET formatting positions have the below substitutions:

0 – Agent ID (Agent.AgentId) – suitable for files

1 – Agent name (Agent.DisplayName) – suitable for TTS

2 – Agent description (Agent.Description) – suitable for files as well as TTS

3 – Status ID (Status.StatusId) – suitable for files

4 – Status name (Status.DisplayName)– suitable for TTS

5 – Status description (Status.Description) – suitable for files and TTS

Examples:

“>eliska8ka> Agent {1} is {4}.”

The value may not be NULL.

Target values

(Targets)

With a speaker prefix a text that is to be read for one item if the agent is logged in (after the text from FileName). The following .NET formatting positions have the below substitutions:

0 – Workplace number (Workplace.Number)

1 – Workplace name (Workplace.DisplayName)

Examples:

“>eliska8ka> Workplace {1}.”

If the value is NULL, the information about the workplace is not read.

DTMF – skip (SkipDigits)

If it is empty, then read in the list is the very authenticated agent (if logged in); if there is any value in the parameter, it will not read the very authenticated agent in the list.

Time limit

(TimeOut)

The maximum duration of one item playback in milliseconds; the script is terminated once the limit is reached. The time needs to be set with a sufficient buffer.

Possible entries in CallEvent

  • ReadLoggedAgentsOK – Agents are logged in; the parameter shows the number of items

  • ReadLoggedAgentsFail – No agents logged in

  • ReadLoggedAgentsTimeOut – The agent is the only one logged in

  • ReadLoggedAgentsHangup – Hung up during the node

IVR settings for external mode

Target (Target)

If a call, once processed in an external IVR machine, is transferred to any pilot number, it is not interpreted as a call for the given pilot but as a result of IVR processing; the resulting value is found based on the Target items and then associated with the call. It can further be processed in conditions.

Action

Target

Target ID

(TargetId)

A pilot GUID; if a call comes to this pilot, the step is used

Target values

(Targets)

A value that will be recorded in IvrResult for the InboundCall for further use (shortened to max. 32 characters)