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?

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 ...

You start to think that this is all getting a bit repetitive ...

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:

Note: the actual IDs will almost certainly be different on different systems, as the ID is a chronological value assigned by the database software when the record is created in the database table.

So putting the value 2 in the ID - Voice Prompt field will play "JTEL - Willkommen".

Try it out!

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.

Try it out!

Hint: add a variable assignment object directly after the start object. Then change the ID value in the Play Voice with variable ID object to $myPrompt.

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:

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:

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


Get the idea?

You can now build the application just once, using variable objects for:

  • The opening times / holidays check object
  • The play voice objects
  • The connect to sales and support objects

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.

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.

Remember: you always need to specify the language parameter for the service!

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!

  • No labels