Как интегрировать Telegram с n8n

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

Что такое n8n и зачем интегрировать с Telegram

n8n (произносится «ноудмейшн») — это платформа автоматизации рабочих процессов, похожая на Zapier или Make, но с ключевым отличием: вы можете развернуть её на собственном сервере. Это означает полный контроль над данными и отсутствие ограничений по количеству выполненных задач.

Для владельцев Telegram-каналов и комьюнити-менеджеров это открывает возможности неограниченной автоматизации по фиксированной стоимости хостинга — от 300–500 рублей в месяц за VPS.

Популярные сценарии использования

  • Автопостинг контента из RSS-лент, блогов или соцсетей в Telegram-канал
  • Пересылка сообщений между Telegram и Slack, Discord или электронной почтой
  • Мониторинг ключевых слов в группах с отправкой уведомлений
  • Сбор ответов из форм (Google Forms, Typeform) и отправка в Telegram
  • Отложенная публикация с динамическим контентом из внешних API
  • Создание интерактивных ботов, которые обращаются к базам данных или сторонним сервисам
  • Синхронизация данных о подписчиках с CRM-системами (Bitrix24, amoCRM, HubSpot)
  • Архивирование контента канала на веб-платформы вроде tgchannel.space для поисковой индексации

Что нужно подготовить заранее

Перед началом интеграции убедитесь, что у вас есть:

  1. Работающий экземпляр n8n — развёрнутый через Docker, npm или облачный n8n Cloud
  2. Telegram-бот — созданный через @BotFather
  3. Токен бота — API-ключ, который BotFather выдаёт после создания бота
  4. Права администратора — если бот должен публиковать в канале, его необходимо добавить в качестве администратора с соответствующими правами

Пошаговая инструкция по интеграции

Шаг 1: Создайте Telegram-бота

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте команду /newbot
  3. Введите отображаемое имя, например «Мой бот автоматизации»
  4. Придумайте юзернейм, заканчивающийся на bot, например my_n8n_automation_bot
  5. Скопируйте HTTP API токен — он выглядит как 7123456789:AAH1bGciOiJSUzI1NiIsInR5c

Храните токен бота в секрете. Любой, кто получит доступ к этому токену, сможет управлять вашим ботом. Если токен был скомпрометирован, немедленно используйте команду /revokentoken в BotFather для его отзыва.

Шаг 2: Добавьте бота в канал

  1. Откройте настройки вашего Telegram-канала
  2. Перейдите в АдминистраторыДобавить администратора
  3. Найдите бота по его юзернейму
  4. Предоставьте ему разрешение Публикация сообщений (и при необходимости Редактирование сообщений и Удаление сообщений)
  5. Сохраните изменения

Шаг 3: Настройте учётные данные Telegram в n8n

  1. Откройте ваш экземпляр n8n и перейдите в SettingsCredentials
  2. Нажмите Add Credential → найдите Telegram
  3. Выберите Telegram API
  4. Вставьте токен бота в поле Access Token
  5. Нажмите Save — n8n автоматически проверит подключение

Шаг 4: Определите Chat ID вашего канала

Chat ID — это идентификатор, по которому n8n понимает, куда отправлять сообщения. Способов узнать его несколько:

  • Для публичных каналов: используйте формат @channelname напрямую
  • Для приватных каналов: перешлите любое сообщение из канала боту @getidsbot или @userinfobot
  • Через n8n: добавьте ноду Telegram Trigger, отправьте боту сообщение и посмотрите значение поля chat.id в выходных данных

Обратите внимание: числовые ID каналов и групп всегда отрицательные, например -1001234567890. Не забывайте префикс -100.

Шаг 5: Создайте первый рабочий процесс

Рассмотрим практический пример: автоматическая публикация RSS-ленты в Telegram-канал.

  1. Нажмите New Workflow в n8n
  2. Добавьте ноду Schedule Trigger — настройте запуск каждые 30 минут
  3. Добавьте ноду RSS Feed Read — укажите URL ленты, например https://habr.com/ru/rss/best/daily/
  4. Добавьте ноду Telegram после неё:

    • Operation: Send Message
    • Chat ID: идентификатор вашего канала
    • Text: используйте выражения для форматирования: ``` 📰 {{ $json.title }}

    {{ $json.contentSnippet }}

    🔗 [Читать далее]({{ $json.link }})
    ``
    - Parse Mode:
    Markdown`

  5. Активируйте рабочий процесс

Продвинутые сценарии автоматизации

Кросс-платформенная дистрибуция контента

Настройте цепочку, которая отслеживает новые публикации в вашем Telegram-канале и автоматически:

  • Публикует краткое содержание в VK или Twitter/X
  • Создаёт черновик поста в WordPress
  • Архивирует контент на веб-платформе tgchannel.space для индексации поисковыми системами
  • Отправляет уведомление в рабочий чат команды в Slack или корпоративный мессенджер

Бот-модератор для чата

  1. Telegram Trigger перехватывает каждое новое сообщение в группе
  2. Code node проверяет текст по списку запрещённых слов или обращается к API модерации
  3. If node разветвляет логику по результату проверки
  4. Telegram node удаляет нарушающие сообщения и предупреждает пользователя
  5. Google Sheets node записывает лог действий модерации для последующего анализа

Ежедневный дайджест

Представьте, что вы ведёте канал «Утренний Новосибирск» на 15 000 подписчиков:

  1. Schedule Trigger срабатывает ежедневно в 7:00 по местному времени
  2. HTTP Request получает данные: прогноз погоды, курсы валют, главные новости
  3. Code node форматирует данные в структурированное сообщение
  4. Telegram node публикует дайджест в канал

Приветствие новых участников

  1. Telegram Trigger фиксирует событие new_chat_members
  2. Wait node — пауза 30 секунд, чтобы пользователь успел осмотреться
  3. Telegram node отправляет персонализированное приветствие с инлайн-кнопками
  4. Telegram Trigger отлавливает нажатие кнопки (callback_query)
  5. Логика ветвления направляет пользователя к нужным ресурсам

Использование Telegram Trigger

Нода Telegram Trigger позволяет n8n реагировать на входящие события в реальном времени. Вы можете подписаться на несколько типов обновлений:

  • message — новые сообщения
  • callback_query — нажатия на инлайн-кнопки
  • channel_post — новые публикации в каналах, где бот является администратором
  • edited_message — редактирование сообщений

При активации рабочего процесса n8n автоматически регистрирует вебхук в Telegram. Далее вы строите логику с помощью нод If, Switch и Code.

Советы и лайфхаки

  • Используйте Markdown или HTML parse mode для форматированных сообщений. Telegram поддерживает жирный шрифт, курсив, ссылки и блоки кода — применяйте их, чтобы автоматические посты выглядели профессионально, а не как роботизированные рассылки.
  • Тестируйте в приватной группе. Прежде чем активировать workflow для основного канала на 50 000 подписчиков, обкатайте его в небольшой тестовой группе — так вы отловите ошибки форматирования и логики.
  • Добавляйте ноду Wait между несколькими отправками в Telegram, чтобы не нарушать лимиты. Достаточно паузы в 1 секунду между сообщениями.
  • Храните токен бота в credentials, а не в нодах. Это упрощает ротацию токенов и централизует хранение конфиденциальных данных.
  • Используйте отдельного бота для n8n. Telegram допускает только один вебхук на бота — если тот же токен используется в другом сервисе, вебхуки будут перезаписываться.
  • Фиксируйте версию n8n при self-hosting. Мажорные обновления иногда меняют поведение нод, и вы не хотите, чтобы продакшен-процесс сломался неожиданно.
  • Используйте встроенный редактор выражений n8n для динамической вставки дат, количества подписчиков или условного текста в ваши сообщения.
  • Добавляйте Error Trigger в каждый рабочий процесс для обработки ошибок — особенно актуально при высокой частоте отправок.

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

Ошибка 1: Неправильный формат Chat ID
Почему это неправильно: числовые идентификаторы групп и каналов — всегда отрицательные числа с префиксом -100, например -1001234567890. Использование положительного числа или отсутствие префикса приведёт к ошибке chat not found.
Как избежать: всегда проверяйте Chat ID через @getidsbot или исследуйте выходные данные ноды Telegram Trigger.

Ошибка 2: Бот не добавлен как администратор канала
Почему это неправильно: боты не могут публиковать сообщения в каналах, если не являются администраторами с разрешением Публикация сообщений. Вы получите ошибку 403 Forbidden.
Как избежать: перед активацией workflow проверьте роль бота в настройках канала.

Ошибка 3: Слишком частая отправка сообщений
Почему это неправильно: Telegram ограничивает частоту запросов — примерно 30 сообщений в секунду в разные чаты и 1 сообщение в секунду в один чат. Превышение приводит к ошибке 429 Too Many Requests и временной блокировке бота.
Как избежать: добавляйте ноды Wait (1–3 секунды) между отправками и используйте Split In Batches для массовых операций.

Ошибка 4: Один токен бота в нескольких сервисах
Почему это неправильно: Telegram разрешает только один активный вебхук на бота. Если вы используете один токен в n8n и другом сервисе (или двух экземплярах n8n), они будут перезаписывать вебхуки друг друга, и часть событий потеряется.
Как избежать: создавайте отдельных ботов для разных инструментов автоматизации.

Ошибка 5: Хардкод ID каналов в нескольких workflow
Почему это неправильно: если вам нужно сменить канал, придётся вручную редактировать каждый рабочий процесс.
Как избежать: используйте Variables в n8n (доступны в новых версиях) или ноду Set в начале каждого workflow для определения ID канала в одном месте.

Часто задаваемые вопросы

Можно ли использовать n8n с Telegram без собственного сервера?
Да, n8n предлагает облачную версию на n8n.io с бесплатным тарифом на 220 выполнений workflow. Для интенсивной автоматизации Telegram self-hosted вариант предпочтительнее — вы получаете неограниченное количество выполнений за стоимость хостинга.

Может ли n8n отправлять фото и файлы в Telegram?
Безусловно. Нода Telegram поддерживает операции Send Photo, Send Document, Send Video и Send Audio. Вы можете передавать бинарные данные из предыдущих нод (например, HTTP Request, который скачивает изображение) напрямую в ноду Telegram.

Поддерживает ли n8n инлайн-клавиатуры и кнопки?
Да. При отправке сообщения вы можете задать Reply Markup с инлайн-кнопками. В сочетании с Telegram Trigger, прослушивающим callback_query, это позволяет строить полноценные интерактивные боты.

Как управлять несколькими ботами в n8n?
Создайте отдельные credentials для каждого бота. При добавлении ноды Telegram в workflow выбирайте нужные учётные данные из выпадающего списка. Количество сохранённых credentials не ограничено.

Может ли n8n читать сообщения из чужого канала?
Только если ваш бот является участником этого канала или группы. Для публичных каналов можно использовать методы Telegram API через ноду HTTP Request, но чтение истории сообщений требует пользовательского API (MTProto), что значительно сложнее стандартного Bot API, с которым работает n8n.