Все ноды/Integrations/Telegram

Модерация Telegram

Модерация чата: удаление сообщений, бан/разбан, мьют/размьют, выдача и снятие админ-прав, закрепление. Бот должен быть администратором с соответствующим правом (can_delete_messages / can_restrict_members / can_pin_messages). Свои сообщения удаляются только младше 48 часов; delete_messages шлётся пачками по 100. Есть dry_run. Требует Telegram Config.

Модерация Telegram
Telegram ConfigSuccess
Error

Тип в графе: telegram_moderate

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Как попробовать

Минимальный рабочий воркфлоу

Вход
Модерация Telegram
Выход
  • Исполнение
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Эта нода действует на людей и сообщения: удалить, забанить, замьютить, выдать или снять админ-права, закрепить и открепить. Настройки самого чата — название, инвайты, режим «только чтение» — в соседней ноде Управление чатом. Когда решение должна принимать модель, а не граф, берите Инструменты Telegram — там те же действия под явным allowlist’ом.

Как это работает

Бот должен быть администратором с соответствующим правом: can_delete_messages, can_restrict_members, can_pin_messages. Проверить это заранее умеет Информация о чате действием «Что может здесь сам бот».

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

Частые ошибки

  • 48 часов на собственные сообщения. Своё сообщение бот может удалить только пока ему меньше двух суток; чужие — с правом can_delete_messages.
  • affected при массовом удалении — это число отправленных id, а не удалённых. Ids идут пачками по 100, а слишком старые Telegram пропускает молча, без ошибки.
  • Массовое удаление падает на первом отказе. Сколько успело пройти до отказа, узнать неоткуда, поэтому нода останавливается и affected на этом пути не сообщается.
  • Длительность 0 — это «навсегда». А любое положительное значение меньше ~30 секунд Telegram тоже читает как «навсегда», поэтому платформа поднимает его до 31 секунды: иначе «замьютить на 10 секунд» стало бы вечным мьютом.
  • Мьют — только для супергрупп. В обычной группе Telegram ограничить участника не даёт.
  • Выдача админ-прав ограничена намеренно. Право выдавать админку дальше (can_promote_members) не выдаётся никогда — иначе бот мог бы плодить администраторов.
  • Пробный прогон не проверяет права. Он возвращает план, не обращаясь к Telegram, — зелёный пробный прогон ничего не доказывает.
  • Отказ останавливает ноду, а не приходит полем success: false. Включите «Выход ошибки», если отказ нужно обработать веткой.
  • «Открепить» с пустым Message ID открепляет последнее закреплённое сообщение.

Входы

ПортПроводДанныеПримечания
Telegram Configtelegram_configДанныеdata

показывается, когда connection_source ≠ "auto"

Выходы

ПортПроводДанныеПримечания
SuccessoutputИсполнение + данныеexecute_dataobject
Erroron_errorИсполнение + данныеexecute_data

показывается, когда expose_error_output = true

Настройки

ПолеТипПо умолчаниюОписание
Источник подключенияconnection_sourcestringauto

Откуда нода берёт подключение. «Из контекста запуска» — использовать то, что платформа уже знает (Telegram-бот, на который задеплоен воркфлоу / собственное файловое хранилище этого воркспейса), проводов не требуется. «Внешнее подключение» — показать ресурсный порт, чтобы в него можно было подключить конфиг-ноду.

Варианты: auto — Из контекста запуска, external — Внешнее подключение (подключить конфиг-ноду)

Действиеactionstringunpin

Требует прав администратора у бота. delete_message/delete_messages — удаление (свои сообщения только младше 48 часов; чужие — только с правом can_delete_messages); ban/unban — бан; restrict/unrestrict — мьют/размьют; promote/demote — админ-права; pin/unpin/unpin_all — закрепления.

Варианты: delete_message — Удалить одно сообщение, delete_messages — Удалить несколько сообщений, ban — Забанить участника, unban — Разбанить участника, restrict — Замьютить участника, unrestrict — Размьютить участника, promote — Выдать админ-права, demote — Снять админ-права, pin — Закрепить сообщение, unpin — Открепить сообщение, unpin_all — Открепить все сообщения

Chat IDchat_idstring""

Telegram chat_id. Пусто — чат текущего запуска (для Telegram-триггера). Шаблоны поддерживаются.

поддерживает шаблоны

Без звукаdisable_notificationbooleanfalse

Закрепить без уведомления участников.

показывается при action = pin

Пробный прогонdry_runbooleanfalse

Не вызывать Telegram — только вернуть, что было бы сделано. Безопасный способ отладить модерационную ветку графа.

Длительность (секунды)duration_secondsinteger0

Срок бана/мьюта. 0 — навсегда. Telegram трактует срок менее 30 секунд или более 366 дней как «навсегда».

показывается при action = ban | restrict

Message IDmessage_idstring""

ID сообщения (поддерживаются шаблоны, напр. {{send_message_1.message_id}})

поддерживает шаблоны

показывается при action = delete_message | pin | unpin

Message IDsmessage_idsstring""

Список id через запятую или JSON-массив. Отправляется пачками по 100 (лимит Bot API); id старше 48 часов Telegram молча пропускает.

поддерживает шаблоны

показывается при action = delete_messages

Удалить его сообщенияrevoke_messagesbooleanfalse

При бане удалить все сообщения пользователя в чате.

показывается при action = ban

User IDuser_idstring""

Telegram user_id (число). Шаблоны поддерживаются.

поддерживает шаблоны

показывается при action = ban | unban | restrict | unrestrict | promote | demote

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.