Good customer service is one of the critical components of the successful business these days. Many interactions with customers happen over the phone when they making calls to company's call center and, since it's rather expensive to keep a big number of agents in the call center, customers have to spend their time in a queue listening to some music and waiting for the answer. Fortunately, there is a solution for this problem - queue with callback function. IVR tells customer that he can press some key (for example, # or *) to hangup the call, but stay in the queue. After customer's position in the queue was reached, system connects agent with the customer by calling customer's number. It's rather expensive module in case of Enterprise call center solutions, but with VoxImplant any developer can implement this type of queue in a few minutes.
You need to read our "How to build a call queue" article before reading this tutorial, since we will rely on some terms, code and entities described in the post.
First of all, sessions that use ACD module can exists without active calls during 2 hours. Let's modify our scenario from the "Using ACD module for call queuing" post to enable callback function:
This scenario processes inbound calls, but sometimes developers would like to put a call in a queue from a callback form. It can be done using StartScenarios HTTP API request and additional code in the scenario:
It's also possible to make requests to the session using media_session_access_url and get queue position updates to display it to the customer.