Use your own app to check if entered number is valid (V2)

We will create the following step-by-step scenario:

  • The IVR will ask the caller to enter a 6-digit reference number.
  • The number and call ID will be sent to an external app.
  • The external app will return a "valid" value or something else to the IVR.
  • If the reference is valid, the caller is routed into a queue and to an agent.
  • Otherwise the IVR offers something else.

First - data flow from IVR to application and back to IVR

The most important parts are sending the data from the IVR to your app and receiving the validity evaluation from that app back in babelforce to process the call. Here is how those parts are done:

In this example the IVR module sends the call.id and the entered number to an external app after the number has been captured. To enable this process, create a local Automation (under the tab "Automations") within your call flow module:

mceclip0.png

Note that we are using a Zapier webhook URL in our example to receive the data. Just use the URL of  whatever API endpoint you have set up to receive your babelforce IVR and call flow data.

Important: Use a "pre" Automation to execute the action to send data to your API and not a "post" one. "pre" means that the Automation is executed when the call enters the babelforce IVR module. With a pre-action you can be sure that when and if this module starts, the defined Action will be carried out. A post-action with setting "after" might not fire in certain situations, it is heavily dependent on how the module ends, timing effects on user input, call ending, etc. So always use a pre-action wherever possible.

Once this data arrives at Zapier, it looks like the following. Note that the caller entered "223355" on their phone keypad. And also you need the marked callID. The callID is used to put the data from the external app back into the IVR for the particular call.

2-_Data_arrives_at_my_app_from_IVR.png

Then the external app carries out a PUT request like the following to tell the IVR that the entered number was valid:

Example API PUT request using Postman

Note that the placeholder {{env}} below must be filled with the territory or custom environment you are operating on. For EU/EMEA, just enter "services":

3-_Data_my_app_send_back_to_IVR.png

 For more information on the babelforce API, head over to our API documentation  and have a look at our chapter on APIs

 

Second - using the valid result in the IVR to route the call

Create a Trigger like the following to test if the result in "refnumcheck" is "valid":

mceclip1.png

Note, the reason that ivr.mySection.refnumcheck exists here as an expression, is because it is initialized in the first welcome prompt player in the IVR flow, as follows.  

mceclip2.png

Use that Trigger in a Switch Node in your call flow. If the Trigger is evaluated as true, route the call to the module which handles the call distribution to the agents. If it is not true, the call flow will be routed to the alternative module (the after flow).

Here is the switch node:

mceclip3.png

 Third - the IVR call flow that handles the flow

Here is the full set of IVR apps used in the flow:

mceclip4.png

mceclip5.png

mceclip6.png

mceclip7.png

mceclip8.png

mceclip9.png

Here are the complete settings of the input reader app tab:

mceclip10.png

Important: The Input Reader must use an afterflow app, i.e. the call flow control must pass to another module and the remainder of the callflow is responsible for checking the actual validity of the digit string the caller entered.

These are all the main elements that are used for this integrated IVR call flow. Below is just a note to create a better IVR experience for the customer.

 

 

 

 

 

 

Improving the IVR experience

Nice no-input and no-match reprompting and handling will make your flow better and improve the performance, i.e. the % of times that the process successfully captures a valid number when the caller actually had one and wanted to use it.

Note that the prompts for no-input and no-match will be used automatically to handle cases where the user enters nothing on their keypad and also where the IVR receives less than 6 digits or more than 6 digits. It makes your flow and the customer experience better if these situations are modeled well.

Have more questions? Submit a request