Все ноды/Integrations/Telegram
Модерация Telegram
Модерация чата: удаление сообщений, бан/разбан, мьют/размьют, выдача и снятие админ-прав, закрепление. Бот должен быть администратором с соответствующим правом (can_delete_messages / can_restrict_members / can_pin_messages). Свои сообщения удаляются только младше 48 часов; delete_messages шлётся пачками по 100. Есть dry_run. Требует Telegram Config.
Тип в графе: telegram_moderate
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение
- Исполнение + данные
Запускается сразу
Как применять
Эта нода действует на людей и сообщения: удалить, забанить, замьютить, выдать или снять админ-права, закрепить и открепить. Настройки самого чата — название, инвайты, режим «только чтение» — в соседней ноде Управление чатом. Когда решение должна принимать модель, а не граф, берите Инструменты 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_data | object | |
Erroron_error | Исполнение + данныеexecute_data | — | показывается, когда expose_error_output = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Источник подключенияconnection_source | string | auto | Откуда нода берёт подключение. «Из контекста запуска» — использовать то, что платформа уже знает (Telegram-бот, на который задеплоен воркфлоу / собственное файловое хранилище этого воркспейса), проводов не требуется. «Внешнее подключение» — показать ресурсный порт, чтобы в него можно было подключить конфиг-ноду. Варианты: |
Действиеaction | string | unpin | Требует прав администратора у бота. delete_message/delete_messages — удаление (свои сообщения только младше 48 часов; чужие — только с правом can_delete_messages); ban/unban — бан; restrict/unrestrict — мьют/размьют; promote/demote — админ-права; pin/unpin/unpin_all — закрепления. Варианты: |
Chat IDchat_id | string | "" | Telegram chat_id. Пусто — чат текущего запуска (для Telegram-триггера). Шаблоны поддерживаются. поддерживает шаблоны |
Без звукаdisable_notification | boolean | false | Закрепить без уведомления участников. показывается при action = pin |
Пробный прогонdry_run | boolean | false | Не вызывать Telegram — только вернуть, что было бы сделано. Безопасный способ отладить модерационную ветку графа. |
Длительность (секунды)duration_seconds | integer | 0 | Срок бана/мьюта. 0 — навсегда. Telegram трактует срок менее 30 секунд или более 366 дней как «навсегда». показывается при action = ban | restrict |
Message IDmessage_id | string | "" | ID сообщения (поддерживаются шаблоны, напр. {{send_message_1.message_id}}) поддерживает шаблоны показывается при action = delete_message | pin | unpin |
Message IDsmessage_ids | string | "" | Список id через запятую или JSON-массив. Отправляется пачками по 100 (лимит Bot API); id старше 48 часов Telegram молча пропускает. поддерживает шаблоны показывается при action = delete_messages |
Удалить его сообщенияrevoke_messages | boolean | false | При бане удалить все сообщения пользователя в чате. показывается при action = ban |
User IDuser_id | string | "" | Telegram user_id (число). Шаблоны поддерживаются. поддерживает шаблоны показывается при action = ban | unban | restrict | unrestrict | promote | demote |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.