ZeroPT
@ZeroPT

Voximplant и логика ACD?

Всем привет. Бьюсь в voximplant вторую неделю, так как в документации либо кратко, либо никак не раскрываются некоторые моменты логики приложения. Если я не прав, конечно, поправьте и не закидывйте камнями.

Мы делаем скрещенную обработку заявок (с форм на сайте и по телефону). Есть общий стек, где отображаются текущие клиенты (по логике которые оставили заявку на сайте, не дозвонились или "спорные" (они остались на этом этапе обработки, потому что возник какой-то спорный момент обсуждения и ему должны перезвонить)). После обработки на этом этапе все клиенты уходят на другие этапы и т.д.

Так вот суть в определении "не дозвонившихся" и их распределении, чтобы это было логично. Я не могу найти логику в распределении ACD модуля. Если человек встал в очередь, потом скинул или нажал на звездочку (а-ля перезвоните мне), то он ещё не был распределен на конкретного оператора. Через HTTP API мы должны получить его как клиента с условным статусом "не дозвонился" и распределить на операторов. (Или уже не так?)

По логике правильно было бы сделать получение этих "не дозвонившихся" сразу в стек к первому освободившемуся оператору по запросу на окончание звонка. с клиентом. Но тут возникает тогда такой вопрос - если 5 операторов были заняты и в этот момент позвонило 30 человек, один оператор освободился - и получил сразу 30 задач на обработку?

Подскажите, как это реализовывается через VoxImplant, потому что всю остальную логику с легкостью реализовал, а в этом моменте просел.
  • Вопрос задан
  • 306 просмотров
Пригласить эксперта
Ответы на вопрос 1
grigoryvp
@grigoryvp
Привет!

ACD модуль работает по указке разработчика. Вы принимаете звонок, и когда вы в коде решили что надо его распределять на оператора - вызываете enqueueACDRequest для помещения звонка в очередь. Когда освободится оператор, объекту звонка придет событие OperatorReached в ответ на которое вы можете включить аудиопотоки между пользвателем и оператором. А можете предварительно что-нибудь оператору синтезировать. Или сделать какаую-нибудь логику. Вообщем на ваше усмотрение.

"Встал в очередь, а потом скинул" - решается в вашем же коде. Если пользователь повесил трубку до того, как вы его соединили с оператором, то объету звонка приходит соответствующий эвент. В ответ на который вы можете убрать запрос из очереди. А можете не убирать, подождать ответа оператора и синтезировать ему что "тут вам звонили, но не дозвонились. Перезвонить пользователю сейчас?"

Как что работает вы сами решаете в джаваскрипте. Польный контроль, любая удобная вам логика. Кстати, мы недавно сделали новый цикл статей, посвященных как раз работе ACD. Сам писал! Оцените, если все еще будут вопросы - пишите, постараюсь и вам помочь, и наши статьи с документацией улучшить!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект