Документация › Работа с клиентами › Логи событий
Логи событий
Обновлено 26 октября 2026 г.
«Что бот сделал за кадром»: вызвал функцию, прочитал ссылку клиента, искал в базе знаний, распознал голосовое, выключился в диалоге, двинул сделку в CRM. Эти события видны в двух местах: карточками прямо в ленте диалога и общим журналом на странице «Логи» проекта. По ним понятно, почему бот ответил так, а не иначе, и где именно сломалось.
⏱ 9 мин · 👤 для владельца и оператора · 🟢 live
За 30 секунд:
- В диалоге между сообщениями стоят карточки событий: вызвал функцию, искал в базе знаний, изменил сделку в CRM.
- Страница «Логи» (Аналитика → Логи): все события проекта подряд, фильтры «Все · Обработано · Ошибки · Telegram · WhatsApp», поиск по тексту, даты, выгрузка в CSV, обновление без перезагрузки.
- Главные типы: вызов функции, прочитана ссылка клиента, поиск по базе знаний, голосовое распознано, бот включён или выключен в диалоге, WhatsApp подключён или отвязан, ответ остановлен: написал оператор.
- Секреты в событиях маскируются, тело запроса и ответа функции обрезается.
- Первое место, куда смотреть на «бот должен был записать, но не записал» и «почему бот замолчал».

Зачем это нужно
Сообщения показывают, что бот написал. Логи показывают, что он делал между сообщениями: дёрнул ли функцию записи, нашёл ли ответ в базе знаний, открыл ли ссылку, которую прислал клиент, отправил ли сделку в CRM, и почему вдруг замолчал. Без этого «почему бот так ответил» остаётся гаданием.
Два окна на одни и те же события:
- Лента диалога. Карточки событий стоят между сообщениями в хронологии: удобно, когда разбираете один конкретный разговор. Обновляются в реальном времени.
- Страница «Логи» (
/projects/<id>/logs, подвкладка раздела «Аналитика», доступна с роли редактор). Все события проекта за выбранный период: удобно искать «что происходило вчера вечером» и «сколько раз падала функция».
Страница «Логи»: как пользоваться
- Фильтры: «Все», «Обработано» (входящие, которые бот принял и обработал), «Ошибки» (всё, где в типе есть ошибка или сбой), «Telegram», «WhatsApp». У каждого фильтра счётчик.
- Поиск по тексту: тип события, номер чата, содержимое деталей. Найдёт и по имени функции, и по номеру телефона, и по слову из ошибки.
- Период: даты задаются сверху, старые дни подгружаются с сервера.
- Строка события: время, значок канала, название по-русски («Бот вызвал функцию», «Голосовое сообщение распознано»), номер чата со ссылкой на диалог, короткое описание, метка «ошибка» или «обработано». Раскрывается в подробности (JSON события).
- «Скачать CSV»: выгружает все события по текущим фильтрам, не только видимую страницу.
- Живое обновление: новые события появляются сами, без F5.
Служебные отметки (замки на время обработки, «обслуживание отработало» раз в пять минут) в журнал не попадают: они нужны только платформе и прятались бы за ними настоящие события.
Какие события бывают
Самые частые и полезные, с названиями, как на странице «Логи»:
| Тип события | На странице | Что значит и что в деталях |
|---|---|---|
function_call | Бот вызвал функцию | имя функции, успех или ошибка, длительность, запрос и ответ (обрезаны) |
inbound_link_read | ссылка клиента прочитана | бот открыл ссылку из сообщения клиента (до двух на сообщение) и что из неё понял; не открылась, здесь причина |
action_claim_unbacked | заявление без действия | бот написал «выставил», «передал», «записал», а функцию не вызвал: платформа дала ему круг на исправление. Повторы здесь значат, что описание функции не говорит боту, когда её звать |
kb_search | поиск по базе знаний | запрос, сколько источников нашёл, не ниже ли порога релевантности (база знаний) |
whisper_transcription_billed | Голосовое сообщение распознано | голосовое расшифровано, списание с баланса |
vision_describe_billed | Фото распознано | картинка описана для модели, списание с баланса |
ai_state_changed | Бот включён или выключен в диалоге | кто и почему: функция, оператор, звонок, защита; причина та же, что в шапке диалога (справочник причин) |
reply_stopped_operator_joined | Ответ бота остановлен: написал оператор | оператор вмешался, пока бот готовил ответ, ответ не отправлен |
operator_message_sent | Оператор отправил сообщение | ручной ответ из кабинета или с телефона |
buffer_drain_timeout | Сообщения собраны в один ответ с задержкой | клиент написал несколько сообщений подряд, бот ответил на всю пачку |
unanswered_inbound_healed | Бот ответил на пропущенное сообщение | сообщение осталось без ответа (сбой, пауза по балансу), платформа ответила на него позже сама |
undecrypted_resend_ask | Сообщение не расшифровалось, клиента попросили отправить ещё раз | первое сообщение лида WhatsApp не прочиталось (что это) |
wazzup_session_connected / wazzup_session_logged_out | WhatsApp подключён / устройство отвязано | события канала; события WhatsApp в журнале приходят с префиксом wazzup_ или baileys_, страница показывает их одинаково |
channel_disconnected / instagram_channel_disconnected | Канал отключился | WhatsApp или Instagram потерял связь (что делать) |
wazzup_call_answered | Входящий звонок в WhatsApp | звонок состоялся; если включена настройка «Выключать ИИ после звонка», рядом будет ai_state_changed |
wazzup_offhours_first_reply | Ответ вне рабочих часов | ушёл дежурный текст по расписанию, модель не звалась |
sticker_no_ai_reply | Стикер: бот не отвечает | на стикер бот молчит намеренно |
autoresponder_no_reply | Автоответ другого бизнеса: бот не отвечает | собеседник оказался чужим автоответчиком или ботом другого проекта DOS AI, бот не ввязывается в переписку двух роботов |
wazzup_backlog_message_skipped | Старое сообщение пропущено при подключении | переписка старше подключения бота не отвечается |
tool_rounds_exceeded | потолок вызовов | бот упёрся в 15 вызовов функций за один ответ и завершил ход (почему) |
manual_review_required | нужен ответ человека | платформа пометила диалог «ответьте руками»: функция упала, бот дважды заявил то, чего не делал, потолок ответов |
payment_confirmed | Оплата подтверждена | клиент оплатил счёт, выставленный ботом (приём оплат) |
bot_first_reply / first_lead | Первый ответ бота / Первый лид | вехи проекта, по одному разу |
owner_alert_undelivered | Уведомление владельцу не доставлено | письмо, Telegram или WhatsApp-уведомление не дошло: проверьте контакты в настройках уведомлений |
project_created | Проект создан | начало истории |
crm_inbound_* | событие из CRM | смена статуса сделки, обновление, удаление, заметка, обновление контакта в подключённой CRM |
Правила раздела «Автоматизации» ведут свою ленту срабатываний внизу страницы Правил, а вызовы функций ещё и свой «Лог вызовов» в карточке каждой функции.
📌 Где искать падения функций. Если бот «должен был записать, но не записал», откройте логи диалога или страницу «Логи» с фильтром «Ошибки» и найдитеfunction_call: там видно, вызвал ли он функцию и с какой ошибкой. Вызова нет вовсе, смотрите, не стоит ли рядомaction_claim_unbackedили отказ предохранителя функции. → Функция не вызывается / падает
📌 Где искать, почему бот замолчал. Фильтр «Все», поиск по номеру чата: последняя записьai_state_changedи её причина отвечают на вопрос. → Бот не отвечает
Безопасность данных в логах
- Секреты маскируются. Токены, ключи, авторизация в параметрах функций редактируются перед сохранением.
- Объём ограничен. Запрос и ответ функции обрезаются примерно до 2000 символов каждый, чтобы журнал не разрастался и не тёк.
- Доступ по роли. Страницу «Логи» видит редактор и выше; наблюдатель и тестер видят только карточки в диалогах, к которым у них есть доступ.
Под капотом
- Два журнала. Исходящие действия бота в CRM (создать, двинуть, прокомментировать сделку) пишутся в отдельный журнал
crm_action_log(с полямиaction / result / error_message / crm_deal_id), а не в общийevents_log. В ленте диалога они объединяются: «сырой»function_callдляcrm_*отбрасывается, показывается более информативная запись изcrm_action_log(дедуп). - Forensic.
events_logиcrm_action_logэто история для разбора инцидентов; при удалении проекта такие записи сохраняются (не каскадятся), чтобы можно было провести пост-мортем. - Realtime. Лента диалога подписана на оба журнала через Postgres Changes, страница «Логи» тоже обновляется живьём; события появляются без обновления страницы.
- Служебные типы (замки
*_lock,maintenance_runи подобные) исключаются из выборки страницы одним спискомEPHEMERAL_EVENT_TYPES, тем же, по которому их чистит обслуживание.
Простыми словами
Представьте, что у бота есть «руки»: он не только пишет, но и делает: записывает клиента в таблицу, открывает ссылку, которую ему прислали, ищет цену в базе знаний, заводит сделку в CRM, выключается, когда вы вошли в разговор. Логи это список того, что он сделал руками: отдельными плашками между сообщениями в диалоге и общим журналом на странице «Логи».
Зачем вам это? Чтобы понимать, почему бот ответил именно так. Сказал «записал вас на 15:00», а в плашке видно, реально ли сработала функция записи или упала с ошибкой. Замолчал, а в журнале написано: «выключен, потому что состоялся звонок». Это лучшее место, чтобы разобраться, когда что-то идёт не так. А чувствительные данные вроде паролей и ключей в этих логах автоматически замазываются, утечки не будет.
Дальше: → Обзор интеграций
Связано: Диалоги · Функции · База знаний · Бот не отвечает · Функция не вызывается / падает
Не получилось? → Функция не вызывается / падает