Як ми навчилися 1С генерувати IVR-меню для Asterisk

Останні роки проникнення IP телефонії в бізнес відбувається семимильними кроками. З кожним днем з'являється все більше і більше можливостей. Співробітники можуть працювати не тільки в офісі, але і взагалі в будь-якій точці світу. Для того щоб підключити телефонію співробітникові достатньо декількох кліків, ніяких проводів і окремих розеток. Компанії використовують запис розмов, інтеграцію телефонії з CRM-системами. Кожна поважаюча себе компанія підключає багатоканальний номер або навіть платить за кожен дзвінок клієнта, використовуючи номер 8 800.

Давати клієнту свій стільниковий телефон стає поганим тоном, адже звернення клієнта повинно бути зареєстровано в CRM і гарантовано оброблено. Кожному співробітникові призначається внутрішній додатковий номер, і найчастіше, знаючи додатковий номер, можна швидко зв'язатися з потрібним співробітником. АТС знає, де зараз знаходиться співробітник, і зможе зв'язати клієнта з потрібним IP телефоном в офісі або мобільним телефоном, або навіть SIP софтфоном, встановленим на ноутбуці або смартфоні.

Але у прогресу є й інша сторона. Багатоканальний номер стає схожим на файрвол. Він захищає співробітників всередині компанії від дзвінків клієнтів. На шляху клієнта з'являється IVR-меню, або навіть багаторівневе меню IVR, і тільки не кажіть, що мій дзвінок дуже важливий для вас :)

Історія з життя
Трапилася зі мною неприємна історія. В одному з великих банків вирішувалося питання по одній угоді, і мені довелося пішки відвідати кілька відділень по зростаючій, поки я не знайшов потрібного фахівця. Мила дівчина вирішила багато моїх питань, витративши на це 4 години, протягом яких ми робили якісь документи, сканували мої договори, підписували якісь папірці. Я думав, що питання остаточно вирішено, але на наступний день до мене прийшов дзвінок, і мила дівчина попросила деякі додаткові дані. А через 2 тижні по угоді прийшов відмову банку. Ох, як я хотів передзвонити цій дівчині і з'ясувати в чому ж конкретно справа і як мені бути далі.

Спочатку я знайшов стільниковий телефон, з якого вона телефонувала, але телефон не обслуговується. Напевно, він тільки для вихідних. Потім я пішов на сайт, але там був тільки один номер 8800. Один номер на всю Росію!!! Звичайно, я подзвонив і прослухав багато разів про нові кредитні картки, про вклади, купу ще якоюсь реклами, але протягом 40 хвилин я так і не зміг потрапити на живу людину. Та й засумнівався, що мене зможуть з'єднати з Іванової К. (так було написано в підпис копія вірна одного з документів)
І мені довелося їхати на інший кінець Москви, щоб дізнатися внутрішній номер телефону дівчини, яка працювала до 15.00

І тут в моїй голові виникло 2 ідеї.

  • Не звертатися більше в цей банк
  • Розробити нову систему розумною маршрутизації для 1С і Asterisk




Ми вже багато років займаємося інтеграцією 1С і телефонії, і у нас було рішення для маршрутизації дзвінка на відповідального менеджера. Але це було незручно. Менеджер вибирався в картці клієнта, а в реальному житті з клієнтом часто працювали різні співробітники. Відповідальний повинен призначатися автоматично і змінюватися разом із розвитком відносин між компанією і клієнтом.

Фигачим основний модуль 1С

На прикладі мого спілкування з банком ми почали розробляти систему з модуля аналізу подій в 1С:CRM. В 1С реєструються всі контакти з клієнтом, виписуються рахунки і фінансові документи, зберігається електронне листування і записи телефонних розмов. Тому для початку ми повинні вибрати ті події, які мають для нас значення.



Зрозуміло, що кожна подія в CRM має свою вагу і термін дії. Якщо я тільки що виставив вам рахунок і відправив його по електронній пошті, а через годину ви передзвонюєте, то напевно мені. А якщо я вам виписував місяць тому, а сьогодні ви листувалися з хлопцями з саппорта, і фахівець Ваня дзвонив кілька разів, то ваш новий дзвінок точно не мені, а спеціалісту Вані.

У кожного клієнта своя 1C, і мені здається, правильно налаштувати типи подій, ваги і термін дії — найскладніше дію.



Після налаштування списку реєстрованих подій починається безперервний аналіз бази 1С регламентним завданням. З цим завданням добре справляється сервер 1С: Підприємства.


Для того, щоб у момент дзвінка сервер 1С не займався попередніми обчисленнями, у другій таблиці складається рейтинг з співробітників і телефонних номерів наших клієнтів. Рейтинг постійно перераховується після створення нового значущої події.



Коли клієнт подзвонить IPMATIKA з номера +7(495)926-26-44, то з дуже великою ймовірністю їм знадобитьсяЧулкова Євгенія, ну а якщо її немає, то Масленніков Дмитро зможе підтримати розмову.

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

Ми повинні скласти голосове привітання з заздалегідь підготовлених фраз, згенерувати аудіо файл, програти клієнту нове IVR-меню. Алгоритм роботи рішення повинен бути приблизно таким.



В якості сервісу синтезу мови ми вибрали два TTS рішення. Умовно безкоштовний
[Speech Kit](https://tech.yandex.ru/speechkit/cloud/) від Яндекса і
[VoiceFabric](https://voicefabric.ru) від Центру мовленнєвих технологій.
Для початку роботи потрібно отримати API ключ одне з сервісів і ввести його у формі налаштувань.



Мені дуже сподобалася генерація мови від компанії ЦРТ, але вона платна і коштує досить дорого для масової генерації, тому ми придумали технологію локального кеша. При встановленому режимі максимальної якості голосове меню генерується з повних пропозицій, а при включенні режиму максимальної економії ми запитуємо генерацію окремих слів.

Ви можете задати фіксовані частини голосового меню, наприклад, початок і закінчення у нас виглядає так:


Між ними при генерації вставляється список з 2-3 підходящих співробітників:

  • Чулкова Євгенія, додатковий 34
  • Масленніков Дмитро, додатковий 02


Якщо в 1С ще немає інформації про взаємини з клієнтом, генерується IVR за замовчуванням.

МІКО:Інтелектуальна маршрутизація виклику - Вітання за замовчуванням

На стороні 1С залишилося зовсім небагато — зробити фільтрацію за звільненим співробітникам, технічним облікових записів (Робот, Адміністратор). По-хорошому, потрібно ще прибирати тих, хто знаходиться у відпустці, але ми поки цього не зробили.



Також добре б заздалегідь правильно проспрягать ПІБ, особливо тих, які підпорядковуються нестандартним правилами (Білих, Чорних, Кручених ...)

Другу частину пишемо на AGI в Asterisk

В якості сервера Asterisk ми давно використовуємо платну збірку
Askozia, вона з одного боку, дуже проста в налаштуванні, з іншого — по можливостях кастомізації не поступається багатьом вільним рішенням, так і подобається вона мені, це важко пояснити :)

При розробці модуля Asterisk є важлива умова: «Ні в якому разі не переривати обробку викликів». Навіть якщо 1С перестане відповідати, дзвінки повинні ходити. Потрібен гарантований резервний маршрут на відділ продажу.

Вся логіка роботи на стороні Asterisk буде виконуватися з використанням технологій AGI і AMI. Як створювати додатки для інтеграції 1С і AGI ми писали кілька років тому в цьому пості.
Додаток на стороні Asterisk виконує наступні завдання:

  • запит у веб сервісу 1С інформації про імені клієнта для встановлення CallerID на телефонах і в історії;
  • запит у веб сервісу 1С персонального голосового меню;
  • запит сервер TTS синтезованих фраз;
  • склейка повного голосового меню для клієнта з нових і закешированных раніше фраз;
  • відтворення IVR-меню клієнту і розпізнавання DTMF сигналів у відповідь;
  • з'єднання клієнта і співробітника.
Додаємо PHP додаток прямо в Web інтерфейсі і копіюємо ID нового додатка.



Створюємо найпростіший IVR маршрут, на який направимо всі дзвінки клієнтів. Визначимо резервний маршрут на випадок, якщо в AGI скрипті щось зламається. У нас на сервері я просто вказав телефон нашого відділу продажів (90) і ID нещодавно створеного AGI скрипта.



В результаті при дзвінку в нашу компанію ви почуєте щось типу цього:



Безкоштовний Яндекс, хвилі підходить для налагодження. Вимова від Центру Мовленнєвих Технологій значно крутіше, його і використовуємо на бойовому сервері.

Підсумок

Модуль генерації меню IVR ми впровадили 3 місяці тому. За цей час різко скоротилася кількість переадресацій клієнтів між співробітниками.

Нове меню IVR справило багаторазовий WOW ефект. Ми спеціально додали в меню фразу про CRM, багато хто цікавиться, як це працює =)

Швидкість генерації повністю нового IVR-меню не перевищує 1-3 секунд, якщо потрібних фраз ще немає в кеші, і частки секунд, якщо потрібні фрази вже були синтезовані раніше. По суті, зараз ми отримуємо нові фрази тільки тоді, коли в компанії з'являється новий працівник. В інший час система працює автономно і незалежно від TTS серверів.

Велике спасибі, якщо змогли дочитати до кінця. З задоволенням відповім на всі питання.

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

0 коментарів

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