Голосовой помощник для колцентра интернет-провайдера: опыт команды Ziax

Система автоматически обрабатывает до 85% входящих звонков.

В закладки

В этой статье поделимся секретами нашего успешного кейса решения задачи роботизации входящих вызовов в контакт центре небольшого регионального провайдера.

Руководители провайдера вышли на нас с целью провести тестирование нашего решения на первой линии технической поддержки. Перед нами также стояла своя локальная задача — доработать Ziax для обработки входящих вызовов.

С чего всё началось?

Изначально наша команда занималась разработкой систем IP-ATC для контакт-центров, основная задача которых состояла в сборе данных о работе операторов по итогам дня, недели или месяца, необходимых руководителям для подсчёта заработной платы.

В процессе работы возник резонный вопрос: «Зачем нам собирать столько отчётов? Если будут роботы, то столько отчётов не нужно». Нам повезло, ведь именно в то время появились голосовые сервисы у «Яндекса» и Google. Так появился Ziax.

После нескольких пилотных проектов и успешных внедрений продукта на исходящие вызовы, мы решили сфокусироваться на обработке входящих. Уже на тот момент на рынке стали появляться сервисы автообзвонщиков с якобы «искуственным интеллектом» и с использованием «псевдонейронной сети».

Но в таком ПО «под капотом» была классическая блочная система и скриптовая логика работы бота. Изучив подробно функционал конкурентов, мы поняли, что слабые места всех их сервисов — обработка входящих вызовов.

Заказчики для нового направления появились практически сразу, и одним из них стал крымский интернет-провайдер, которому требовалась именно обработка входящих звонков, включающая такие операции по решению следующих вопросов пользователей:

  • баланс на лицевом счете;
  • номер лицевого счета по SMS;
  • обещанный платеж;
  • приостановка обслуживания;
  • активация услуги после приостановки;

Базового функционала классической скриптовой логики робота, конечно же, недостаточно, поэтому для заказчика наше решение было наиболее подходящим, ведь Ziax использует контентно-интентную модель. Нам предстояло решить, как интегрировать нашу систему с внутренней системой заказчика и авторизацией абонента.

Для интеграции мы использовали API биллинговой системы провайдера, методы, в свою очередь, вызывались с помощью встроенной в Ziax функционала вебхуков.

Авторизация клиентов

Интеграция прошла успешно, и возникла необходимость организовать и авторизацию. Как уже было сказано, Ziax работает по контекстно-интентной модели и, когда абонент начинает разговор в телефонном канале, в системе автоматически создаются параметры:

  • АОН клиента (телефонный номер, с которого звонит клиент);
  • имя клиента (если есть).

Таким образом, по умолчанию при приветствии всегда отрабатывает вебхук, который ищет совпадения АОН с абонентом в базе заказчика. Если нам приходил ответ, что данный АОН закреплен за конкретным абонентом, мы уточняли у него, правильно ли система определила адрес подключения. В случае, если система правильно распознавала адрес, авторизация считалась пройденной. Если же адрес определить не удалось, то клиенту предлагается назвать номер договора.

Стоит заметить, что номера договоров у заказчика имеют разный формат, и мы должны были определять их корректно, как бы клиент ни произнес фразу, содержащую необходимую нам информацию (ведь зачастую пользователь называет номер договора не сразу, а произносит его по частям, либо вступает в диалог с роботом, говоря много лишнего).

Мы обучили систему на извлечение параметра «номер договора» и сейчас проблем с извлечением не возникает.

Для извлечения параметров мы используем машинное обучение. Благодаря тому, что Ziax отслеживает контекст диалога и корректно понимает намерения собеседника (интенты), данные извлекаются корректно. У нас был кейс, где из одной фразы извлекалось сразу пять параметров, но и это не предел.

Продолжаем обучать модель

Далее необходимо было собрать модель для обучения. Мы проанализировали записи предыдущих звонков колцентра и составили лингвистическую модель. После этого начали заполнять агента в своей системе. Расписали все интенты и объединили их контекстами.

Чтобы извлечь параметры, необходимо разметить фразы пользователя, с помощью которых обучается агент, выделив необходимую информацию. Ниже приведен пример разметки текста для обучения агента:

Пример разметки текста Милованов Роман

После сохранения агента система начинает обучаться — чем больше данных вносится, тем дольше проходит обучение. Но данные должны быть максимально разнесены по вариантам, чтобы робот обучался эффективней и работал более точно.

Запуск

После успешных внутренних тестов мы начали использовать робота для диалога с реальными клиентами, и тут возникли некоторые проблемы. Мы не предупреждали о том, что разговор идёт с роботом, и абоненты начинали мучить его вопросами, которым он, к сожалению, обучен не был. После этого было принято решение сообщать клиентам, что они разговаривают с роботом.

По нашему опыту, если робот осуществляет сервисные операции на входящих звонках или текстовых каналах, то лучше сообщать клиенту, что с ним разговаривает робот.

Практика показывает, что таким образом доля успешных звонков становится существенно выше. При целевых звонках исходящих звонках также следует сообщать, что звонит робот. Если клиент ждет этого звонка, то он обязательно пообщается.

Безусловно, в первый месяц мы периодически обучали агента, исходя из постоянно получаемой обратной связи. Сейчас робот обрабатывает без ошибок 75-85% всех звонков. Лучший показатель у этого клиента — 87%. В среднем робот обслуживает 500–1000 входящих звонков в сутки. Клиент доволен и заказывает новые тематики, а робот постоянно расширяет свою базу знаний. Наша цель — чтобы робот без ошибок обрабатывал не менее 90% всех звонков.

Если у вас был опыт интеграции роботизированных систем, то будем рады комментариям с вашими кейсами.

Вот как наш робот из описанного выше примера общается с клиентами:

#колцентр #голосовой_помощник

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Роман Милованов", "author_type": "self", "tags": ["\u043a\u043e\u043b\u0446\u0435\u043d\u0442\u0440","\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u0439_\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a"], "comments": 6, "likes": 4, "favorites": 19, "is_advertisement": false, "subsite_label": "tribuna", "id": 61101, "is_wide": false, "is_ugc": true, "date": "Mon, 18 Mar 2019 17:18:24 +0300" }
{ "id": 61101, "author_id": 269417, "diff_limit": 1000, "urls": {"diff":"\/comments\/61101\/get","add":"\/comments\/61101\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/61101"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116, "last_count_and_date": null }

6 комментариев 6 комм.

Популярные

По порядку

Написать комментарий...
1

Молодцы! Еще бы робот более человеческим голосом разговаривал, тогда будет вообще супер.

Ответить
1

Заказчик выбрал этот голос, а вообще есть и другие голоса.

Ответить
1

"Звонок в интернет-провайдер" - мне кажется, это как-то не по-русски, не?

Ответить
0

Учтем это обязательно.

Ответить
0

Долгий немного ваш робот, а так круто! Сколько стоила такая интеграция?

Ответить
0

Не могу разглашать данную информацию к сожалению.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Компания отказалась от email
в пользу общения при помощи мемов
Подписаться на push-уведомления
{ "page_type": "default" }