Маленькі секрети великого кол-центру: предиктивный обдзвін

Ми продовжуємо розповідати цікаві замальовки з життя колл-центрів, телекомів та хмарної телефонії. Чи траплялося вам відповідати на дзвінок і чути «зачекайте, оператор зараз зв'яжеться з вами»? Перша думка, яка приходить в голову зазвичай нецензурна, друга — «вони що, вкрай знахабніли?!?». Отримав такий дзвінок користувач — жертва хитрої технології «предиктивного викликів», яка дозволяє колл-центрів економити сотні годин, але іноді призводить до кумедних результатів. Під катом я розповім про цю штуку детальніше і покажу, як вона може бути реалізована в кілька рядків коду нашої хмарної платформі voximplant



Що таке предиктивный обдзвін?



Часто перед колл-центром ставиться завдання обдзвонити безліч клієнтів. Великі компанії люблять поспілкуватися з широкою аудиторією, щоб розповісти їм про нові цікаві пропозиції, запитати про якість обслуговування або повідомити що-небудь непотрібне. Під час таких дзвінків кілька десяток операторів колл-центру телефонують десятки і сотні тисяч людей. При цьому значний час витрачається на набір номера і очікування відповіді абонента, велика частина яких буде не доступна, чи не візьме трубку. Колл-центри про цю проблему знають, і застосовують безліч цікавих прийомів, щоб скоротити втрати часу. А ще краще — взагалі ці втрати усунути.

Один із способів називається «предиктивный дзвінки», він же PDS, «Predictive Dialing System». Ідея полягає в тому, що оператори нікому не дзвонять — замість них людям дзвонить програма, і у разі відповіді миттєво комутує з дожидаючи оператором. «Предиктивность» полягає в тому, що програма знає скільки операторів зараз вільно, скільки зайнято, середній час розмови, безліч інших чинників — і веде обдзвін таким чином, щоб, з одного боку, максимум операторів були зайняті, а з іншого боку — щоб мінімізувати ситуації, як описано до ката: коли людина відповідає, а вільного оператора немає.

Як роблять такі штуки



Можна самим налаштувати asterisk або freeswitch — справа складна, цікава, але важка аж до повної неможливості. Можна скористатися хмарної платформою — такий, як voximplant. Наша платформа дозволяє ініціювати вихідні дзвінки до клієнтів і операторам javascipt коду, при цьому є можливість дзвонити операторам прямо в браузер або мобільний додаток, використовуючи наш webrtc/flash SDK або мобільний SDK. З точки зору хмарної платформи, дзвінок як клієнту, так і оператору це одна строчка javascript коду:

var call = VoxEngine.callPSTN(data.phone_number);


Через деякий час з дзвінком що-небудь трапляється: наприклад, людина на тому кінці дроту відповідає. Або скидає дзвінок. Або оператор стільникового зв'язку включає голосову пошту. Або дзвінок обривається. Або лягає мережа оператора… Варіантів багато, на них викликаються обробники, в яких javascript коду потрібно прийняти рішення, що з цим дзвінком робити далі. У разі викликів, з javascript доступний об'єкт VoxEngine, з допомогою якого дзвінок передається в чіпкі лапки нашої автоматики, яка з'єднає дзвінок з вільним оператором:

VoxEngine.CallList.reportProgress(true);
var request = VoxEngine.enqueueACDRequest(data.queue_name, call.callerid());
request.addEventListener. (ACDEvents.OperatorReached, function (e) {
VoxEngine.sendMediaBetween(e.operatorCall, call);
e.operatorCall.addEventListener. (CallEvents.Disconnected, function(e) {
VoxEngine.CallList.reportResult(true, VoxEngine.terminate);
});
});


Для забезпечення стабільної роботи архітектура voximplant дотримується принципу «один сценарій javascript — один розмова». Замість того, щоб ініціювати тисячі вихідних дзвінків з javascript коду у нас є спеціальна HTTP API функція, яка отримує на вхід ім'я javascript сценарію і ім'я черги, після чого запускає механіку предиктивного обзовна і починає паралельно викликати потрібну кількість сценаріїв javascript. Передане в аргументі queue_id ім'я черги є ознакою того, що потрібно запускати саме предиктивної дзвінки (саму чергу можна створити в особистому кабінеті).

Замальовки з полів



Перша версія предиктивного викликів спиралася на дуже прості формули «середнього відсотка відповіді», «середньої тривалості розмови» і так далі. На жаль, такий підхід був дуже нестійкий до «сплесків» відповідей і абонентам доводилося чути «почекайте, оператор зараз зв'яжеться з вами».

Для виправлення ситуації ми озброїлися MathCAD і побудували математичні моделі роботи колл-центру. Як показали розрахунки, система починає оптимально працювати, коли в обдзвону беруть участь 30 операторів або більше. При це на перших ста дзвінках йде «розігрів» і збір інформації для матмодели, після чого обдзвін виходить на «робочу потужність» і навантажує операторів колл-центру на 80-90%.

У рамках статті я не заглиблювався в технічні деталі, обмежившись популярним екскурсом. На практиці працює javascript код викликів це близько ста рядків, більша частина яких займається звітами про минулі події та обробкою різноманітних помилкових ситуацій. Плюс до цього, багато клієнтів використовують функції «тонкого налаштування» викликів. Наприклад, для операторів можна задати «skill set» — на які теми готовий спілкуватися цей оператор. Якщо у нашого клієнта є інформація про користувачів, то він може «направляти» користувача до тієї чи іншої групи операторів, щоб підвищити шанси на продуктивне спілкування. Робиться це через створення різних черг.

Більш докладно з технічною частиною ви можете ознайомитися в наших статтях: раз і два. Ну і звичайно, якщо у вас є питання — я з цікавістю відповім на них у коментарях.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.