Чат-бот BSS - Dialog Composer
Для клиентов Webim, начиная с версии 10.4 доступна интеграция с чат-ботом Dialog Composer от компании BSS, который может быть особенно интересен банкам, так как он разрабатывается компанией, создающей информационные банковские продукты.
Dialog Composer позволит осуществлять техническую поддержку круглосуточно, снижая нагрузку на операторов и быстро обрабатывая обращения пользователей. Это "умный" бот, который интегрируется с Webim через собственное API.
N.B.
Dialog Composer - синхронный бот. Это накладывает на него некоторые ограничения: бот может только отвечать на сообщения посетителей с таймаутом ответа в 10 секунд. В случае, если бот не успел ответить за таймаут, обращение будет автоматически переведено на живого оператора.
Dialog Composer рекомендуется применять при использовании различных информационных сервисов, связанных с банковскими продуктами, услугами, транзакциями и прочей банковской инфраструктурой.
Возможности бота могут варьироваться, так как каждая интеграция делается индивидуально, но в целом в рамках Dialog Composer может быть доступно следующее:
-
Начало и закрытие чата
-
Отправка текстовых сообщений
-
Отправка кнопочного меню и обработка ответов
-
Отправка чата в общую очередь при выключенном автоназначении
-
Назначение чата на другого оператора из того же отдела при включенном автоназначении
N.B.
Dialog Composer передаёт кнопки в объекте data
внутри массива buttons
: поле text
внутри элемента массива соответствует тексту кнопки, а поле id
- id кнопки.
Webim поддерживает следующий список действий (action) Dialog Composer:
-
continue
: продолжение общения с ботом -
finish
: закрытие диалога -
transfer
: перевод чата
N.B.
В случае, если бот передаст системе необрабатываемое действие (action), чат будет отправлен в общую очередь или назначен на оператора из того же отдела.
Эндпоинты бота
В Dialog Composer существуют три эндпоинта, связанных с различными действиями бота в системе Webim:
-
/start
- Начало сессии бота -
/next
- Отправка текстового или кнопочного сообщения -
/end
- Завершение сессии бота
При совершении связанного действия эндпоинты склеиваются с базовой ссылкой на API, после чего на полученный URL отправляется запрос, в котором находится токен, необходимый для авторизации пользователя со стороны BSS.
Настройка интеграции
Чтобы настроить интеграцию с Dialog Composer, выполните следующие шаги:
-
В Настройках выберите раздел Боты.
-
Нажмите Создать нового бота.
-
В открывшейся форме заполните следующие поля:
-
Оператор для бота: выберите учётную запись из списка доступных, которая будет использоваться в качестве учётной записи бота. Настоятельно рекомендуем для чат-бота создавать отдельную учёную запись.
-
Тип бота: укажите тип бота BSS.
-
Порядок сортировки: отвечает за определение приоритета операторов(ботов) при включенном автоназначении.
-
Статус: установите статус, в котором будет пребывать Dialog Composer. Можно установить следующие статусы: Онлайн, Невидимка и Офлайн.
-
Базовая ссылка на API: введите здесь ссылку на API (URL вебхука, например,
https://dc1.voice.bssys.com/api/public/v1.0
) бота для передачи запросов из Webim. Не допускается вводить символ/
на конце ссылки. -
Токен для внешнего API: введите здесь токен авторизации бота.
-
-
После заполнения формы нажмите Сохранить. Новый бот отобразится в списке всех доступных ботов. Также будет отображена информация о статусе бота (Онлайн, Невидимка, Офлайн), учётной записи, от лица которой действует бот, типе бота (в данном случае BSS) и порядке сортировки.
Чтобы отредактировать бота, нажмите у нужного бота в списке кнопку .
N.B.
Обратите внимание, что для созданного бота нельзя изменить учётную запись (поле Оператор для бота) и его тип! Эти поля настраиваются один раз и их можно изменить, только если удалить бота и создать нового.
Проверка работы
Для проверки работы Dialog Composer начните чат с ним в качестве посетителя. Например, используя sample page - chat.mycompany.com/sample-page.php
для hosted-клиентов и accountname.webim.ru/sample-page.php
для облачных клиентов, где:
-
chat.mycompany.com
- домен вашей организации -
accountname
- имя аккаунта вашей организации в Webim
Если интеграция настроена верно, то чат-бот будет отвечать на сообщения и полноценно участвовать в диалоге с посетителем.
Примеры запросов и ответов
Инициализация сессии с Dialog Composer
POST "https://<some_domain>/api/public/v1.0/start" -H "accept: application/json" -H "Authorization: Bearer $token" -H "Content-Type: application/json" –d "
{
"channel_id": "channel1",
"channel_type": "text",
"session_id": "client1-scriptid-channel1-user1",
"use _id": "user1",
"variables":
{
"var1": "Value"
},
"formatting_type": "html",
"formatting_options": ["ALL"]
}"
В чат посетителю возвращается ответ, полученный от Dialog Composer
{
"action": "continue",
"error_code": 0,
"error_info": "",
"messages":
[
{
"content": "Здравствуйте",
"content_type": "text",
"buttons": []
},
{
"content": "Что Вас интересует?",
"content_type": "text",
"buttons":[]
}
],
"session_id": "client1-b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9",
"variables": {}
}
Отправка кнопочного меню
{
"action": "continue",
"error_code": 0,
"error_info": "",
"messages": [
{
"content": "Выберите одну из опций:",
"content_type": "text",
"buttons": [
{
"id": "b28b8e7f-674b-43b5-8f8a-5b1e3d8581a5",
"text": "Опция 1"
},
{
"id": "c96efb2d-8d0d-42a5-bcaf-bbdca8175e53",
"text": "Опция 2"
}
]
}
],
"session_id": "client1-b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9",
"variables": {}
}
Важно!
Идентификатор кнопки должен быть не более 24 символов в длину и иметь формат UUID4. ID кнопки, генерируемый сторонними ботами, только проверяется на соответствие этим критериям, а сервер Webim сам генерирует ID в формате UUID4.
Выбор варианта ответа посетителем
{
"content": "банкоматы",
"session_id": "client1-b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9",
"content_type": "text"
},
{
"user_id":"5ddbc40e7778fd002748def7",
"mapping_id":"5de9f27294979a03c7f1d4cb",
"channel_type":"api"
}
Возвращение ответа от Dialog Composer
{
"action": "continue",
"error_code": 0,
"error_info": "",
"messages":
[
{
"content": "Ближайший к Вам банкомат находится по адресу Москва , это примерно в 28.234010131635284 от вашего местоположения.",
"content_type": "text",
"buttons": []
},
{
"content": "Что Вас интересует?",
"content_type": "text",
"buttons": []
}
],
"session_id": "client1-b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9",
"variables": {}
}
Завершение диалога с ботом
{
"action": "finish",
"error_code": 0,
"error_info": "",
"messages":
[
{
"content": "Спасибо",
"content_type": "text",
"buttons": []
}
],
"session_id": "client1-b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9",
"variables": {}
}