Логирование сценария чат-бота
Логирование сценария чат-бота не является базовым функционалом по умолчанию и настраивается индивидуально по запросу заказчика.
Логирование событий бота происходит в конструкторе сценариев BotFlow. Для реализации этой задачи используется специальная нода-подфлоу — Log Bot/IVR Event. Каждое событие фиксируется в момент его возникновения как отдельная запись в базе данных (таблица [bot_ivr_events]).
Чтобы выполнить логирование, необходимо добавить эту ноду в схему (после действия, которое нужно залогировать) и заполнить её свойства (Properties).

Настройка ноды Log Bot/IVR Event
Log Bot/IVR EventВ соответствии с интерфейсом свойств ноды (Edit subflow instance), для корректного логирования необходимо настроить следующие свойства (Properties):
Name — название ноды на схеме (например, Log Back, Log To Submenu).
Event — событие, которое произошло (события, подлежащие логированию, см. п. 1. Event).
Source — источник и раздел, из которого зафиксировано событие (источники, подлежащие логированию, см. п. 2. Source).
Task — действие, выполненное в результате срабатывания события (действия, подлежащие логированию, см. п. 3. Task).
Name — название произошедшего события. Может быть названием выбранной кнопки (если используется нода Answer Switch — фиксируется автоматически) или другим кастомным названием события, указанным при логировании.
Parent Name — название предыдущего шага. Для source: chatbot_menu каждое событие, кроме первого (вход в меню), содержит название шага, из которого пришёл клиент (name с предыдущего шага).
Заполнение поля Parent Name происходит автоматически после ноды Answer Switch.
Status — статус выполнения сервиса. Фиксируется только для событий с
task:self_serve(статусы, подлежащие логированию, см. п. 4.1. status).Exit Reason — причина выхода пользователя из бота. Фиксируется только для событий с
task:transferилиtask:resolve(причины, подлежащие логированию, см. п. 4.2. exit_reason).Custom Data 1-5 — поля для передачи дополнительных кастомных данных (при необходимости).
logger — включает или отключает вывод логов для анализа процесса логирования.

Оценка CSAT и системные таймауты логируются автоматически (их не нужно настраивать дополнительно).
Описание возможных значений Properties, подлежащих логированию
1. Event
События, подлежащие логированию:
button_click
выбор клиентом одной из заранее определённых опций пункта меню выбора языка, меню самообслуживания, оценки CSAT.
text_input
пользователь вводит текстовое сообщение в чат-боте в ответ на открытый вопрос (без кнопок).
system_event
событие, инициированное системой (например, таймаут неактивности клиента, агента или бота).
api_request
вызов веб-сервиса в рамках сценария чат-бота для получения данных клиента или выполнения операции.
announce
отправка сообщения клиенту.
2. Source
Источники, подлежащие логированию:
chatbot_language
Чат-бот: этап выбора языка
chatbot_menu
Чат-бот: этап прохождения меню
chatbot_csat
Чат-бот: етап CSAT
agent
Событие на этапе нахождения диалога у агента
3. Task
Задачи, подлежащие логированию:
subflow
Переход в меню или подменю
transfer
Передача диалога с бота/IVR на агента/команду
resolve
Завершення діалогу
self_serve
Запуск сервиса самообслуживания
4. Детализация действий (task).
4.1. status
Статус выполнения сервиса. Фиксируется только для событий с task:self_serve.
Статусы, подлежащие логированию:
initiated
Запущен сценарий сервиса самообслуживания
completed
Сервис самообслуживания успешно завершён
failed
Сервис самообслуживания завершён неуспешно
4.2. exit_reason
Причина выхода пользователя из бота. Фиксируется только для событий с task:transfer или task:resolve.
Причины, подлежащие логированию:
transfer_button
выбранный пункт меню с действием трансфера
end_button
выбранный пункт меню с действием завершения диалога
client_timeout
завершение диалога по неактивности клиента
agent_bot_timeout
завершение диалога по неактивности агента/бота
not_working_time
завершение диалога в нерабочее время
csat
завершение диалога после прохождения CSAT
Любая кастомная причина завершения, указанная при логировании
Примеры возможных сценариев логирования событий:
Сценарий: выбор языка, навигация по меню, трансфер на агента и прохождение CSAT
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Депозиты.
Пользователю отображается подфлоу меню Депозиты, и он выбирает пункт Назад.
Пользователю снова отображается Главное меню, и он выбирает пункт Кредиты.
Пользователю отображается подфлоу меню Кредиты, и он выбирает пункт Главное меню.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.
Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система выполняет действие трансфера на агента.
После завершения диалога агентом пользователю отображается оценка CSAT, и он выбирает пункт Отлично 😄.
Пример логирования:
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Депозити
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Назад
Депозити
subflow
NULL
NULL
4
button_click
chatbot_menu
Кредити
Назад
subflow
NULL
NULL
5
button_click
chatbot_menu
Головне меню
Кредити
subflow
NULL
NULL
6
button_click
chatbot_menu
Карти
Головне меню
subflow
NULL
NULL
7
button_click
chatbot_menu
Відкрити
Карти
subflow
NULL
NULL
8
button_click
chatbot_menu
Дебетову
Відкрити
transfer
NULL
transfer_button
9
button_click
chatbot_csat
Відмінно 😄
NULL
resolve
NULL
csat
Сценарій: Завершення діалогу - кнопка “Завершити”
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.
Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Завершить. Система завершает диалог.
Пример логирования:
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Карти
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Відкрити
Карти
subflow
NULL
NULL
4
button_click
chatbot_menu
Завершити
Відкрити
resolve
NULL
end_button
Сценарий: завершение диалога — завершение по таймауту неактивности клиента
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.
Пользователю отображается подфлоу меню Карты – Открыть. Пользователь не совершает никаких действий в течение времени ожидания. Система автоматически завершает диалог.
Пример логирования:
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Карти
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Відкрити
Карти
subflow
NULL
NULL
4
system_event
chatbot_menu
NULL
NULL
resolve
NULL
client_timeout
Сценарий: Завершение диалога — завершение по таймауту неактивности агента
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.
Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система выполняет действие трансфера на агента.
В процессе общения агент не отвечает в течение установленного времени. Система автоматически завершает диалог.
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Карти
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Відкрити
Карти
subflow
NULL
NULL
4
button_click
chatbot_menu
Дебетову
Відкрити
transfer
NULL
transfer_button
5
system_event
agent
NULL
NULL
resolve
NULL
agent_bot_timeout
Сценарий: Завершение диалога — обращение в нерабочее время
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.
Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система проверяет рабочий график и определяет, что время вне рабочих часов. Система завершает диалог.
Пример логирования:
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Карти
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Відкрити
Карти
subflow
NULL
NULL
4
button_click
chatbot_menu
Дебетову
Відкрити
resolve
NULL
not_working_time
Сценарий: Сервис самообслуживания с полем ввода текстовых данных, вызовом веб-сервиса и анонсированием информации
Описание флоу:
Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.
Пользователю отображается Главное меню, и он выбирает пункт Карты.
Пользователю отображается подфлоу меню Карты, и он выбирает пункт Баланс карты. Система инициирует сценарий самообслуживания (
task=selfServe,status=initiated).Пользователю отображается сообщение «Введите номер вашей карты», и он вводит значение вручную.
Система выполняет вызов внешнего веб-сервиса для получения данных о балансе.
После получения ответа пользователю отображается анонс с балансом карты, и фиксируется, что сервис выполнен успешно.
Пользователю задаётся вопрос «Есть ли ещё вопросы?», и он выбирает пункт Нет. Система завершает диалог.
Пример логирования:
1
button_click
chatbot_language
Українська
NULL
subflow
NULL
NULL
2
button_click
chatbot_menu
Карти
NULL
subflow
NULL
NULL
3
button_click
chatbot_menu
Баланс карти
Карти
selfServe
initiated
NULL
4
text_input
chatbot_menu
ask_card_number
Баланс карти
subflow
NULL
NULL
5
api_request
chatbot_menu
ws_clientdata
ask_card_number
subflow
NULL
NULL
6
announce
chatbot_menu
announce_card_balance
ws_clientdata_call
selfServe
completed
NULL
7
button_click
chatbot_menu
Ні
announce_card_balance
resolve
NULL
other_question_no
Last updated