Twilio recently added the ability to use the
In this post I’ll show you how you can use the
Create A Call Queue
Before we get started looking at a Queue wait experience, lets quickly review how you create a call Queue in the first place.
The
In this case, when the caller drops into the queue, Twilio will make a request to the URL specified in the waitUrl parameter and use the TwiML returned to create the callers queue experience. When the TwiML returned from the waitUrl completes execution, if the caller is still in the queue Twilio will make another request to the waitUrl, allowing you to dynamically change the experience the caller is having while the wait in the queue.
Now that you know how to create a queue and create a custom wait experience, lets look at how you can use the
Just Call Me Back
No one really wants to wait on hold, so why make them. While sitting in the queue, why not let the user choose to have you call them back? Using
Using the
Let Me Help You Help Me
Sometimes you have well-defined workflows that help customers walk through troubleshooting a problem, or get the information they are calling about. Instead of just having customers listen to hold music, why not make use of queue wait time to gather more information. Doing this lets the caller continue to moving closer to talking to an human, while at the same time providing valuable information that can help identify a resolution faster once they are talking to a representative.
For example lets say every time you get a support call from a customer you will need to get a model number in order to help them. You can use the time the caller is in the queue to gather this. In the TwiML below, I am prompting the user to let them know we are going to be asking questions while they wait, then I
As its name suggestions, the GatherModelNumber endpoint uses
As the caller enters information, the information survey can dynamically change based on the information gathered to date. For example, once I know the model number I can change the information survey to ask only questions that are relevant for that model.
Shall We Play a Game?
Finally, sometimes the best option is just to give customers something to do while on hold, like play a game. A simple game can be an easy way to help pass the time for customers. To show this, I’ve written a sample that shows how to create a simple pub-style trivia game that callers can play while waiting in the queue. You can try the sample out here: http://quizshow.azurewebsites.net
The game is simple. The IVR asks the caller five different trivia questions and scores them at the end. The image below shows the basic call flow for the game.
While I’m not going to detail the entire app in this post since the actual code is relatively straight forward, there are some interesting parts of the call flow to point out.
First, when a caller initially drops into the queue, the IVR performs some basic checks to try to determine if the caller should even give them the option to play the game. This includes looking at the current average wait time of callers in the queue, as well as the position of the caller in the queue, both of which are given to me as parameters each time Twilio requests the waitUrl. If these values are below a certain threshold then I can assume the callers wait time will be short and therefore it does not make sense to have them play the game.
Second, even if I determine that the caller is eligible to play the game, I still give them the option to opt out. Sometimes callers just want to listen to hold music.
Build A Better Queue
Adding
As always, we encourage you to do dig through the source code for the quiz show sample which you can get from GitHub, and try out our live demo by going to http://quizshow.azurewebsites.net.
Resources
- Unlock the Potential of Queue with the Press of a Button
- Walk through the Queue How To in XML, PHP and Python
- Watch the Quickstart Screencast
- Watch ‘How to Build a Customer Support Line with Queue”
- Check out the Twilio Queue Hack Pack For Python, on GitHub
- Build your own realtime Queue Dashboard
- See the difference the new Queue feature makes in the amount of code you have to write