Настройка автоматических ответов бота: руководство по устранению неполадок
Автоматические ответы в Telegram-CRM — мощный инструмент, но их настройка часто вызывает трудности. Даже опытные администраторы сталкиваются с ситуациями, когда бот не отправляет ожидаемые сообщения, отвечает не в тот топик или дублирует уведомления. В этом руководстве мы разберем типичные проблемы, их причины и пошаговые решения, а также определим, когда без помощи разработчика не обойтись.
Проблема 1: Бот не отвечает на входящие сообщения
Это самая частая жалоба. Клиент пишет в топик-группу, но автоматический ответ не приходит.
Причины и решения
1. Неверно настроен Webhook
Webhook — это механизм, через который Telegram уведомляет ваш CRM-сервер о новых сообщениях. Если он настроен неправильно, бот просто «не слышит» входящие.
Проверка: Отправьте тестовое сообщение боту. Если в логах CRM нет записи о полученном сообщении — проблема в webhook.
Решение:
- Убедитесь, что URL webhook указывает на правильный эндпоинт вашей CRM.
- Проверьте, что сервер доступен из интернета (не заблокирован фаерволом, использует HTTPS).
- Переустановите webhook через Telegram Bot API командой `setWebhook`. В ответе должно прийти `{"ok": true}`.
Для работы в топик-группах бот должен быть не просто участником, а администратором с правом чтения всех сообщений.
Проверка: Зайдите в список участников группы. Найдите бота — рядом должна быть метка «администратор».
Решение:
- Назначьте бота администратором через настройки группы.
- Выдайте права: «Чтение сообщений», «Отправка сообщений», «Управление темами» (если используются топики).
Триггеры — это правила, которые определяют, когда должен срабатывать автоматический ответ. Например, «При создании нового тикета отправить приветственное сообщение».
Проверка: Откройте настройки триггеров в CRM. Создайте тестовый тикет и посмотрите, активируется ли триггер.
Решение:
- Проверьте условия триггера. Например, если условие «канал = основной», а сообщение пришло в другой канал, триггер не сработает.
- Убедитесь, что триггер активен (не отключен).
- Проверьте порядок выполнения триггеров — если более приоритетный триггер блокирует выполнение других, ответ может не отправиться.
Проблема 2: Бот отвечает не в тот топик
В топик-группах каждое обращение должно быть в отдельной теме. Если бот отправляет ответ в общий чат или в чужой топик — это дезорганизует поддержку.
Причины и решения
1. Не указан thread_id
Telegram требует указывать `message_thread_id` при отправке сообщения в топик. Если CRM не передает этот параметр, сообщение уходит в общий чат.
Проверка: Посмотрите в логах CRM, какой `chat_id` и `thread_id` передаются при отправке.
Решение:
- В настройках интеграции убедитесь, что включен режим «Топики» (Topics).
- Проверьте, что при создании автоматического ответа CRM корректно извлекает `message_thread_id` из входящего сообщения.
Если агент вручную отвечает в топик, а затем срабатывает автоматический триггер, бот может отправить сообщение в неправильное место.
Решение:
- Настройте триггеры так, чтобы они срабатывали только для новых тикетов, а не для ответов в уже существующих.
- Используйте флаг «не отправлять, если в тикете есть ответ агента».
Проблема 3: Дублирование автоматических ответов
Клиент получает два или более одинаковых сообщений, что раздражает и создает шум.
Причины и решения
1. Несколько активных триггеров на одно событие
В CRM может быть создано несколько триггеров, которые срабатывают на одно и то же событие (например, «Новый тикет»).
Проверка: Откройте список триггеров. Отфильтруйте по событию «Новый тикет».
Решение:
- Объедините логику в один триггер или отключите дублирующиеся.
- Используйте условия, чтобы триггеры не пересекались. Например, один триггер для первого сообщения, второй — для повторного обращения.
Если сервер CRM обрабатывает webhook медленно, Telegram может повторно отправить уведомление. В результате бот получит два одинаковых запроса.
Проверка: Посмотрите время между одинаковыми записями в логах. Если интервал менее 1 секунды — это повторная отправка.
Решение:
- Увеличьте таймаут обработки на сервере.
- Внедрите дедупликацию: храните ID входящих сообщений и игнорируйте повторные.
- Настройте CRM так, чтобы она подтверждала получение webhook сразу (возвращала `200 OK`), а обработку выполняла асинхронно.
Проблема 4: Шаблоны ответов не подставляются корректно
Автоматические ответы часто используют переменные, такие как имя клиента, номер заказа или дата. Если переменные не подставляются, ответ выглядит как «Здравствуйте, {name}!».
Причины и решения
1. Неверный синтаксис переменной
В разных CRM используются разные форматы: `{{name}}`, `{name}`, `%name%`.
Проверка: Откройте шаблон ответа. Сравните синтаксис с документацией CRM.
Решение:
- Исправьте синтаксис в соответствии с документацией.
- Проверьте, что переменная написана без опечаток (например, `{neme}` вместо `{name}`).
Переменная подставляется из данных тикета. Если, например, поле «Имя» не заполнено, бот отправит пустое значение или сам шаблон.
Проверка: Посмотрите карточку клиента в CRM. Есть ли там нужные данные?
Решение:
- Настройте сбор данных при первом обращении. Например, бот может запросить имя перед созданием тикета.
- В шаблоне укажите значение по умолчанию: `{name|Уважаемый клиент}`.
Когда проблема требует специалиста
Не все неполадки можно решить настройками. Обратитесь к разработчику или в поддержку CRM, если:
- Webhook не принимается Telegram. Ошибка `400 Bad Request` при установке webhook может указывать на проблемы с SSL-сертификатом или архитектурой сервера.
- Бот работает нестабильно. Ответы приходят с задержкой в минуты или пропадают периодически — возможно, нужно оптимизировать производительность сервера.
- Конфликт с другими интеграциями. Если в CRM подключены внешние сервисы (например, база знаний или система аналитики), автоматические ответы могут блокироваться их запросами.
- Ошибки в API Telegram. Telegram иногда меняет API. Если после обновления бот перестал работать, проверьте версию используемой библиотеки.
Рекомендации по профилактике
Чтобы избежать проблем в будущем:
- Ведите журнал изменений. Записывайте, какие триггеры, шаблоны и webhook-настройки вы меняли. Это поможет быстро найти причину сбоя.
- Тестируйте в изолированной среде. Создайте тестовую группу и бота для проверки новых настроек перед внедрением в продакшн.
- Настройте мониторинг. Используйте логи CRM и уведомления о сбоях webhook. Например, если webhook не отвечает более 5 минут, отправляйте предупреждение администратору.
- Регулярно обновляйте интеграции. Следите за обновлениями CRM и библиотек для работы с Telegram Bot API.
