My Greeting

Hello my dear reader,

Welcome to my blog, which is dedicated to voice technologies. On its pages we will talk about the limitless world of telephony and network technologies.

We will focus on solutions and technologies in the area of IP-telephony (mostly on Cisco, but I will try to speak about the others too.). These are IP PBX based on Cisco Unified Communications Manager and Cisco Unified Communications Manager Express, Cisco contact centers, Cisco Voice Gateways, etc. Also, I will introduce you the news from the world of education: Cisco courses, my own developed training programs, our upcoming events, online learning.

If you have any questions regarding my posts, job or activities, please feel free to ask your questions. I will try to answer them when I have time.

Sunday, September 4, 2016

Post Call Survey (UCCE+CVP), part 2

Good morning,

Let's continue the conversation about Post Call Survey feature, which was begun in the first part. It is time to discuss the VXML-application, which, in fact, plays all survey questions, as well as saves the responses received from the client. As usual, here are screenshots and, of course, I will give  necessary explanations to them.

In our example, we discuss the case when the results of the survey are stored in the MS SQL database. The client is prompted to enter his/her account number, then this number is searched in the database. If the account number is found, the script writes received evaluations in the corresponding columns. The survey questions will be played using the TTS server (Text-To-Speech). A sample survey script created in Call Studio is as follows:

Let's examine the operation of this script and give a description of the properties of its elements. First,the script plays the message like "Thank you for participating in the survey." It is done with the element Audio_01. Here are its properties:

Next, the script asks the customer his/her five-digit account number. This step is processed with the element Digits_01:

If the customer has not entered a five-digit number, then the script plays the message "Re-enter account number" (element Audio_02), and then executes Digits_01 element again. If the client entered 5 digits of the account number, then the script checks if the databasehas any records with this number. In this example, we created a very simple database, where are 4 columns only: CUSTOMER_ID, Q1 (the result of the answer to question 1), and Q2 is Q3 (answers to questions 2 and 3, respectively). Here is how it looks like (this screenshot contains already visible evaluation, done by the client with Customer_ID of 12345):

Checking if the account number is in the MS SQL database is performed with Database_01 element. Its task is to count the number of rows in the database that contains the entered account number. In our example, we have only one row per each account number. Here is how we configured Database_01 element (search the value of Digits_01 element in the database PHYSICIANS,Table POST_CALL_SURVEY):

After execution of the Database_01 element its variable num_rows_proceeded will be equal to 0,if no rows have been found. And it will be > 0, if at least one record is found. In our example, for account number of 12345, num_rows_proceeded = 1. If the account number is found, the survey continues, if not found - the customer is requested to reenter his/her account number (Audio_02 -> Digits_01). This logic is done with the element Decision_01. Its properties contains a formula which evaluates to the value of the variable num_rows_proceeded. If it is 0, then go to Audio_02 exit, if it is greater than 0, go to Digits_02 exit and continue the survey. The formula is as follows:

If element data from element "Database_01" and varable name "num_rows_proceeded" does not equal (numeric) 0

If this expression is true, then we go to the exit Digits_02 of the Decision_01 element, otherwise, tgo to the exit Audio_02 and reenter your Customer_ID.

So, suppose that we have entered the correct five-digit account number and the survey continues. Next, the Digits_03, Digits_04 and Digits_05
elements play, in fact, the questions of the survey and collect the client's answers. We show, for example, the properties of Digits_03 element. Digits_04 and Digits_05 are configured similarly. 

Our survey ask a caller to use from 1 to 5 scale. But if our customer enter an incorrect digit (i.e 6,7,8 etc), then the script plays a message requesting to reenter evaluation (Audio_03, Audio_04 and Audio_05 elements).


After answering all the questions, the script plays "Please wait while saving your answers" message (element Audio_07):

Then Database_02 element stores of the survey results (values of the elements Digits_03, Digits_04 and Digits_05) and updates the table POST_CALL_SURVEY at the PHYSICIANS database. Here is an example of the Database_02 element configuration, note that you need to change the field Type to update, as it will make a record to the database.

Next, the script provides the client additional option to leave a voice feedback about contact center services. His/her speech will be recorded and saved as a wav-file. To make such a logic, first a menu asking the customer if he wants to leave an additional feedback is played. If yes, the customer should press 1, if not - then press 2. This functionality is provided with the element 2_Option Menu_01. Here are the properties:

If the caller presses 1, then he is offered to record his message after the beep. If he presses 2, then a good bye message  is played (Audio_06 element), then the call finishes. Let me show you the properties of Record_with_Confirm_01 element responsible for the recording and saving the message from the customer. In our example, the file is stored at the external FTP-server. But you can save it at the local disk of the CVP as well.

We discussed, perhaps, all the main points, which are used in this sample Post Call Survey VXML-application. Of course, you can modify it or make your own Call Studio project. For example, instead of saving the answers in the MS SQL database, send them via Email. But that's another story. :)

Hope this post was useful. ;) Have a nice Sunday, folks.


  1. Great... Excellent sharing.. This is very helpful for beginners. Read that provide me more enthusiastic. This helps me get a more knowledge about this topic. Thanks for this.hunt aws jobs in hyderabad