VoiceGuide IVR Software Main Page
Jump to content

Setting Evaluate Expression

Recommended Posts

Hi VoiceGuide support team,

 

I'm a new voice guide user and have not much knowledge in scripting or SQL query. Would like to get some help here to accomplish the following scenario to complete my IVR system setup:

 

Post setup note:

This is a tele-enquiry system where the members call into the IVR to retrieve information such as their sales points, disitributor expiry date, incentive status, change password and etc. All the members are given their own user ID number and password to login into the IVR before proceeding to retrieving information.

 

Setup Call Flow1:

  1. caller call into IVR and get the main greeting and language selection
  2. After choosing the language selection, callers are given 3 directory options. When user press "1" it will go to another sub directory.
  3. Before proceeding to the sub directory, the system prompt the caller to enter their user ID number then follow by password (numeric).
  4. Based on the ID number and password enter, the IVR will look into the database and prompt the information accordingly.

Achievement:

I would like to design the script to enable VG to verify the caller user ID number and password and look into the database to prompt the information requested accordingly. If there's data and they are eligible to retrieve the information via IVR, then VG will prompt accordingly. If there's no data or not eligible to have the information prompt to them, then VG will prompt the no data or not eligible prompt. How can I design the script using Evaluate Expression?

 

Setup Call Flow2:

  1. caller call into IVR and get the main greeting and language selection
  2. After choosing the language selection, callers are given 3 directory options. When user press "1" it will go to another sub directory.
  3. Before proceeding to the sub directory, the system prompt the caller to enter their user ID number then follow by password (numeric). If the caller is first time caller and need to setup their password, they have to press "#" to access to this IVR level

Achievement:

I would like to have VG to ask caller to input their desire 6 digit password (numeric) twice to verify the number entered twice are the same. If not, the system will prompt them to re-enter again. How can I write a store procedure in SQL database?

 

I have attached along the vgscripts for your kind reference. Hope you can guide me along here.

 

Thanks!main1 - Working.vgs

 

Share this post


Link to post

I would like to design the script to enable VG to verify the caller user ID number and password and look into the database to prompt the information requested accordingly. If there's data and they are eligible to retrieve the information via IVR, then VG will prompt accordingly. If there's no data or not eligible to have the information prompt to them, then VG will prompt the no data or not eligible prompt. How can I design the script using Evaluate Expression?

 

If the SQL query ran by the database query module returns some data then the database query module will take a success path.

 

If the SQL query ran by the database query module does not return any data then the database query module will take a fail path.

 

Please see: http://www.voiceguide.com/vghelp/source/html/moddbquery.htm

 

This is probably the best approach to use.

 

Otherwise you can evaluate the Result Variables returned by the database query module in an evaluate expression module.

 

If you can post a vgEngine trace that captures the SQL query we can confirm what Result Variables are returned by the database query module.

 

 

 

I would like to have VG to ask caller to input their desire 6 digit password (numeric) twice to verify the number entered twice are the same. If not, the system will prompt them to re-enter again. How can I write a store procedure in SQL database?

 

 

If you want caller to enter number twice you need to use two "Get Numbers" type modules and then compare whether the numbers entered in both modules are the same.

 

eg. If you have two "Get Numbers" type modules titled: GN1 and GN2 then to compare the entered data you can use the Evaluate Expression module with this expression:

 

"$RV[GN1]" = "$RV[GN2]"

 

If they are the same then the success path will be taken from the Evaluate Expression module.

Share this post


Link to post

Hi,

 

I can confirm the database is working and there's results return. Kindly find attached log file for your reference. I would like to learn how to write an Evaluate Expression to use the User ID number and Password entered by the caller and prompt for other information based on the information stored in the database. For example in database shows:

 

User ID = 0000000001

Pw: 123123

PV point = 10,000

Expiry date = 12 Jan 2014

Incentive = Null

Commission = 12,000

 

Based on the caller input, VG will check on the entered User ID and read the following information. Right now, my script will not read the PV point and etc based on the user ID entered by the caller. Please assist me.

 

As for the compare value, I got the concept here. Can you guide me how to make a SQL insert statement for this step? The database field name is disaccesspin.

 

Thank you!

 

0613_1823_vgEngine.txt.zip

Share this post


Link to post

Right now, my script will not read the PV point and etc based on the user ID entered by the caller. Please assist me.

 

vgEngine trace shows that your script makes 4 database queries. (shown below)

 

None of the SQL queries shown below seem to retrieve the "PV point" field."PV point" field.

182421.449  6  88  30 state [Check_DRN] DB Query
182421.450  6  88  30       rv    replace start [SELECT discode FROM v_ihqmst WHERE discode = '$RV[Enter_DRN]']
182421.450  6  88  30       rv    replace end   [SELECT discode FROM v_ihqmst WHERE discode = '0000000001']

182428.886  6  88  30 state [Check_PIN] DB Query
182428.886  6  88  30       rv    replace start [SELECT disaccesspin FROM v_ihqmst WHERE disaccesspin = '$RV[Enter_PIN]']
182428.886  6  88  30       rv    replace end   [SELECT disaccesspin FROM v_ihqmst WHERE disaccesspin = '123123']

182436.807  6  88  30 state [Get_DRN_1] DB Query
182436.807  6  88  30       rv    replace start [SELECT discode, disaccesspin FROM v_ihqmst WHERE discode = '$RV[Enter_DRN]']
182436.807  6  88  30       rv    replace end   [SELECT discode, disaccesspin FROM v_ihqmst WHERE discode = '0000000001']

182436.827  6  88  30 state [Get_DRN] DB Query
182436.827  6  88  30       rv    replace start [SELECT discode, disaccesspin FROM v_ihqmst WHERE disnic = '$RV[Enter_DRN]']
182436.827  6  88  30       rv    replace end   [SELECT discode, disaccesspin FROM v_ihqmst WHERE disnic = '0000000001']

Perhaps you need to modify some of these SQL to retrieve this "PV point" field?

 

Once you have retrieved the "PV point" value you can use the $RV (that is holding that retrieved data) in a Say Number module to speak the number.

Please see: http://www.voiceguide.com/vghelp/source/html/modsaynumber.htm

 

 

As for the compare value, I got the concept here. Can you guide me how to make a SQL insert statement for this step? The database field name is disaccesspin.

 

Are you referring to this compare:

 

"$RV[GN1]" = "$RV[GN2]"

 

?

 

There is no SQL involved here. The statement above would be used in an Evaluate Expression type module.

Please see: http://www.voiceguide.com/vghelp/source/html/modevalexpr.htm

Share this post


Link to post

Hi,

 

I'm confused here. Pleae allow me to elaborate more on the conditions which I want to have in VG.

 

  1. I have design VG to prompt caller to enter their member ID number (which is the value stored in the databse field name discode) first using [capture entered number | Module Name = Enter_DRN] modules and on success, go to [query database | Module Name = Check_DRN] module, which the [query module] have the following statement: SELECT discode FROM v_ihqmst WHERE discode = '$RV[Enter_DRN]'
  2. After verifying the entered member ID number by the [query database] module, VG will prompt caller with few IVR options which uses [Play Sound File] module which allow caller to press "1" for Distributor info, press "2" for PV enquiries, press "3" for bonus enquiries and etc... Caller will press "2" to retrieve their PV enquiries.

  3. After pressing "2", VG prompt caller to press "1" for Personal PV, "2" for Group PV and "3" for Qualified Groups PV. In this scenario, the caller will press on "1" to retrieve Personal PV.

  4. When caller press "1" to retrieve their PV status, based on the entered member ID number (which is the value stored in the databse field name discode) and taken by [capture entered number] module previously, I run another [query database | Module Name: Get_PV] module, which the query statement is SELECT enqpv FROM enq_updinfo WHERE discode = '$RV[Enter_DRN]'

  5. I now use [say numbers] module to say the PV points to caller by entering $RV[Get_PV_enqpv] and uses say in digits.

Can you tell me where i go wrong? The system seems like not reading the digits out.

Share this post


Link to post

 

The system seems like not reading the digits out.

 

 

Is the problem that a 'Say Number' module is not saying the number that you expect it to say?

Share this post


Link to post

Yes. The system did not say any numbers out. It just prompt my voice file and that's all. It should be prompting my voice file and follow by the say digits.

Share this post


Link to post

Can you please post the vgEngine trace capturing the call and indicate title of the Say Number module that is not saying what you expect it to say.

 

The previously posted trace "0613_1823_vgEngine.txt.zip" did not show that any Say Number type modules were used.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×