D
D
DoubleWish2016-11-27 15:22:59
JavaScript
DoubleWish, 2016-11-27 15:22:59

Voximplant and ACD logic?

Hello. I'm fighting in voximplant for the second week, because the documentation either briefly or does not disclose some points of the application logic. If I'm wrong, of course, correct me and don't throw stones at me.
We do cross processing of applications (from forms on the site and by phone). There is a common stack where current clients are displayed (by logic, those who left a request on the site did not get through or were "controversial" (they remained at this stage of processing, because some controversial moment of discussion arose and they should call back)). After processing at this stage, all clients go to other stages, etc.
So here's the point in determining "did not get through" and their distribution, so that it is logical. I can't find the logic in the module's ACD allocation. If a person stood in line, then threw off or clicked on an asterisk (a la call me back), then he has not yet been assigned to a specific operator. Through the HTTP API, we must receive it as a client with a conditional status of "did not get through" and distribute it to operators. (Or is it not already?)
Logically, it would be correct to make the receipt of these "did not call" immediately on the stack to the first released operator upon request to end the call. with a client. But then the following question arises - if 5 operators were busy and 30 people called at that moment, one operator was released - and immediately received 30 tasks for processing?
Tell me how this is implemented through VoxImplant, because I easily implemented the rest of the logic, but at that moment I sank.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
G
grigoryvp, 2016-11-28
@grigoryvp

Hey!
ACD module works at the behest of the developer. You receive a call, and when you decide in the code that you need to distribute it to the operator, you call enqueueACDRequest to place the call in the queue. When the operator is released, the call object will receive an OperatorReached event in response to which you can enable audio streams between the user and the operator. Or you can synthesize something for the operator beforehand. Or make some kind of logic. Basically, it's up to you.
"I got in line, and then threw it off" - is solved in your own code. If the user hung up before you connected him to the operator, then the corresponding event comes to the call object. In response to which you can remove the request from the queue. Or you can not clean it up, wait for the operator’s response and synthesize for him that “they called you here, but they didn’t get through. Call the user back now?”
How it works is up to you to decide in javascript. Full control, any logic convenient for you. By the way, we recently made a new series of articles devoted to the work of ACD. I wrote it myself! Evaluate if you still have questions - write, I will try to help you, and improve our articles with documentation!

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question