kaangyib Report post Posted 06/13/2013 06:38 AM 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: caller call into IVR and get the main greeting and language selection After choosing the language selection, callers are given 3 directory options. When user press "1" it will go to another sub directory. Before proceeding to the sub directory, the system prompt the caller to enter their user ID number then follow by password (numeric). 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: caller call into IVR and get the main greeting and language selection After choosing the language selection, callers are given 3 directory options. When user press "1" it will go to another sub directory. 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
SupportTeam Report post Posted 06/13/2013 09:54 AM 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
kaangyib Report post Posted 06/13/2013 10:33 AM 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
SupportTeam Report post Posted 06/13/2013 10:47 AM 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
kaangyib Report post Posted 06/14/2013 05:22 AM Hi, I'm confused here. Pleae allow me to elaborate more on the conditions which I want to have in VG. 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]' 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. 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. 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]' 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
SupportTeam Report post Posted 06/14/2013 05:30 AM 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
kaangyib Report post Posted 06/14/2013 06:05 AM 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
SupportTeam Report post Posted 06/14/2013 08:28 AM 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