Уведомление полезно, когда приходит нужному человеку по понятному событию и помогает выполнить действие. Для бота необходимо различать создание события, попытку отправки и результат доставки. Успешная отправка не доказывает, что получатель прочитал сообщение и выполнил задачу.
Выберите события с рабочей причиной
Начните с событий, после которых человек должен что-то сделать: появилась заявка, изменилось состояние заказа или требуется согласование. Событие «обновилась любая запись» часто создаёт лишние сообщения без понятного действия.
Для каждого события запишите получателя и содержание. Клиенту может быть нужен статус его заказа, сотруднику — задача на обработку, администратору — информация о сбое. Один общий текст для всех обычно не подходит.
Сделайте сообщение понятным вне контекста
Укажите объект, событие и следующий шаг. Условное «Заявка обновлена» не помогает понять, какая заявка и почему её нужно открыть.
| Элемент | Назначение |
|---|---|
| Название события | Что произошло |
| Идентификатор или понятное имя объекта | К чему относится сообщение |
| Важные сведения | Почему требуется внимание |
| Ссылка или кнопка | Как выполнить действие |
| Время | Когда событие произошло |
Не помещайте в уведомление лишние закрытые данные. Ссылка должна открывать сведения с предусмотренной проверкой доступа.
Учтите разрешение на личные сообщения
Перед планированием уведомлений проверьте, может ли бот отправлять сообщения выбранному получателю. Для обычного бота необходимо соответствующее взаимодействие пользователя; известный username сам по себе не даёт возможности отправки.
Пользователь может заблокировать бота или изменить способ работы. Такие отказы должны фиксироваться как состояние доставки и не приводить к бесконечным повторным попыткам. Возможности и ограничения проверяют по документации Telegram.
Предусмотрите повторы и группировку
Внешние системы могут прислать одно событие повторно. У него должен быть идентификатор или иной согласованный признак, позволяющий избежать случайного дублирования уведомления.
Для частых изменений можно объединять сообщения, если это не скрывает важное действие. Например, серия обновлений одного объекта может требовать одного итогового уведомления. Срочные и обычные события при этом должны иметь разные правила.
Ведите журнал доставки
В журнале нужны событие, получатель, время попытки, результат и причина отказа. Не храните там токены или полное содержимое закрытых документов. Сотруднику нужен способ найти неотправленное сообщение и понять дальнейшее действие.
Проверьте повтор события, временный отказ внешнего сервиса и недоступного получателя. Для ответственного процесса предусмотрите альтернативный способ контроля, чтобы работа не зависела исключительно от уведомления.
Порядок уведомлений стоит описать в задании на Telegram-бота. Тогда сообщения будут связаны с реальными задачами, а поддержка получит понятную модель ошибок.
