record-vinylЛогирование сценария чат-бота

circle-info

Логирование сценария чат-бота не является базовым функционалом по умолчанию и настраивается индивидуально по запросу заказчика.

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

Чтобы выполнить логирование, необходимо добавить эту ноду в схему (после действия, которое нужно залогировать) и заполнить её свойства (Properties).

Настройка ноды 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 с предыдущего шага).

circle-info

Заполнение поля 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 — включает или отключает вывод логов для анализа процесса логирования.

circle-info

Оценка CSAT и системные таймауты логируются автоматически (их не нужно настраивать дополнительно).

Описание возможных значений Properties, подлежащих логированию

1. Event

События, подлежащие логированию:

event
описание

button_click

выбор клиентом одной из заранее определённых опций пункта меню выбора языка, меню самообслуживания, оценки CSAT.

text_input

пользователь вводит текстовое сообщение в чат-боте в ответ на открытый вопрос (без кнопок).

system_event

событие, инициированное системой (например, таймаут неактивности клиента, агента или бота).

api_request

вызов веб-сервиса в рамках сценария чат-бота для получения данных клиента или выполнения операции.

announce

отправка сообщения клиенту.

2. Source

Источники, подлежащие логированию:

source
описание

chatbot_language

Чат-бот: этап выбора языка

chatbot_menu

Чат-бот: этап прохождения меню

chatbot_csat

Чат-бот: етап CSAT

agent

Событие на этапе нахождения диалога у агента

3. Task

Задачи, подлежащие логированию:

task
описание

subflow

Переход в меню или подменю

transfer

Передача диалога с бота/IVR на агента/команду

resolve

Завершення діалогу

self_serve

Запуск сервиса самообслуживания

4. Детализация действий (task).

4.1. status

Статус выполнения сервиса. Фиксируется только для событий с task:self_serve. Статусы, подлежащие логированию:

status
описание

initiated

Запущен сценарий сервиса самообслуживания

completed

Сервис самообслуживания успешно завершён

failed

Сервис самообслуживания завершён неуспешно

4.2. exit_reason

Причина выхода пользователя из бота. Фиксируется только для событий с task:transfer или task:resolve. Причины, подлежащие логированию:

exit_reason
описание

transfer_button

выбранный пункт меню с действием трансфера

end_button

выбранный пункт меню с действием завершения диалога

client_timeout

завершение диалога по неактивности клиента

agent_bot_timeout

завершение диалога по неактивности агента/бота

not_working_time

завершение диалога в нерабочее время

csat

завершение диалога после прохождения CSAT

Любая кастомная причина завершения, указанная при логировании


Примеры возможных сценариев логирования событий:

  1. Сценарий: выбор языка, навигация по меню, трансфер на агента и прохождение CSAT

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Депозиты.

  3. Пользователю отображается подфлоу меню Депозиты, и он выбирает пункт Назад.

  4. Пользователю снова отображается Главное меню, и он выбирает пункт Кредиты.

  5. Пользователю отображается подфлоу меню Кредиты, и он выбирает пункт Главное меню.

  6. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  7. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.

  8. Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система выполняет действие трансфера на агента.

  9. После завершения диалога агентом пользователю отображается оценка CSAT, и он выбирает пункт Отлично 😄.

Пример логирования:

event
source
name
parent_name
task
status
exit_reason

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. Сценарій: Завершення діалогу - кнопка “Завершити”

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  3. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.

  4. Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Завершить. Система завершает диалог.

Пример логирования:

event
source
name
parent_name
task
status
exit_reason

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. Сценарий: завершение диалога — завершение по таймауту неактивности клиента

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  3. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.

  4. Пользователю отображается подфлоу меню Карты – Открыть. Пользователь не совершает никаких действий в течение времени ожидания. Система автоматически завершает диалог.

Пример логирования:

event
source
name
parent_name
task
status
exit_reason

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. Сценарий: Завершение диалога — завершение по таймауту неактивности агента

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  3. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.

  4. Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система выполняет действие трансфера на агента.

  5. В процессе общения агент не отвечает в течение установленного времени. Система автоматически завершает диалог.

event
source
name
parent_name
task
status
exit_reason

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. Сценарий: Завершение диалога — обращение в нерабочее время

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  3. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Открыть.

  4. Пользователю отображается подфлоу меню Карты – Открыть, и он выбирает пункт Дебетовую. Система проверяет рабочий график и определяет, что время вне рабочих часов. Система завершает диалог.

Пример логирования:

event
source
name
parent_name
task
status
exit_reason

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

  1. Сценарий: Сервис самообслуживания с полем ввода текстовых данных, вызовом веб-сервиса и анонсированием информации

Описание флоу:

  1. Пользователю отображается меню выбора языка, и он выбирает пункт Украинский.

  2. Пользователю отображается Главное меню, и он выбирает пункт Карты.

  3. Пользователю отображается подфлоу меню Карты, и он выбирает пункт Баланс карты. Система инициирует сценарий самообслуживания (task=selfServe, status=initiated).

  4. Пользователю отображается сообщение «Введите номер вашей карты», и он вводит значение вручную.

  5. Система выполняет вызов внешнего веб-сервиса для получения данных о балансе.

  6. После получения ответа пользователю отображается анонс с балансом карты, и фиксируется, что сервис выполнен успешно.

  7. Пользователю задаётся вопрос «Есть ли ещё вопросы?», и он выбирает пункт Нет. Система завершает диалог.

Пример логирования:

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