Кейс: Мультиязычный чат-бот поддержки для WhatsApp и других каналов в Битрикс24

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

Кейс: Мультиязычный чат-бот поддержки для WhatsApp и других каналов в Битрикс24

Перед нами стояли следующие цели:

  • снизить нагрузку на нашу службу поддержки;
  • отправлять сообщения пользователям без задержек;
  • поддерживать несколько языков сообщений;
  • иметь возможность включиться в диалог с пользователем, если бот не знает ответа;
  • иметь возможность отслеживать диалоги бота с пользователями в режиме онлайн;
  • оперативно обучать бота новым сообщениям.

Обращения от наших пользователей поступают 24/7 во всех часовых поясах на 4-х языках: русском, английском, португальском и испанском.

Каналы, по которым обращаются наши пользователи: WhatsApp, Онлайн-чат Битрикс24, Битрикс24 Network. Все каналы подключаем к Открытым линиям в Битрикс24.

1. Подключение каналов

Для поддержки канала WhatsApp, мы используем официальный WhatsApp Business API, предоставляемый официальным партнером Facebook - сервисом Gupshup.

Официальный WhatsApp Business API от Gupshup
Официальный WhatsApp Business API от Gupshup

Для интеграции WhatsApp Business API с Битрикс24 мы разработали приложение WhatsApp Business API Gupshup для Битрикс24.

Приложение WhatsApp Business API Gupshup для Битрикс24
Приложение WhatsApp Business API Gupshup для Битрикс24

Подключить и настроить приложение WhatsApp Business API Gupshup поможет наша подробная пошаговая инструкция.

Пошаговая инструкция: Как подключить официальный WhatsApp бизнес API через Gupshup и интегрировать с Битрикс24
Пошаговая инструкция: Как подключить официальный WhatsApp бизнес API через Gupshup и интегрировать с Битрикс24

Онлайн-чат Битрикс24, Битрикс24 Network и другие необходимые каналы, можно подключить по инструкциям от Битрикс24.

Подключение каналов Открытых линий в Битрикс24
Подключение каналов Открытых линий в Битрикс24

2. Установка приложения для чат-ботов

Для создания и обучения чат-ботов, мы разработали приложение ChatBotDialogflow для Битрикс24, которое интегрируется с сервисом машинного обучения Dialogflow от компании Google.

Приложение ChatBotDialogflow для Битрикс24, которое интегрируется с сервисом машинного обучения Dialogflow от компании Google
Приложение ChatBotDialogflow для Битрикс24, которое интегрируется с сервисом машинного обучения Dialogflow от компании Google

Подключить и настроить приложение ChatBotDialogflow поможет наша подробная пошаговая инструкция.

Пошаговая инструкция: Как создать чат-бота для бизнеса
Пошаговая инструкция: Как создать чат-бота для бизнеса

3. Реализация мультиязычности

Агенты в Dialogflow поддерживают мультиязычность. Мы создали новый агент с английским языком по умолчанию и добавили дополнительные языки: русский, португальский и испанский. При создании интента, он дублируется сразу для всех языков.

Агенты в Dialogflow поддерживают мультиязычность
Агенты в Dialogflow поддерживают мультиязычность

Перед нами стояла задача, определять язык сообщения от пользователя при передаче сообщения из Битрикс24 в Dialogflow и передавать вместе с сообщением код языка, для того, чтобы в Dialogflow срабатывали интенты нужного языка.

Для этого в приложение ChatBotDialogflow мы добавили новую функцию определения языка сообщения на основе сервиса перевода от компании Google.

4. Реализация меню готовых ответов на частые вопросы

Так как в WhatsApp Business API пока нет функционала для создания кнопок в сессионных сообщениях (сообщения, отправляемые в течении 24-х часов с момента отправки пользователем последнего сообщения; кнопки можно создавать только в шаблонных сообщениях и их количество может быть не более 3-х), то реализовать меню можно только в текстовом виде, где выбор пункта меню происходит отправкой пользователем в чат соответствующей цифры.

Пример текстового меню в WhatsApp
Пример текстового меню в WhatsApp

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

5. Реализация автоматического перевода диалога на сотрудников поддержки без удаления бота из чата

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

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

Для реализации этой задачи мы разработали и добавили в приложение ChatBotDialogflow соответствующие новые функции для этого.

Для управления этим функционалом, мы задействовали переключатель "Set this intent as end of conversation" в интентах Dialogflow. То есть, если нужно переключить диалог автоматически на сотрудников, при срабатывании какого-либо интента, то нужно в этом интенте просто включить данный переключатель.

Переключатель "Set this intent as end of conversation" в интентах Dialogflow
Переключатель "Set this intent as end of conversation" в интентах Dialogflow

Для нашей задачи, мы настроили Fallback Intent (интент, который срабатывает, если бот не знает ответа).

В поле "Text Response" интента мы ввели следующий текст:

Ваше сообщение мне пока не понятно. Я же бот и еще только учусь :-)

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

Во время ожидания ответа от наших специалистов, Вы можете продолжать отправлять мне сообщения, на которые я постараюсь ответить.

Также, этот текст был переведен на остальные языки и добавлен в соответствующие интенты для других языков.

Если переключатель "Set this intent as end of conversation" включить в интенте приветствия, то сотрудникам будет приходить уведомление о начале диалога бота с пользователем и появится возможность присоединиться к диалогу в любой момент.

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

6. Обучение чат-бота

Обучение производится на стороне сервиса Dialogflow путем добавления и корректировок интентов. Подробнее об этом в нашей инструкции.

Интенты в Dialogflow
Интенты в Dialogflow

Итог

Мы получили мультиязычную автоматизированную систему поддержки пользователей 24/7 во всех часовых поясах со следующими результатами запуска в работу:

  • Нагрузка на сотрудников поддержки заметно снизилась.
  • Возросла конверсия пробного использования в постоянное за счет получения пользователями моментальных ответов на частые вопросы и возможность оперативного подключения к диалогам сотрудников поддержки.
  • Реализация мультиязычности чат-бота и поддержка любых каналов коммуникации, в частности самого популярного во всем мире мессенджера WhatsApp, позволили расширить границы и повысить эффективность нашего бизнеса.
11
7 комментариев

1. Как решение работает сейчас после блокировки Мета?
2. Какова приблизительная стоимость для сайта с 10-20 запросами в день с учетом и без учёта Битрикс24?

Здравствуйте, Дмитрий!

1. Gupshup сообщают, что на работе WABA это не отражается, все работает.

2. Для работы приложений в Битрикс24 требуется подписка на Битрикс24.Маркет Плюс: https://www.bitrix24.ru/apps/subscribe.php

WABA предоставляет до 1000 диалогов в месяц бесплатно.

Gupshup тарифицирует каждое входящее и исходящее сообщение по 0.001 USD.

В Dialogflow по умолчанию бесплатный тариф с определенными лимитами: https://cloud.google.com/dialogflow/quotas

Допустим, поступает 20 диалогов в день и в каждом по 20 сообщений:
- 600 диалогов за месяц в WABA: бесплатно;
- 12000 сообщений за месяц в Gupshup: 12 USD;
- Dialogflow: бесплатно;
- Подписка на Битрикс24.Маркет Плюс в зависимости от тарифа на Битрикс24: Базовый 1494 руб. в месяц / Стандартный 3594 руб. в месяц / Профессиональный 7194 руб. в месяц.

Итого общие затраты в месяц при сегодняшнем курсе USD ЦБ РФ 93,71 руб.: от 2619 руб. в месяц, если подписка на Битрикс24.Маркет Плюс используется только для этих приложений. А если не только для этих, то будет еще дешевле, так как подписка на Битрикс24.Маркет Плюс позволяет установить любое количество приложений от разных разработчиков.

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

1

Интересный кейс, но для создания сценариев для чат ботов советую обратить внимание на сервис Aimylogic. Там есть возможность создавать более гибкие скрипты диалогов, присутствует поддержка понимания естественного языка, а также глубокая интеграция с Битриксом.  При необходимости можно подключать сценарии в качестве роботов, тем самым полностью автоматизируя все цепочку взаимодействия с клиентом. 

Потому что вы там работаете?:)

Здравствуйте. Пробовали реализовать на Dialog Flow слегка похожий сценарий, но не получилось. Может быть сможете подсказать куда копать.
Задача следующая. Чат бот должен сидеть тихо и не выдавать своего присутствия. Его задача реагировать только на определенный фразы (которые приходят если человек нажмет кнопку в полученном шаблонном сообщении). При этом оператор сразу должен видеть начало диалога и переписываться с человеком. 
Вот абстрактный пример.
Клиент: Добрый день. Какие у Вас сегодня акции?
Оператор: Отправляет Список акций в виде шаблонного сообщения
Клиент: Нажимает на кнопку и приходит сообщение 2. Акция такая то
Бот: Видя фразу "2. Акция такая то" выдает информацию.
У нас проблема была в том, что он не мог просто слушать. Если он видит незнакомые фразу то обязательно должен что то ответить

Здравствуйте Владимир!

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

Такой сценарий можно реализовать примерно таким образом:

1. В Dialogflow создаем интенты с фразами, на которые бот должен реагировать. Fallback интент отключаем, чтобы через API Dialogflow приходил пустой ответ, когда бот не знает ответа на сообщение клиента.

2. Клиент пишет в чат, направляем его сообщение одновременно оператору и боту. Если бот не знает ответа, то от него придет пустой ответ и клиенту сможет ответить оператор. Если бот знает ответ, то клиент его сразу и получит.

Если нужно, чтобы бот реагировал только на нажатие кнопок, тогда делаем запрос к API Dialogflow только по триггеру нажатия на кнопки.