Telegram-бот: readBusinessMessage и deleteBusinessMessages — как навести порядок в поддержке бизнес-аккаунта - Блог Папы Карло

Опубликовано: 4 месяца назад
Просмотров: 76

Привет. Я тут в своей мастерской давно люблю такие штуки, которые не просто «что-то умеют», а реально разгребают бардак в переписке. И вот если у тебя Telegram Business подключен к боту, связка readBusinessMessage и deleteBusinessMessages как раз про это: бот может отметить входящее сообщение прочитанным и убрать лишние сообщения прямо от имени бизнес-аккаунта.

Самый сок такой: ты перестаёшь тонуть в хвостах, менеджеры видят чище диалоги, а клиент не висит в странном статусе «написал, а ему будто никто не ответил». Ниже покажу, что именно делают эти методы, какие права нужны, где народ чаще всего косячит, и дам нормальную рабочую схему для поддержки клиентов в Telegram.

Сразу дам маршрут по статье: разберём, чем эти методы полезны в живой поддержке, какие ограничения зашиты в Bot API, как хранить business_connection_id, как чистить диалог аккуратно, а в конце оставлю чек-лист перед запуском. То есть не теория ради теории, а практический сценарий для Telegram Business бота, который помогает держать порядок в сообщениях.

Зачем вообще нужны эти два метода

Когда Telegram добавил эти методы в Bot API 9.0, я сразу понял, куда всё катится: бизнес-аккаунт перестаёт быть просто «личкой с красивой вывеской» и превращается в нормальный рабочий канал поддержки. Раньше автоматизация часто утыкалась в кривой UX. Клиент пишет в бизнес-чат, бот что-то там отвечает, а дальше начинается цирк: непрочитанные входящие висят пачкой, тестовые сообщения остаются в истории, служебные ответы мешают оператору, а старые черновые реплики захламляют диалог.

readBusinessMessage решает первую часть проблемы. Метод не «читает всё подряд», а отмечает конкретное входящее сообщение как прочитанное от имени бизнес-аккаунта. Это важно, если ты строишь аккуратную логику: бот проверил обращение, записал его в CRM, дал автоответ, и только после этого меняет статус прочтения. У клиента и у команды не возникает ощущения, что сообщения висят мёртвым грузом.

deleteBusinessMessages — это уже веник для уборки. Он удаляет от 1 до 100 сообщений за раз, но только в пределах одного чата. На практике это удобно, когда бот отправил промежуточные служебные реплики, устаревшие подсказки, дубли ответов, старые варианты меню или мусор после неудачного сценария. Короче, диалог не превращается в склад обрезков.

Для SEO и по смыслу тут сходятся сразу несколько живых запросов: Telegram bot API business account, бот для поддержки клиентов в Telegram, как отметить сообщение прочитанным в Telegram bot, удаление сообщений бизнес-аккаунта Telegram, business_message Telegram bot. Люди ищут не «сферический бот в вакууме», а способ сделать поддержку в Telegram Business вменяемой и чистой.

Метод Что делает Где полезен
readBusinessMessage Отмечает входящее сообщение прочитанным Автоответы, SLA, снятие «хвостов» по непрочитанным
deleteBusinessMessages Удаляет пачку сообщений в одном чате Чистка служебных реплик, дублей, устаревших подсказок

Если у тебя уже есть сценарий с автоответами и передачей диалога человеку, то эта пара методов отлично допиливает сервисную часть. Бот не только отвечает, но и поддерживает порядок в окне переписки.

Мастер за рабочим столом ведёт поддержку клиентов через бизнес-бота и несколько экранов

Как связка работает в живой поддержке

Покажу на простом сценарии, который я бы сам воткнул в мастерской. Клиент пишет: «Ребят, где мой заказ?» Бот получает обновление business_message, сохраняет текст, ID сообщения, ID чата и главное — business_connection_id. Дальше он либо сам даёт быстрый ответ, либо маршрутизирует запрос человеку. И вот тут начинается нормальный, очень приземлённый UX.

Схема рабочая такая:

  • Шаг 1. Поймали входящее сообщение из бизнес-аккаунта.

  • Шаг 2. Сохранили business_connection_id, chat.id, message_id, текст, время и статус обращения.

  • Шаг 3. Проверили, что это не дубль и не повторная доставка вебхука.

  • Шаг 4. Отдали автоответ или создали задачу менеджеру.

  • Шаг 5. Когда ответ действительно подготовлен, вызвали readBusinessMessage для нужного сообщения.

  • Шаг 6. После завершения сценария удалили лишние служебные сообщения через deleteBusinessMessages.

Почему именно в таком порядке? Потому что если отметить сообщение прочитанным сразу на входе, можно самому себе подложить грабли: клиент уже видит, что его как будто прочитали, а по факту заявка ещё не попала в таблицу, не ушла в CRM и не легла менеджеру в работу. Я обычно люблю сначала зафиксировать обращение, потом ответить, и только после этого закрывать визуальный хвост.

Ещё момент, который часто недооценивают: бизнес-чат и «обычный» чат с ботом — это не одна и та же сущность. В объекте сообщения есть business_connection_id, и его надо хранить вместе с записью обращения. Потерял этот идентификатор — потом начинаются пляски, почему бот не может корректно отметить сообщение прочитанным или удалить пачку сообщений от имени бизнес-аккаунта.

Если тебе близка тема распределения обращений, глянь ещё материал про раскидывание входящих по операторам через Direct Messages. Там логика маршрутизации отлично дружит с текущей темой: сначала порядок в потоке, потом красота в диалогах.

Какие права и ограничения надо учесть

Вот тут народ и спотыкается чаще всего. Методы есть, руки чешутся, а бот отвечает ошибкой или делает вид, что ничего не произошло. Причина обычно не в коде, а в правах.

  • Для readBusinessMessage нужно право can_read_messages.

  • Для deleteBusinessMessages нужно либо can_delete_sent_messages, если чистишь сообщения, которые отправил сам бот, либо can_delete_all_messages, если хочешь убирать любые сообщения в управляемом чате.

Дальше идут ограничения, и они уже очень земные. Для readBusinessMessage чат должен быть активен в последние 24 часа. То есть это не инструмент для археологии по древним перепискам. Для deleteBusinessMessages передаётся список из 1–100 ID, причём все сообщения должны быть из одного чата. И ещё у этого метода есть ограничения метода удаления сообщений вообще: не всё можно снести когда угодно, есть лимиты по времени и типам сообщений.

Вот почему я всегда советую не строить «супер-пылесос», который пытается задним числом подчистить всю историю. Рабочая тактика другая: бот отмечает прочитанным конкретные новые обращения, а удаляет только свежий служебный мусор, который сам же и нагенерил в рамках текущего сценария.

Кстати, если ты уже копаешь тему управления профилем через бизнес-подключение, рядом будет полезен разбор про смену имени, био и сторис из автоматизации. Там тот же класс задач: бот работает не просто как собеседник, а как инструмент управления бизнес-аккаунтом.

Рабочая схема поддержки шаг за шагом

Я бы собирал это так.

1. Ловим нужные типы обновлений

Тебе нужны как минимум business_connection, business_message, edited_business_message и deleted_business_messages. Первый даёт информацию о подключении и правах, второй приносит новые обращения, третий помогает синхронизироваться, если клиент поправил текст, четвёртый нужен, чтобы твоя внутренняя база понимала: сообщение исчезло из диалога, значит интерфейс и логика должны подстроиться.

2. Храним не только текст, но и технику

Минимальный набор полей: внутренний ID обращения, business_connection_id, chat_id, message_id, направление сообщения, автор, время, статус, признак «прочитано», признак «удалено», ссылка на менеджера или заказ. Когда база хранит только текст и имя клиента, поддержка быстро разваливается.

3. Вешаем readBusinessMessage не на вход, а на подтверждённую обработку

Хороший вариант — вызывать метод после одного из событий: заявка записана в систему, менеджер назначен, клиенту ушёл автоответ, оператор открыл диалог. Тогда отметка о прочтении отражает реальное движение процесса.

4. Чистим только то, что реально мешает

Я бы удалял такие штуки: временное меню выбора отдела, служебные подсказки оператору, дубли автоответа после ретрая, черновые сообщения, устаревшие варианты «подождите, ищу информацию». А вот историю общения с клиентом трогать надо очень аккуратно. Поддержка — штука нервная, и лишняя уборка иногда вредит сильнее, чем бардак.

5. Логируем каждое удаление

Очень советую перед удалением сохранить в лог хотя бы: какие ID удаляются, по какому сценарию, кто инициировал действие и была ли операция успешной. Потом, когда менеджер спросит «куда пропал ответ», ты не будешь чесать затылок у станка и гадать, кто там что снёс.

Если любишь более мягкий сценарий, сначала можно отправлять оператору черновик ответа, а уже после подтверждения чистить лишние служебные реплики. Это сильно снижает риск кривой автоматизации в клиентском сервисе.

Минимальные примеры запросов

Если говорить грубо и по-рабочему, у методов всего по несколько ключевых параметров. Для отметки входящего сообщения прочитанным тебе нужны business_connection_id, chat_id и message_id.

POST /readBusinessMessage
{
  "business_connection_id": "bc_123",
  "chat_id": 123456789,
  "message_id": 812
}

Для удаления уже нужна пачка идентификаторов.

POST /deleteBusinessMessages
{
  "business_connection_id": "bc_123",
  "message_ids": [900, 901, 902]
}

Важный нюанс: в список удаления складывай только сообщения из одного чата и только те, которые действительно хочешь снести. Я обычно держу отдельный массив «служебных сообщений сценария», чтобы не хватать лишнее. Это особенно полезно, если Telegram-бот для малого бизнеса общается активно и в одном окне идут и клиентские реплики, и системные ответы.

Где обычно начинается каша

Первая ошибка — не хранить business_connection_id. Кажется мелочью, а потом методы у тебя будто есть, но применить их не к чему.

Вторая — ставить отметку прочтения слишком рано. Клиент видит, что сообщение как бы обработано, а менеджер его даже не открыл. Сервисная картина ломается.

Третья — удалять сообщения, не ведя журнал действий. Один раз пронесёт, второй раз тоже, а на третий начальник поддержки будет искать пропавшую переписку уже на повышенных тонах.

Четвёртая — пытаться через deleteBusinessMessages решить хаос в архитектуре. Если бот шлёт дубли, прыгает по ретраям и плодит мусор, сначала лечится сценарий, а не веник в конце.

Пятая — игнорировать обновление deleted_business_messages. Если сообщение исчезло в диалоге, а у тебя в админке оно продолжает висеть как актуальное, операторы быстро перестают доверять системе.

На тему дублей и повторных срабатываний у меня лично всегда рядом лежит похожая логика из статей про подключение Telegram к n8n через Bot API и про ловлю дублей в автоматизации. Проблемы там другие по форме, но корень один: нефиксируемые события быстро превращают поддержку в кашу.

Что ещё прикрутить к этой связке

Если хочется сделать поддержку бизнес-аккаунта реально взрослой, я бы добавил ещё четыре слоя.

  • SLA-таймер. Если сообщение не было отмечено прочитанным за N минут, менеджеру падает пинок.

  • Теги обращений. Доставка, оплата, возврат, консультация, повторный клиент — и дальше разные сценарии.

  • Ручное подтверждение для рискованных ответов. Особенно если в цепочке сидит ИИ.

  • Очистка только служебных сообщений. Не клиента, не историю заказа, а именно технические хвосты.

Тогда Telegram Business бот для поддержки работает уже не как игрушка, а как спокойный цеховой инструмент: входящее взяли, статус обновили, ответили, мусор убрали, лог сохранили.

Чек-лист перед запуском

  • Проверил, что бот подключён к бизнес-аккаунту и соединение активно.

  • Убедился, что у бота есть нужные business rights.

  • Подписал webhook или polling на business-события.

  • Сохраняешь business_connection_id, chat_id и message_id.

  • Отмечаешь сообщение прочитанным только после реальной обработки.

  • Удаляешь только заранее помеченные служебные сообщения.

  • Логируешь каждое удаление и каждую ошибку вызова API.

  • Отрабатываешь edited_business_message и deleted_business_messages.

Итог простой. Если тебе нужен Telegram-бот для поддержки клиентов в Telegram Business, не смотри на readBusinessMessage и deleteBusinessMessages как на мелкие декоративные методы. Это два маленьких, но очень полезных рычага порядка. Первый помогает честно закрывать хвосты по прочтению, второй держит диалог чистым. Вместе они делают сервис аккуратнее, а операторов — спокойнее. А в поддержке, брат, спокойствие команды иногда ценнее ещё одного «умного» сценария.

Метки: , , , , , , ,