Skip to main content

Importance of an IVR flow in a call center

One of the most overlooked factors in implementing a call center is the IVR flow. Though we have one of the most powerful cloud telephony platforms,KooKoo, which allows you to create any IVR flow, many of our Cloudagent customers choose to just welcome a caller and connect them to an agent.

An agent is the most costly resource in a call center and we should make judicious use of their time. A well designed IVR system does just that.

Callers usually call for some information. If an IVR is intelligent enough to identify and give the information to the caller, the callers will be happy and your agents will be free to handle the more important calls.

We will look at some good design principles for IVR design


  1. Personalize the IVR. Greet the caller by name.
  2. Reduce the depth of the menus. More than 2 is not suggested or your callers can get lost in a menu maze.
  3. Provide enough queues. Play queue position and provide option to caller to get a callback.
  4. Play contextual information instead of the default hold music while waiting in the queue.
  5. Observe patterns of menu usage and move most used menus up.
  6. If more than 80% callers are calling for a particular information,make that the default. Play the details first and take them to the menu later.
  7. Always provide an option for easy navigation to the top and previous menus. 
  8. Provide options for the caller to quit at any time and receive a callback.
  9. Have good defaults for noinput and nomatch for DTMF inputs.
  10. Do AB testing of multiple flows
Check out different solutions on our site Ozonetel and design the proper IVR flow for your customers.

Popular posts from this blog

First Post

In this blog, I will be talking about my experiences in trying to build a cloud telephony platform , KooKoo . Along the way I will also be talking about different design choices I made, good programming practices and the IVR domain in general. For technoratti: NNFJW8EW86C3

Integrating Arborjs with Angular to create a live calls dashboard

Arborjs  is a cool graph visualization library. Angular  is one of the best JavaScript frameworks and we have been using Angular in a lot of our front end development. When you handle millions of calls, proper visualization becomes very important. Without proper visualization, you can get lost in the mountains of data. So we spend a lot of time to come up with good visualizations to represent the data. Since we loved the cool way in which Arbor represented graph data, we could not wait to hook it up with Angular. Because of Angular's two way data binding, when you hook up Angularjs with Arbor.js you can get a dynamically updated visualization of graph data with cool animations. To give back to the community, we have put up the code online at Github . Basically we have created an Angularjs directive for Arborjs. Please feel free to fork the code and add extensions and use it for your own visualizations. The code is self explanatory with comments inline. Best way to get s

Mashing up Freshdesk with KooKoo for customer support ticket management

Sorry for the delay in writing a blog post. I have been caught up in too many things since last month(we are growing, so its all good :)) Anyway, this week I thought I will look at how we can use the latest rockstar startup from India, Freshdesk . Freshdesk, as most of you know is one of the best "Social Helpdesk" systems out there. I am sure most of you are already using Freshdesk to support your customers. In this blogpost I will explain how you can add telephony to the mixture. In particular I will show some code which you can use to : Welcome the caller by name Ask him to enter his ticket id Play out the ticket status Connect the caller to the correct agent handling the ticket. Luckily for us, Freshdesk has a very well defined API and it was a pleasure to work with it. The engineers were also very supportive and answered all my queries quickly. So lets get into the code directly. 1. First we need to get the caller information. For this we need to a