IVR stands for “Interactive Voice Response.” Usually it actually refers to“keypress responses.” Typical examples of IVRs are political polling calls, customer service satisfaction surveys, appointment scheduling or confirmation, and call routing auto attendant. One of the simpler things we can do with the IVR Designer is construct a phone tree for incoming calls to your small business. In this example, we will greet the customer, offer them three routing possibilities, and offer a recording option if our agents are not available. The finished IVR will look like this. Below, we will discuss the tags and how they work: <dialplan name=”root”> <play name=”play_greeting” type=”tts” voice=”female2”> Hi. Welcome to ABC Company. </play> <menu name=”menu_main” maxDigits=”1” timeout=”3500”> <play name=”play_main” type=”tts” voice=”female2”> Press 1 for Sales. Press 2 for Support. Press 3 for Billing. </play> <keypress name=”kp_sales” pressed=”1”> <stash name=”stash_sales” varname=”dept”>Sales</stash> <transfer name=”transfer_sales” callerid=”${call.callerid}” whisper=”Sales Call” timeout=”20”>2135551212</transfer> </keypress> <keypress name=”kp_support” pressed=”2”> <stash name=”stash_ support” varname=”dept”>Support</stash> <transfer name=”transfer_ support” callerid=”${call.callerid}” whisper=”Support Call” timeout=”20”>2135551212</transfer> </keypress> <keypress name=”kp_ billing” pressed=”3”> <stash name=”stash_ billing” varname=”dept”>Billing</stash> <transfer name=”transfer_ billing” callerid=”${call.callerid}” whisper=”Billing Call” timeout=”20”>2135551212</transfer> </keypress> </menu> <play name=”play_leaveMessage” type=”tts” voice=”female2”> All of our agents are busy helping other customers. If you would like us to call you back, please leave your message after the beep, and press pound when finished. </play> <record name=”record_message” varname=”custMessage”> </record> <hangup name=”hangup_recording” /> </dialplan>
- The “Dialplan” is the root tag – every CallFire IVR is contained by a Dialplan tag.
- The first “Play” tag is simply the greeting – it doesn’t ask questions or get back responses. A play tag can play a pre-recorded sound file or a text-to-speech (tts) voice.
- The “Menu” tag acts as a “container” for a question and its answers, or an instruction and the various possible keypress responses. The menu tells the IVR engine how many digits to expect as a response (maxDigits=”1”). The “Timeout” attribute, in milliseconds, says how long to allow for a response – 3500 milliseconds equals 3-1/2 seconds.
- The Menu tag MUST contain at least one Play tag (to explain what is required at that point) and one keypress (to get back at least one response). In our example, the “play_main” explains the call routing options.
- Each “Keypress” tag gets back the response and contains two dependent tags: a Stash tag to save the department name in the report (so we can track which department had the most calls that day) and a Transfer tag to actually transfer the call.
- Note that all three Stash tags have the same variable name (“dept”) – this serves as a header name in the report for the value (“Sales”, “Support”, “Billing”).
- The Transfer tag has several attributes. The variable reference “${call.callerid} sends the incoming callerID to our agent’s phone. The Whisper Sound plays for our agent so they know how to answer the call. The timeout limits how long we will ring the agent’s number.
- If the agent doesn’t answer within the timeout period (in this case, 20 seconds) the IVR will play the “All agents busy” message and ask the customer to leave a message.