Introduction
Have you ever wondered why the jtel System has so many variables available in the configuration of the Service Number parameters?
The following screenshots show you the parameters currently available.
- So why so many?
- And why does the list keep on growing with every release?
- And what can I do with them?
General Parameters |
---|
Language - [$languages_id] : |
Second Service Number - [$alternative_servicenumbers_id] : |
User or Agent - [$usersID] : |
ACD Parameters |
---|
ACD Agent Group - [$acd_agent_groups_id] : |
ACD Agent Group 2 - [$acd_agent_groups_id2] : |
ACD Agent Group 3 - [$acd_agent_groups_id3] : |
ACD Agent Group 4 - [$acd_agent_groups_id4] : |
ACD Agent Group 5 - [$acd_agent_groups_id5] : |
ACD Agent Group 6 - [$acd_agent_groups_id6] : |
ACD Agent Group 7 - [$acd_agent_groups_id7] : |
ACD Agent Group 8 - [$acd_agent_groups_id8] : |
ACD Configuration Group - [$acd_configuration_groups_id] : |
ACD Configuration Group 2 - [$acd_configuration_groups_id2] : |
ACD Configuration Group 3 - [$acd_configuration_groups_id3] : |
ACD Configuration Group 4 - [$acd_configuration_groups_id4] : |
ACD Configuration Group 5 - [$acd_configuration_groups_id5] : |
ACD Configuration Group 6 - [$acd_configuration_groups_id6] : |
ACD Configuration Group 7 - [$acd_configuration_groups_id7] : |
ACD Configuration Group 8 - [$acd_configuration_groups_id8] : |
ACD Group (Standalone) - [$acd_groups_id] : |
ACD Group 2 (Standalone) - [$acd_groups_id2] : |
ACD Group 3 (Standalone) - [$acd_groups_id3] : |
ACD Group 4 (Standalone) - [$acd_groups_id4] : |
ACD Group 5 (Standalone) - [$acd_groups_id5] : |
ACD Group 6 (Standalone) - [$acd_groups_id6] : |
ACD Group 7 (Standalone) - [$acd_groups_id7] : |
ACD Group 8 (Standalone) - [$acd_groups_id8] : |
Skill 1 - [$acd_servicenumber_skillsID1] : |
Minimum Skill 1 - [$acd_servicenumber_skillsValue1] : |
Skill Timeout - [$acd_servicenumber_skillsTimeout] : |
Call Priority - [$caller_priority] : |
Do not send ALERT (ringing) at group start : |
Prompts |
---|
Prompt 1 - [$announcement1_id] : |
Prompt 2 - [$announcement2_id] : |
Prompt 3 - [$announcement3_id] : |
Prompt 4 - [$announcement4_id] : |
Prompt 5 - [$announcement5_id] : |
Prompt 6 - [$announcement6_id] : |
Prompt 7 - [$announcement7_id] : |
Prompt 8 - [$announcement8_id] : |
Prompt 9 - [$announcement9_id] : |
Prompt 10 - [$announcement10_id] : |
Prompt 11 - [$announcement11_id] : |
Prompt 12 - [$announcement12_id] : |
Prompt 13 - [$announcement13_id] : |
Prompt 14 - [$announcement14_id] : |
Prompt 15 - [$announcement15_id] : |
Prompt 16 - [$announcement16_id] : |
IVR-Menu Prompt - [$IVRMenu] : |
IVR-Menu Prompt 2 - [$IVRMenu2] : |
IVR-Menu Prompt 3 - [$IVRMenu3] : |
IVR-Menu Prompt 4 - [$IVRMenu4] : |
IVR Statistics Markers |
---|
IVR Statistics Marker 1 - [$ivr_statistics_marker1_id] : |
IVR Statistics Marker 2 - [$ivr_statistics_marker2_id] : |
IVR Statistics Marker 3 - [$ivr_statistics_marker3_id] : |
IVR Statistics Marker 4 - [$ivr_statistics_marker4_id] : |
IVR Statistics Marker 5 - [$ivr_statistics_marker5_id] : |
IVR Statistics Marker 6 - [$ivr_statistics_marker6_id] : |
IVR Statistics Marker 7 - [$ivr_statistics_marker7_id] : |
IVR Statistics Marker 8 - [$ivr_statistics_marker8_id] : |
IVR Statistics Marker 9 - [$ivr_statistics_marker9_id] : |
IVR Statistics Marker 10 - [$ivr_statistics_marker10_id] : |
TTS Parameters |
---|
TTS Engine - [$tts_engines_id] : |
Holiday Lists |
---|
Holiday List 1 - [$holidaylists1_id] : |
Holiday List 2 - [$holidaylists2_id] : |
Opening Times |
---|
Opening Times 1 - [$openingtimes1_id] : |
Opening Times 2 - [$openingtimes2_id] : |
Opening Times 3 - [$openingtimes3_id] : |
Opening Times 4 - [$openingtimes4_id] : |
Opening Times 5 - [$openingtimes5_id] : |
Opening Times 6 - [$openingtimes6_id] : |
Opening Times 7 - [$openingtimes7_id] : |
Opening Times 8 - [$openingtimes8_id] : |
Destination Numbers |
---|
Destination Number 1 - [$cnumbers1_id] : |
Destination Number 2 - [$cnumbers2_id] : |
Destination Number 3 - [$cnumbers3_id] : |
Destination Number 4 - [$cnumbers4_id] : |
Destination Number 5 - [$cnumbers5_id] : |
Destination Number 6 - [$cnumbers6_id] : |
Destination Number 7 - [$cnumbers7_id] : |
Destination Number 8 - [$cnumbers8_id] : |
Users Profiles |
---|
Users Profiles 1 - [$usersprofiles1_id] : |
Users Profiles 2 - [$usersprofiles2_id] : |
Users Profiles 3 - [$usersprofiles3_id] : |
Users Profiles 4 - [$usersprofiles4_id] : |
Lists |
---|
List 1 [$lists1_id] : |
List 2 [$lists2_id] : |
List 3 [$lists3_id] : |
List 4 [$lists4_id] : |
Texts |
---|
Text 1 - [$text1] : |
Text 2 - [$text2] : |
Text 3 - [$text3] : |
Text 4 - [$text4] : |
Demo Scenario
To help you understand, let's consider a simple demo scenario where the system is shared by several branch offices.
Imagine, you need to build an IVR application which needs to do the following on the Munich service number:
- During office hours of the Munich branch
- play a welcome prompt "Welcome to our Munich branch"
- Ask the caller to press 1 for sales and 2 for technical support
- Connect to either sales or technical support, depending on the choice the caller makes
- Outside of Munich office hours or on German Holidays, play a prompt with the opening times of the Munich branch
You might build the application a little like this:
Then, a week later, you get a request to build the following application for the Amsterdam branch service number:
- During office hours of a branch in Amsterdam
- play a welcome prompt welcoming the caller to the Amsterdam branch
- Ask the caller to press 1 for sales and 2 for technical support
- Connect to either sales or technical support department in Amsterdam, depending on the choice the caller makes
- Outside of Amsterdam office hours or on Dutch Holidays, play a prompt with the opening times of the Amsterdam branch
You copy the application, and change the following:
- Change the opening times and holidays to the Amsterdam and Dutch opening times and holiday lists
- Change the welcome and closed prompts to the prompts for the Amsterdam office
- Change the destination number used in the connect objects for Sales and Support
Then a week later, you get a request to build the same application for the London branch ...
Is there a Better Way?
The good news is: yes, there is!
You only have to build the application once, and you can re-use the application for all three service numbers.
Here's what to do:
Use Variable Objects
Variable Objects in the jtel IVR are used to execute the same functionality as "normal" objects, but based on the contents of a variable.
Let's look at the Play Voice and the Play Voice with Variable ID objects:
You can see, they look the same, except for the gear wheel on the variable object.
Let's look inside:
The Play Voice object provides you with drop-down lists where you can select the prompt you require from all prompts you have uploaded to the system.
This is a fixed value, which is saved with the application.
The Play Voice with variable ID object provides you with a field where you can type in anything.
So what do you put here?
- You put the ID of the prompt you want to play. For example, to play the same prompt as in the Play Voice object, you need the ID of the "JTEL - Willkommen" prompt, which in our case happens to be 2.
- You can get the ID as shown in the following screenshot:
So putting the value 2 in the ID - Voice Prompt field will play "JTEL - Willkommen".
Use Variables
You can also use variables here. That's where these "variable" objects get their names.
Let's imagine, you have declared a variable $myPrompt and assigned this the value of 2.
Then you would get the same result.
Populate the Variables using the Service Number Parameters
Now for the trick with the service number parameters.
When you setup the service number parameters, what actually happens is the system declares variables for you before the application is started.
So for example, if you setup the following in the service number:
Prompts | Content |
---|---|
Prompt 1 - [$announcement1_id] : | JTEL - Willkommen |
What actually happens, is the jtel system assigns the variable $announcement1_id (shown on the left) the value of the ID of the JTEL - Willkommen prompt when the routing application is started.
You therefore get a variable called $announcement1_id which in this configuration contains the value 2.
Similarly, setting up these two parameters:
Holiday Lists | Content |
---|---|
Holiday List 1 - [$holidaylists1_id] : | Feiertag Bayern |
Holiday List 2 - [$holidaylists2_id] : |
Opening Times | Content |
---|---|
Opening Times 1 - [$openingtimes1_id] : | Munich Office |
Opening Times 2 - [$openingtimes2_id] : |
would result in the following variables being setup:
- $holidaylists1_id Will contain the ID of the holiday list for Bavaria
- $openingtimes1_idWill contain the ID of the opening times list for the Munich Office
Finished Application
The finished application will look something like this:
Variable Objects
Let's look inside the variable objects. As you can see, these all reference parameters (variables) defined in the service number parameters.
Branch Opening Hours
Welcome
Closed
Connect Sales
Connect Support
Service Number Parameters
And finally let's see the relevant service number parameters.
Prompts | Content |
---|---|
Prompt 1 - [$announcement1_id] : | JTEL - Willkommen |
Prompt 2 - [$announcement2_id] : | JTEL - Opening Times Munich |
Holiday Lists | Content |
---|---|
Holiday List 1 - [$holidaylists1_id] : | Feiertag Bayern |
Holiday List 2 - [$holidaylists2_id] : |
Opening Times | Content |
---|---|
Opening Times 1 - [$openingtimes1_id] : | Munich Office |
Opening Times 2 - [$openingtimes2_id] : |
Destination Numbers | Content |
---|---|
Destination Number 1 - [$cnumbers1_id] : | Munich Sales () |
Destination Number 2 - [$cnumbers2_id] : | Munich Support () |
Other Service Numbers
The other two service numbers would be configured in the same way - using the same routing application, but different sets of parameters for the prompts, opening times and holiday lists, and connect destinations.
Conclusions
Using "variable" objects enables you to create generic, re-usable applications.
You can parameterise these applications using assignments to variables using the service number parameters.
This makes for quick and easy re-use of applications allowing you to specify variable content for:
- The language used
- ACD groups used in the routing
- IVR statistics markers
- Opening times
- Holidays
- Destination numbers
- User profiles
- TTS engines
As we continue to develop the system, watch out for new parameters. And when you see one, you can be sure there will be an IVR object to match!
Try it out - have fun and good luck with it!