📜 ⬆️ ⬇️

Sophisticated javascript call center


A well-made call center benefits: confirms orders, recalls conferences and the delivery of ready-made food. In Voximplant we have the ACD module and the concept of queues, with their help on the platform you can assemble a simple solution for the distribution of calls in a couple of hours. Why is “simple”? Indeed, complex solutions are very different from each other, it is impossible to make a module that would fit "everything and immediately out of the box." However, there is a proven scheme in combat, according to which clients implement the logic of queues on their backend, and our cloud helps with incoming call routing and analytics. Under the cut a small step-by-step instruction: how and why to make call centers for a hundred operators "for themselves." “Work scheme, info 100%” (s)

Healthy man tandem: backend + web client


There are no strict backend requirements, you can use the conditional Digital Ocean (although at the time of this writing there were already problems with access to DO, but let's not talk about sad things) with node.js on board. A web client (or an operator application) can be with one ready button and must keep connection with the backend via a web socket or HTTP requests. How will this work?

Cloud - telephony center


  1. You create a cloud - based VOsimplant JS script that accepts incoming calls. Each call raises the Started event, which has an accessURL property. The field contains the URL for communicating with the JS session of the incoming call.
  2. In addition to the Started event, an incoming call also triggers a CallAlerting event, in which there is information about the call: the caller's number, the number to be dialed, and other necessary things.
  3. Cloud JS-session makes a request to your backend using httpRequestAsync . In the request we transmit information about the call and accessURL . While there is a request and the backend “chews” on it, you can play music for the client, ask a question using speech synthesis, turn on mp3 with notification / advertising and in every possible way keep the caller from being bored.
  4. The backend receives a request and searches for a free operator, i.e. those who in their client clicked on the ready button and are not talking to anyone now. When the operator is found (perhaps in five minutes), the backend makes a request for accessURL , and puts the operator’s contacts in the request: user id (if the operator is connected via WebSDK or Mobile SDK), SIP URI or cell phone number.
  5. Cloud JS-session receives the event HttpRequest with the name / number of the operator, calls the operator and connects it with the client.
  6. All information about the interaction with the operator sends the script to the backend: it was possible / failed to reach the operator who hung up after the conversation - the operator or the client, all that can be useful for analyzing call center operation and determining the availability of operators. The backend receives this data and, on their basis, constantly “marks” the operators: how quickly they answer, who does not answer, who and how much to ban for inactivity. These labels are constantly updated, so the backend always knows what is happening with the operators.

You can do everything from scratch for a couple of hours, while you will have full control over the queues of calls, with the necessary logic and your requirements. Of course, this is a solution framework, we have already said about the nuances that each business has its own. Taking this approach as a basis, you can implement interesting solutions. For example:

"Your manager"


A good feature of a complex call center is when a client is switched to “his” manager, who leads the client from the very beginning. This is convenient, because the client doesn’t have to explain every little detail from scratch, etc., the personal manager probably already knows everything, plus this manager knows how to work with the client as efficiently as possible.
')
Since the CallAlerting event contains information about who is calling the call center, the backend can check if the incoming number has an assigned manager and, if so, then associate with it. In the case of a vacation / illness / dismissal manager, you can synthesize a short explanation and connect the call with another manager / operator. If the incoming number does not yet correspond to any manager, then after talking with the operator, you can ask the client the question “Do you want this manager to always answer the calls?”, Then recognize the answer (“yes” / “no”) and send the value to backend that will “remember” the choice of the client.

Own Manager works well for user loyalty, and if the attachment process is also automated, this eliminates the error of manually assigning the wrong specialist.

Need more operators


It happens that during peak hours the operators do not cope with the incoming flow: customers in this case either do not dial or wait a long time for a response. Both options - so-so. The problem can be solved organizationally: hire more operators and hope that the cost of new employees will pay off with customer loyalty. But you can also come from the other side: during the load on the call center, you can also direct calls to technical support and other specialists. It turns out the situational "extension" of the call center.

For this, the phones of “spare” employees are put on the backend and a threshold response time is set, for example, 1 minute. If the backend within 1 minute did not find any free operator, then the call goes to one of the emergency numbers. How many spare numbers you can use at the same time, what hours you cannot transfer calls to, whether to limit the number of calls to a spare number and other tuning, again, you can set it on the backend; our cloud will do its job anyway under the guidance of your javascript code.

Another couple?


Call centers are becoming complicated because they change over time: the market places new demands on communication, legislation changes, competition is going on, and all sorts of interesting things happen all the time. There are many different call centers on the market, and this is good! The flexibility of technology makes life easier for business and delights customers. If you have questions and comments on hypothetical / real examples of call centers, feel free to write in the comments - we will discuss. Stay in touch and do not be afraid to soar in the clouds;)

Source: https://habr.com/ru/post/353884/


All Articles