Tegsoft IVR System
  • 29 Nov 2024
  • 25 Minutes to read
  • Dark
    Light

Tegsoft IVR System

  • Dark
    Light

Article summary

IVR(Interactive Voice Response) is a technology that facilitates remote access to computer systems, enabling customers to perform various operations through the DTMF keypad or speech recognition features, all without the need for assistance from an agent.

  • IVR is widely used in contact centers to route calls efficiently, deliver information, and handle routine tasks without agent intervention.
  • It is extensively applied across industries such as banking, insurance, municipalities, healthcare, education, and e-commerce.
  • IVR enhances communication with self-service options, improves customer service through efficient call routing and personalization, and increases efficiency by automating tasks and handling high call volumes.

Tegsoft IVR takes these capabilities further by allowing you to choose the IVR type and design call flows for both simple and advanced tasks. This flexibility enables businesses to efficiently manage inbound and outbound calls while easily adapting to evolving requirements.

Tegsoft offers different types of IVR to meet various operational needs:

  • Basic IVR: It allows customers to navigate menu options by pressing keys or using voice commands, directing their calls based on their selections. The system can automatically handle both inbound and outbound calls, reducing wait times and providing information without needing an agent. It can be customized to respond according to the originating queue and whether the call is made during business hours. Additionally, the system can automatically transfer calls to queues or manage situations like no input or timeouts as configured by the company.
  • Complex IVR: It allows multiple announces to be played in sequence, enabling personalized interactions such as using the customer's name. It supports intricate call flows with loops to handle incorrect inputs or timeouts by directing calls to queues or extensions. The system can translate numeric inputs into text in the desired language and easily add or modify announces. When Complex IVR is selected, a new Announce tab is appeared, and announces must be arranged in the correct sequence to ensure they play in the desired order.
  • Functional IVR: It executes specific functions, such as calling web services or performing database operations, to enable dynamic responses based on real-time data. Basic coding knowledge is required to utilize this IVR model effectively. Support from the Tegsoft technical team or Tegsoft Partners is recommended to ensure successful configuration and operation.
  • JSON IVR: It uses JSON to define IVR workflows and configurations, providing flexibility and ease of customization.
  • Application IVR: Basic coding knowledge is required to utilize this IVR model effectively. Support from the Tegsoft technical team or Tegsoft Partners is recommended to ensure successful configuration and operation.

These options allow businesses handle calls effectively and match their unique requirements.

Step-by-Step IVR Definition

To set up an IVR that suits your needs, first log in to the system. Then, go to the MANAGEMENT section in the menu toolbar, where you will find the IVR option.

Step 1: Log in to the system

Step 2: Go to the Management section


Step 3: Tegsoft IVR Menu - Ready to Define


Manage Announce Files

When defining an IVR, the initial step is to manage the announce files. These files are essential for configuring the IVR, as the system cannot function without them. Additionally, since these files are processed according to specific rules to produce voice responses, they must be accurately prepared.

In the manage announce file interface;

  • New announces can be uploaded, existing ones downloaded, played, or deleted.
  • Bulk announces can be imported via Excel. Files must be in 8 KHz 16-bit PCM MONO WAV format for playback.



Tegsoft IVR types consist of both shared and unique fields. This section begins with an overview of the common fields and then provides a detailed explanation of the unique fields specific to each type.


Common Fields
Details

Field Name
Description
Name
This is the field where the name given for IVR is defined.
Visual IVR Textreserved.
IVR Type
This is the field where the type of IVR is defined. Basic / Complex / Functional / JSON or Application type can be chosen.
Display To AgentThe IVR name information is displayed on the Agent screen.
Call Profile
If there will be a call via IVR because of the IVR scenario, Profile has to be set in IVR definition.
Language
When the IVR scenario is on proceed, the selected language will be set. All announces will play according to language that set in IVR definitions.
TTS Provider
In Complex IVR scenarios, text is converted into voice announces. IVR requires information from a TTS provider to perform this function, and the TTS provider is defined in this field. If the announces intended to be included as TTS in the IVR scenario do not play, this may be due to a licensing error or an incorrect definition in this field.
IVR Group
IVR scenarios can be grouped for management ease. With grouping, they can work with only announces in this group and IVR flow points.
# DTMF
In IVR systems, the # DTMF is usually used for end of input. In some cases # can be used as input (dialing content). There is no possible routing for # as default. If # set as end of input, the call will not route to XXX. If # will be accepted as DTMF and routing to XXX for dialing, this field must be selected as "Used as DTMF." If "End of Input" is selected, the # dialing is not processed and means that the dialing is finished.
Answer
"Answer before playing announce" is set as default for each IVR. However, if the line is expected to be announced before call answering (earlymedia) or the IVR performs function is expected, "Perform without answering call" definition should be set. If default definition is wanted to keep, "Answer before playing announce" can be chosen. Therefore, each IVR call is answered.
Notes
This field can be used for keeping note information about IVR step purpose.
IVR Id
Id that assigned by the system to IVR automatically.

IVR Timeout Settings

Field Name
Description
IVR Timeout CheckEnables or disables the timeout functionality. When checked, the system monitors for inactivity based on the specified timeout duration.
IVR Timeout TypeRefers to the configuration that determines whether the timeout counter resets or continues from its current value when a caller is redirected to another target within the IVR flow.
IVR TimeoutSpecifies the duration (in seconds) of inactivity before triggering the timeout action.
IVR Timeout DestinationDestination where the call goes after the timeout.


DTMF

Field Name
Description
DTMF
The definition field that routes you with selections during IVR scenario. This definition field can be used as follows. When the customer click 1 on the IVR, the rule will be processed according to DTMF. When the customer click 2 on the IVR, the rule will be processed according to DTMF. When the customer click 32 on the IVR, the rule will be processed according to DTMF. When the customer click 1XXX on the IVR, the rule will be processed according to DTMF that is 4 digits and starts with 1. When the customer click 23XX on the IVR, the rule will be processed according to DTMF that is 4 digits and starts with 23. When the customer click * on the IVR, the rule will be processed according to DTMF. When the customer click XXXXXX. on the IVR, the rule will be processed according to DTMF that is 6 digits or more.
Destination Type
Definition of the type of destination for easy selection of the destination to be routed after DTMF.
Destination
The field where the destination to be routed by DTMF.
Variable Value
The DTMF is recorded according to preference. If a value is given here, the value specified in the LOG fields is replaced by the DTMF in the LOG field. If 1 is required for the internal line information and 2 is required for the external line information and the variable value is empty, 1 or 2 will be displayed in the IVR keying logs. If the variable value field is written “internal” for clicking 1 and “external” for clicking 2, “internal” will be shown after clicked 1 and “external” will be shown after clicked 2 in the IVR LOGs.
Display Name Prefix
It is an area used to show the IVR clicking inside the line where the line is transmitted. For example, by clicking 1, the display name of the inbound calls can be shown as internal line.
Time Condition (left)
Determines if the action applies during the specified time range (within) or outside of it.
Time condition (right)Set a specific time range (e.g., working hours or a specific duration).
Notes
Information field.


Information To Agent Screen
This section is designed to deliver information captured via DTMF directly to the agent, including personal details such as customer numbers or phone numbers. This feature is necessary to provide the flexibility to display or hide information on the agent's screen. Details such as phone numbers can be shown or concealed as needed, ensuring that only relevant information is visible for efficient and secure interactions.


IVR Designer
The IVR Designer shows the flow of the IVR starting from the selected point, providing a clear overview of the subsequent steps and their interactions.


BASIC IVR

Basic IVR - Details

Field Name
Description
Dial Options
The Basic IVR accepts dialing as input and routes them according to the rules given in the DTMF head. The dial option determines how the DTMF will be operated and the authorization limits of the DTMF. If "Only Options" is selected, the DTMF is compared and routed to the allowed routes under the tab "DTMF". "Only Options" is the most accurate and secure routing method. In fact, it can also be routed to extensions in a controlled manner. To route a call to extension, dial option has to set "Only Options" and destination type has to be "Allowed Destinations" then IVR will route the call extension that 1XXX. "Options and Extensions" firstly tries the rules, if the DTMF does not match any specified rules, then the number that is matched with the DTMF is tried from the extensions. If the dial option set as "All Inbound" , firstly tries the rules, then it tries to route to all inbound destinations defined before such as extensions, groups, skills(queues) etc. If extensions or destinations are registered to another PBX or if an external destination is to be routed from the IVR, then Profile has to be set and dial option has to be "All Inbound".
Announce
Defines the announce file preference. The announce file defined in this field is played to the caller / caller on the line. The file must be in 8 KHz 16 bit PCM MONO WAV format to play.
Exit Announce
If the IVR scenario will be resulted at the end of DTMF, the exit announce is heard first and then it will be routed. "I’m routing you please wait" can be used for exit announce. Although "Your conversations are recorded" announce is more accurate as a queue(skill) welcome announce, also it can be used for non-queues.
Announcement Interruption

DTMF Ignored During Announcement: If this is selected, key presses (like 1, 2, etc.) are ignored while the announcement is playing. The system only accepts input after the announce finishes. Announcement Ends With DTMF: If this is selected, key presses during the announce are allowed and will interrupt it, stopping the announce immediately.

Timeout Announce
After the announce, there will be waiting time to DTMF. In case there is no DTMF, If an announce is wanted to play, the announce has to be chosen from this field. Sample announces are like "You didn’t click", "Please choose one from options" etc.
Loop For Timeout
This option is used if the main announce is to be repeated if there is no DTMF. If the checkbox is selected and there is no DTMF, the main announce is repeated. If timeout announce is selected, the timeout announce is played first and then the main announce is repeated. This case occurs until the maximum number of errors is reached. If the number of errors is 0, the announce is not repeated.
DTMF Timeout
This is the time given to DTMF. An announce is played on the line and after it is finished a counter starts counting, if there is no clicking within the specified time, it is accepted as "no DTMF".
Invalid message
If DTMF does not allow routing to the specified options (including dial options), it is accepted as invalid. "Invalid DTMF", "Please choose one from specified options" etc. can be used for wrong clicking, kind of these announces has to be set in this field.
Loop for invalid
It is the option that determines whether or not the announce will be repeated if the person on the line makes a wrong clicking similar to the rules of timeout announce repeat.
Error Count
No click during specified time or incorrect click is considered an error. Each error can give the user the option to click again or it doesn’t. Error count determines the maximum number of incorrect click attempts. For example, if clicking is not made, the routing will continue, and if the user wants to click again, the error number can be set to 0. Generally, the number of errors should be 0 in order to route the call in announces such as "Please wait to connect to the operator" in IVR greetings. In cases where clicking is important, the error count can be set as 3 or 4 . In more basic menu routings, it is common to give the error count as 2 in cases where the call is routed to the submenus.
Channel Var. Name
In cases such as storing DTMF during the call and forwarding them to the agent screen, the DTMF can be given a name. With this name, the DTMF can be used in sub-menus, can be compared or presented to the agent for information purposes. Names such as DTMF, ACCOUNTCODE, PREFERENCE can be given. Since it is UTF8, there is no problem for using Turkish characters, but if the data is to be transmitted to other applications, using English without spaces can provide a integration without any problem.
Log valid DTMF
IVR DTMF can be recorded in the system with the specified channel variable name or only as DTMF data. It can be used for getting IVR DTMF reports and transmitting them to other systems for integration purposes.If this option is selected and DTMF is valid, then it is recorded. Especially for important data (Credit card, customer password, etc.), this checkbox should not be selected. TO: (Time-out) and INV: (Invalid)
Log invalid DTMF
Enables recording of invalid DTMF. To indicate DTMF is invalid, the datas are recorded with prefix INV-. For example, if the 5 DTMF is valid, it is saved as 5, and if it is invalid, it is saved as INV-5.
Timeout Dest.
By considering the number of errors, If the last error is "timeout error", the call is routed to the destination defined in this field.
Invalid Dest.
By considering the number of errors, if the last error is "invalid DTMF", the call is routed to the destination defined in this field.
Interdigit timeoutThe time allowed between key presses when entering input.


Basic IVR - DTMF
Clicking "+" creates a new DTMF. The added one can be deleted by pressing the DTMF "-" key.
Each DTMF is assigned a number and must have a target type (e.g., call queue, intercom, repeat IVR, or voicemail) and destination based on the announce's content. Ensure call queues are defined in the system. All redirections must align with the available system channels.

COMPLEX IVR

Complex IVR is similar to Basic IVR but includes extra features like playing multiple announces and using rules to create dynamic messages. It supports announce types like dates, numbers, or currencies and allows playing them in sequence, making it more flexible than Basic IVR.

The definitions of Complex IVR and its DTMF routing are the same as Basic IVR. However, in Complex IVR, the "Announce" field is moved to a separate tab, allowing for more advanced announce management.

Complex IVR - Announce

In the Announce tab, create a new announce with "+" and delete it with "-". Use the listening button to preview it. After adding, complete the required fields and select the appropriate announce type, paying attention to numerical expressions. Assign numbers to defines the reading order (smaller numbers first). These numbers are unrelated to DTMF. Customers hear a personalized greeting followed by announces. Set up DTMF directions after finalizing the announces, ensuring they align.

Field Name
Description
Priority
Since Complex IVR can combine multiple IVR announce files, announces must be played in a specific order. The priority is 5 for the first created record. The user can also arrange this priority sequence as (1,2,3, …) or (10,15,25, …). The priority sequence must be positive integer. It doesn’t need to proceed sequentially or according to a rule. 2 announces can not define with same priority.
Announce Type
Complex IVR announce infrastructure allows multiple types of announces to be played on the line.. Some announces consist of existed files, some announces are generated. In this field, the user defines which announce will be played to the person on the line. Announces: It is the default value. This option is used to play the announce files selected with combobox from "Announces" field that was previously uploaded.Texts (TTS): It converts the text defined in the "Announces" field to announce by using text-to-speech technology and then it is transmitted to the person on the line. Digits: Reads defined value in "announces" field one by one as number. For example, if the value is 123, it converts to announce file as one, two, three. Number: Enables numerical reading of the defined value. For example, if the value is 123, it converts to announce file as one hundred twenty three. Spell: Reads defined values in "announces" field one by one as character. It is generally used to transmit information such as serial number and code to the person on the line. Phone: It is used to read value in telephone format to the person on the line. If the value is 3211010, it is read as 321 10 10 format to user. if it is 02123211010, it is read as 0 212 321 10 10 format. Date: Reads defined value in "announces" field one by one as date. If the date value is 02.03.2015, it is read as 2 March 2015. To define date, there can be dot(.), space, slash(/) between value. Money USD: The option used to read the value of the US dollar. If the value is 0.34, it is read as 34 cent, 5 is read as 5 dollars. 45.21 is read as 45 dollars and 21 cents. Money TL: The option used to read the value of the Turkish Lira. If the value is 0.34, it is read as 34 kurus, 5 is read as 5 liras. 45.21 is read as 45 liras and 21 kurus.
Announce
If the type is Announces, the announce selected from this field is played to the person on the line. In large scale applications announces may increase to numerically high numbers and may be difficult to manage. In order to avoid this problem, it is recommended that IVRs should be grouped, when there are potentially large numbers. For a grouped IVR, the announce preferences come from the announces included in that group. In this case, it makes to manage definitions easier.
Announces
If the IVR content is generated, the data to be generated is defined in this field. If the announce type preference is text, the specified value is accepted as text and it is converted to an announce. For money, this value is assumed as money. A fixed text can be entered by the user in the announce field, or even variables such as DTMF values clicked before, automatic call, and uploads from the EXCEL file can be used. For example, if the person has processed the "Variable value" as CUSTOMERCODE in the previous DTMF, the C{CUSTOMERCODE} variable gets value in this DTMF. If the EXCEL column name is DEBT, C{DEBT} refers to the value below the column.
Time Condition (left)
Determines if the action applies during the specified time range (within) or outside of it.
In some cases it may be desirable to read some announces according to time. Working time and out of working time IVR separation should be made with the incoming call route. Time based announces can be used for basic time based functions such as the phrase "good day", "happy holidays", "good evening" where the IVR scenario has not changed but the announce has changed or the DTMF has been added or removed. It is like when a campaign announce is activated at campaign time and allows DTMF. Announces should be done according to the campaign time in the announce setting and DTMF should be accepted according to the campaign time in the DTMF settings.
Time condition (right)Set a specific time range (e.g., working hours or a specific duration).


FUNCTIONAL IVR

It is the IVR flow that acts as a bridge between complex IVR and application IVR and performs tasks such as comparison, voice recording initialization, reading data with HTTP REST api. Since the functional IVR is between the application IVR and the complex IVR, it may require very basic programming knowledge to understand the operating procedure. Unlike basic and complex IVR, it doesn’t route with DTMF. It is not for DTMF, it is an IVR flow designed to perform task or to make comparisons.Field names and descriptions are given below.

The common descriptions mentioned above are same and when the functional IVR type is selected, the following additional fields appear.

Functional IVR - Details


Field Name
Description
Functional
It is the command that defines how functional IVR works. COMMAND - PARAMETER - PARAMETER … is written in the format. Parameters can be text or numeric values that are fixed values, variable values on the line, or values that will return with HTTP get. Fixed Values: Depending on the type of command or comparison, these are text and numeric fields such as 3, 78, and BLUE. Variable Values: System variables such as {TODAY}, {NOW}; EXCEL column variables like C{CUSTOMERCODE} and previous DTMF on the line like C{DTMF}; TBLCRMCONTACTS {HOMEADDRESS} that CRM information of the contact person; There may be remote data, such as URLGET{http://www.mycompanycrm.com/ivr.aspx?deger=A1&telefon=C {PHONE}}, that can be get by HTTP get. For the commands, the values and formats with their descriptions are given table below.
Announce
Defines the announce to play on the line before the function is executed. It is positioned as an entry announce.
Exit Announce
Defines the announce to play on the line after the function is executed.
Valid Announce
If the result of the function is correct, the announce defined here is played on the line.
Invalid message
If the result of the function is incorrect, the announce defined here is played on the line.
Target
If the result of the function is correct, it defines the destination to route.
Invalid Target
If the result of the function is incorrect, it defines the destination to route.


Functions Syntax And Descriptions

COMMAND(S)
SYNTAX
EXAMPLE
DESCRIPTION
NULL
NOTNULL
COMMAND | PARAMETER
NULL | C{DTMF}
NOTNULL | C{CUSTOMERCODE}
NULL: If the value defined in the parameter is empty, the call is directed to the target and in other cases the call is directed to the invalid target.
NOTNULL: 
If the value defined in the parameter is empty, the call is directed to the invalid target and in other cases to the target.
IN
NOTIN
COMMAND | COMPARED | VALUE1 | VALUE2 | VALUE3 | ... | VALUE_N
IN | C{DTMF} 11 | 2 | 7
If the value given in the compared field matches any of the probabilities, IN directs the call to the target. 
If it doesn't match any of the probabilities, NOTIN directs the call to the invalid target.
INCONTGRPID
NOTINCONTGRPID
COMMAND | CONTACT GROUP ID
IN | afab91df-2c8f-4fa9-885e-fefedf34a3d7
If the person on the line is in the contact group defined in the parameter, INCONTGRPID command will direct the call to the target.
If person is not included in this group, NOTINCONTGRPID command will direct the call to the invalid target.
SETVAR
SETCTIVAR
UNSETVAR
COMMAND | PARAMETER NAME | VALUE
SETCTIVAR | WANT | SURVEY
This is the function set that enables the functions of the call variable. SETVAR and SETCTIVAR accept the variable name as the parameter name and set the value to the value in the field.
If SETCTIVAR is preferred, this information is displayed on the agent screen. UNSETVAR removes the variable value defined by parameter name from the line.
SETVAR
SETCTIVAR
UNSETVAR



COMMAND |
KEY :VALUE


SETVARS | KEY1:VALUE1,KEY2:VALUE2

SETCTIVARS | KEY1,KEY2,KEY3
SETCTIVARS | KEY1:VALUE1,KEY2:VALUE2

UNSETVARS | KEY1,KEY2,KEY3

Multiple SET CTI VAR using in Functional IVR

Channel Variable-->SETVARS
CTI Variable-->SETCTIVARS: 
The KEY values must be defined in the channel variables.




ADDHEADER
REMOVEHEADER
COMMAND | HEADER_NAME | VALUE
ADDHEADER | Diversion | <902123212088@11.11.11.111>
ADDHEADER is used to add sip header and REMOVEHEADER is used to delete sip header. If the format is correct, in each case the call is routed to target.
EQ
NEQ
ISTRUE
ISFALSE
COMMAND | OPERANT | PARAMETER
EQ | C{DTMF} | 7
ISTRUE routes the call to target if the result of the operant is correct.
ISFALSE routes the call to target if the result of the operant is incorrect.
EQ 
enables the call is routed to target if the Parameter value is equal to Operant.
NEQ 
enables the call is routed to target, if the Parameter value is not equal to Operant.
INTIME
COMMAND | TIME CONDITION ID
INTIME | 093492ds23-123sfdwasd-123sd
If the IVR is included in the defined time condition, the call is routed to the target and it other case to the invalid target.
OUTOFTIME
COMMAND | TIME CONDITION ID
OUTOFTIME | 093492ds23-123sfdwasd-123sd
If the IVR is not included in the defined time condition, the call is routed to the target and it other case to the invalid target.
DATE_GT
DATE_GTE
DATE_LT
DATE_LTE
COMMAND | PARAMETER 1 | PARAMETER 2
DATE_GT | {TODAY} | 2015-12-23-16-45-01
It enables checks such as date, before, after.
GT
GTE
LT
LTE



LOGDTMF
COMMAND | VARIABLE NAME | VALUE
LOGDTMF | CUSTOMER | OK
It is used to process a data into DTMF records of IVR.
SETCALLERID
COMMAND | CALLERID_NAME
SETCALLERID | "John" <02123211010>
It enables to change value of caller number(callerid). If the format is correct, in each case the call is routed to target.
STARTRECORDING
STOPRECORDING
COMMAND
STARTRECORDING
It is used to start or stop voice recording during a call. The call is recorded in the standard voice recording file.
RECORD
COMMAND | PARAMETER=VALUE | PARAMETER=VALUE | … | PARAMETER=VALUE
RECORD | FILENAME=customer.wav | DURATION=30 | EMAIL=sample@test.com
Command used to record specific timezone that is independent of the call recording to a target file. It works according to the values defined by the parameter. Parameter descriptions are given below.
PATH: Target file
FILENAME: File name
DURATION: MAX recording time
ALERT: Beeping before recording starts. True/False
EMAIL: The email to send voice record EMAILTEMPLATE: Email template
EMAILFROM: Value of email sender
DTMF: To stop voice recording with DTMF, such as NONE/*/ #
SILENCE: Disable to record calling
SETCONTID
COMMAND | CONTID VALUE
SETCONTID | 1431232
Used to set the contact record in the related calling. If the contact record is set, it is processed to the CDR record. Use of the value, such as the contact name, is provided.
DestinationRouter
COMMAND | NUMBER | DESTINATION TYPE | DESTINATION
DestinationRouter |1002 | EXT | 123123-arrv123213-232
It is command used to route the call directly to a destination. Destination types and their meanings are listed below.
CONF: Conference room
EXT: Extension
OPER: Emergency code management
FAX: Fax servers
QUEUE: Queue (skill)
TRSTSRC: Allowed Destinations
VMQ: Voice Mail (silent)
VMA: Voice Mail Management
VM: Voice Mail
VMB: Voice mail busy
VMU: Voice Mail Unreachable
SHRT: Short number
CUST: Custom destination
RINGGRP: Ring Group
IVR: IVR
TRUNK: Trunk
TERM: Terminate
CAMPV: Voice Campaign
CAMPSMS: SMS Campaign
CAMPEMAIL: Email Campaign
SendMail




TEMPLATE |TO:"";CC: | KEY1:VALUE1, KEY2:VALUE2


SendMail | TestMailTemplate | TO:example@tegsoft.com,example2@tegsoft.com;
CC:example@gmail.com,example2@tegsoft.com|
TCKN:11111111111,City:Istanbul




TriggerAlarm


COMMAND | AlarmID | KEY1:VALUE1, KEY2:VALUE2


TriggerAlarm | ALARM0001 |TCKN:11111111111,City:Istanbul





CreateActivity


COMMAND | KEY1:VALUE1, KEY2:VALUE2, KEY3:VALUE3, KEY4:VALUE4, KEY5:VALUE5, KEY6:VALUE6


CreateActivity | TOPGROUPID:"", GROUPID:"", ACTTYPEID:"",AGENT:"", LOCATION:"", SUBJECT:""


TOPGROUPID, GROUPID, ACTTYPEID, AGENT values can't be null, in order to insert a row to TBLCRMACT table.




LEFT
RIGHT
STARTS
ENDS
CONTAINS
REPLACE
SPLIT


COMMAND | SIZE | VALUE | KEY
SPLIT | SPLIT_CHAR | ARRAY_INDEX | VAR_NAME | NEW_VAR
REPLACE | OLD_CHAR | NEW_CHAR | VAR_NAME | NEW_VAR
RIGHT | 10 | C{PHONE11} | PHONE10

SPLIT | ; | 1 | C{VARIABLENAME} | NEWVARIABLENAME

REPLACE | ; | , | C{VARIABLENAME} | NEWVARIABLENAME




SWITCH
COMMAND | VALUE
SWITCH | Company Notes



JSON IVR

JSON IVR refers to the Tegsoft IVR system, which utilizes JSON (JavaScript Object Notation) to define and manage call flows, configurations, and interactions. By utilizing JSON, the IVR system can organize menus, prompts, user inputs, and integrations with backend services in a clear and standardized format.

Advantages of JSON IVR:

  • Flexibility: Enables quick updates and modifications without coding complexity.
  • Scalability: Capable of handling complex and growing interaction needs.
  • Error Reduction: Minimizes mistakes, saving time and increasing efficiency.
  • Cost-Effectiveness: Lowers operational costs by reducing the need for extensive development and maintenance.
  • Adaptability: Easily adjusts to changing business requirements.


JSON IVR configuration consists of three main sections:

Request: Defines an HTTP request to an external service for gathering or verifying information.

Actions: Specifies operations to perform based on the response from the request, under predefined conditions that determine the appropriate actions.

NextOptions: Directs the subsequent steps in the call flow by evaluating predefined conditions based on user inputs and system responses.

1. Request Section

The request section configures the HTTP call to external services.

Field Name
Description
serviceClientType
Defines the type of service client (JSONServiceClient).
method
Specifies the HTTP method (GET, POST, etc.).
url
The URL of the API with dynamic parameters (e.g., {PHONE}).
requestHeaders
Optional HTTP headers (e.g., authentication).
requestBody
Optional request body with key-value pairs.

Note: All Functional IVR commands are valid within this section.

2. Actions Section

The actions section specifies operations based on the API response.

Field Name
Description
condition
Logical condition to evaluate the response data.
conditions

The JSON IVR supports multiple conditions in the Actions and NextOptions sections. This allows more complex and precise decision-making by evaluating multiple criteria simultaneously.
All conditions in the array must evaluate to TRUE for the action or routing to occur.

type
The type of action to execute (e.g., SETVAR).
parameters
Variables to set or modify based on the condition.

Note: All Functional IVR commands are valid within this section.

3. NextOptions Section

The nextOptions section defines the next steps based on evaluated conditions.

Field Name
Description
condition
Specifies the condition to match a response attribute.
conditions

The JSON IVR supports multiple conditions in the Actions and NextOptions sections. This allows more complex and precise decision-making by evaluating multiple criteria simultaneously.
All conditions in the array must evaluate to TRUE for the action or routing to occur.

option
The next option to route the call to.
comment
Optional explanation for the condition.


{
  "request": {
    "serviceClientType": "JSONServiceClient",
    "method": "GET",
    "url": "YOUR_SYSTEM_DNS.tegsoftcloud.com/checkVIP.php?PHONE=C{PHONE}",
    "requestHeaders": [
      {
        "accept": "json",
        "authentication": "yourTokenHere"
      }
    ],
    "requestBody": {
      "parameter1": "value1",
      "parameter2": "value2",
      "parameterN": "valueN"
    }
  },
  "actions": [
    {
      "condition": {
        "operator": "EQ",
        "parameters": ["response{resultCode}", "200"]
      },
      "type": "SETVAR",
      "parameters": [
        "customerType:response{customer.type}",
        "accountCode:response{customer.accountId}"
      ]
    },
    {
      "condition": {
        "operator": "NEQ",
        "parameters": ["response{resultCode}", "200"]
      },
      "type": "SETVAR",
      "parameters": ["requestError:TRUE"]
    }
  ],
  "nextOptions": [
    {
      "condition": {
        "operator": "EQ",
        "parameters": ["response{requestResult}", "TIMEOUT"]
      },
      "option": "TIMEOUT"
    },
    {
      "condition": {
        "operator": "EQ",
        "parameters": ["response{requestResult}", "EXCEPTION"]
      },
      "option": "EXCEPTION"
    },
    {
      "condition": {
        "operator": "EQ",
        "parameters": ["response{customer.orders[0]}", "shoes"]
      },
      "comment": "customers with shoe first item",
      "option": "SHOE_LOVER_VIP"
    },
    {
      "condition": {
        "operator": "IN",
        "parameters": ["shoes", "response{customer.orders.list}"]
      },
      "comment": "customers with shoe orders",
      "option": "SHOE_LOVER"
    },
    {
      "condition": {
        "operator": "GT",
        "parameters": ["response{customer.orders.length}", "0"]
      },
      "option": "CUSTOMER_WITHORDERS"
    },
    {
      "condition": {
        "operator": "EQ",
        "parameters": ["response{customer.type}", "VIP"]
      },
      "option": "VIP"
    },
    {
      "condition": {
        "operator": "NULL",
        "parameters": ["response{customer.type}"]
      },
      "option": "UNKNOWN_CUSTOMER"
    },
    {
      "condition": {
        "operator": "NEQ",
        "parameters": ["response{customer.type}", "VIP"]
      },
      "option": "CUSTOMER"
    }
  ]
}


APPLICATION IVR

It is the type of IVR flow used to perform tasks such as calling the webservice, changing the IVR flow by getting information from the customer database, and controlling card / subscriber / ID number entries when functions using screens are not sufficient. The program IVR is loaded into the system by using the "Manage Custom Applications" from the "custom application" section under the "system management". Business partners with programming skills and the Tegsoft software team are competent in program IVR.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.