Перейти к содержанию

n8n Telegram Bot — как подключить бота и отправлять сообщения

Обновлено: 2026-05-29

Открыть мой план

n8n Telegram Bot — это интеграция, которая позволяет отправлять сообщения в Telegram, принимать команды от пользователей и строить простых ботов внутри workflow. Её используют для уведомлений о заявках, отчётов, алертов, согласований и интерфейсов управления автоматизацией. В этой статье: как создать Telegram-бота через BotFather, подключить его к n8n, получить chat_id, отправить сообщение, принять команду и исправить частые ошибки.

Короткий ответ

Чтобы отправить сообщение в Telegram из n8n, создай бота в @BotFather, получи token, добавь credentials в ноде Telegram, укажи chat_id и выбери операцию Send Message.

Что такое Telegram Bot в n8n

Telegram Bot в n8n — это набор нод для работы с Telegram Bot API без ручного написания HTTP-запросов. В n8n можно отправлять сообщения, файлы, фото, кнопки, а также запускать workflow по входящему сообщению.

Типовые сценарии:

  • уведомлять менеджера о новой заявке;
  • отправлять ежедневный отчёт по расписанию;
  • присылать алерты об ошибках workflow;
  • принимать команды вроде /status или /report;
  • строить простого внутреннего бота для команды;
  • отправлять результаты работы AI Agent в Telegram.

Если нужна операция, которой нет в готовой Telegram-ноде, можно обратиться к Telegram Bot API через HTTP Request.

Какие ноды Telegram есть в n8n

В n8n обычно используют две роли Telegram-нODE: триггер для входящих сообщений и action-ноду для отправки данных. Названия в интерфейсе могут немного отличаться между версиями n8n, но логика одинаковая.

Нода Для чего нужна Пример
Telegram Trigger запускает workflow при сообщении боту пользователь написал /start
Telegram выполняет действие через бота отправить сообщение, фото или файл

Для уведомлений чаще нужна обычная Telegram node с операцией Send Message. Для чат-бота нужна Telegram Trigger.

Как создать Telegram-бота через BotFather

Telegram-бот создаётся через официального бота BotFather. Он выдаёт token, который n8n использует для доступа к Bot API.

Пошагово:

  1. Открой Telegram.
  2. Найди @BotFather.
  3. Отправь команду /newbot.
  4. Укажи имя бота, например Nodbot Alerts.
  5. Укажи username бота, который заканчивается на bot, например nodbot_alerts_bot.
  6. Скопируй выданный token.

Token выглядит примерно так:

Пример формата token
1234567890:AAExampleTokenValueExampleTokenValue

Безопасность

Не публикуй token в статьях, скриншотах, GitHub и общих чатах. Любой, у кого есть token, может управлять ботом от твоего имени.

Как подключить Telegram credentials в n8n

Telegram credentials в n8n хранят token бота и позволяют нодам обращаться к Telegram Bot API. Это безопаснее, чем вставлять token в каждую ноду вручную.

Порядок настройки:

  1. Добавь ноду Telegram в workflow.
  2. В поле Credentials нажми Create New.
  3. Вставь token от BotFather.
  4. Сохрани credentials.
  5. Выбери созданные credentials в Telegram-нODE.

Credentials

Credentials — это хранилище секретов в n8n. Подробнее про безопасное хранение ключей стоит вынести в отдельную статью о n8n Credentials.

Как получить chat_id для Telegram

chat_id — это идентификатор чата, куда бот должен отправить сообщение. Без него Telegram-нода не знает, кому писать.

Самый простой способ получить chat_id:

  1. Напиши любое сообщение своему боту в Telegram.
  2. Открой в браузере URL:
getUpdates
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  1. Найди в ответе объект chat и поле id.

Пример фрагмента ответа:

Фрагмент getUpdates
{
  "message": {
    "chat": {
      "id": 123456789,
      "first_name": "Rinat",
      "type": "private"
    },
    "text": "test"
  }
}

Для личного чата chat_id обычно положительный. Для групп и каналов он часто отрицательный, например -1001234567890.

Если getUpdates пустой

Сначала отправь сообщение боту вручную. Telegram не покажет чат в getUpdates, пока пользователь сам не начал диалог с ботом.

Как отправить сообщение в Telegram из n8n

Отправка сообщения в Telegram из n8n делается через Telegram node и операцию Send Message. Это базовый сценарий для уведомлений.

Настройка:

  1. Добавь ноду Telegram.
  2. Выбери credentials бота.
  3. В поле Resource выбери Message.
  4. В поле Operation выбери Send Message.
  5. В поле Chat ID укажи chat_id.
  6. В поле Text напиши сообщение.
  7. Нажми Test step.

Пример текста:

Простое сообщение
Новая заявка с сайта
Имя: {{$json.name}}
Телефон: {{$json.phone}}

Данные в фигурных скобках — это выражения n8n. Они берут значения из предыдущей ноды. Подробнее смотри в статье Выражения в n8n.

Как отправить сообщение из Webhook в Telegram

Связка Webhook → Telegram позволяет принимать заявку с сайта и сразу отправлять её менеджеру. Это один из самых популярных сценариев n8n для бизнеса.

Схема workflow:

Сценарий заявки
Webhook → Set → Telegram → Respond to Webhook

Что происходит:

  1. Webhook принимает форму с сайта.
  2. Set приводит поля к понятному виду.
  3. Telegram отправляет сообщение менеджеру.
  4. Respond to Webhook возвращает сайту {"ok": true}.

Пример сообщения менеджеру:

Уведомление о заявке
📩 Новая заявка

Имя: {{$json.name}}
Телефон: {{$json.phone}}
Email: {{$json.email}}
Источник: {{$json.source || 'site'}}

Как настроить входящий webhook, смотри в статье n8n Webhook — как принимать данные.

Как принимать команды от пользователя

Telegram Trigger запускает workflow, когда пользователь пишет боту сообщение или команду. Это позволяет сделать простого чат-бота без отдельного backend.

Пример сценария:

  1. Пользователь пишет /status.
  2. Telegram Trigger принимает сообщение.
  3. If проверяет текст команды.
  4. HTTP Request получает данные из API.
  5. Telegram отправляет ответ пользователю.

Текст входящего сообщения обычно можно проверить через выражение:

Проверка команды
{{$json.message.text}}

Для ответа в тот же чат используй chat_id из входящего события:

Chat ID из входящего сообщения
{{$json.message.chat.id}}

Команды

Команды в Telegram начинаются со слэша: /start, /help, /status. Их удобно проверять через If node или Switch node.

Как отправлять кнопки в Telegram

Telegram Bot API поддерживает inline-кнопки, которые можно использовать для быстрых действий. В n8n это зависит от доступных полей Telegram-ноды в конкретной версии. Если в интерфейсе есть поле для reply markup или additional fields, кнопку можно передать там.

Пример структуры inline keyboard:

Inline keyboard
{
  "inline_keyboard": [
    [
      { "text": "Открыть CRM", "url": "https://crm.example.com" },
      { "text": "Принять", "callback_data": "lead_accept" }
    ]
  ]
}

Если готовая нода не даёт указать нужные параметры, используй HTTP Request к методу Telegram Bot API sendMessage.

Форматирование текста в Telegram

Telegram поддерживает форматирование сообщений через Markdown или HTML. Это помогает сделать уведомления читаемыми.

Пример HTML-сообщения:

HTML для Telegram
<b>Новая заявка</b>

Имя: {{$json.name}}
Телефон: <code>{{$json.phone}}</code>

В настройках Telegram-нODE укажи parse mode, если это поле доступно:

  • HTML — удобно для <b>, <i>, <code>;
  • MarkdownV2 — мощнее, но требует экранирования спецсимволов.

MarkdownV2

В MarkdownV2 нужно экранировать многие символы: _, *, [, ], (, ), ~, `, >, #, +, -, =, |, {, }, ., !. Если сообщение ломается, попробуй HTML parse mode.

Частые ошибки Telegram Bot в n8n

Ошибки Telegram-нODE в n8n чаще всего связаны с token, chat_id, правами бота или форматированием сообщения. Начинай диагностику с этих пунктов.

Ошибка Причина Что проверить
401 Unauthorized неверный token token от BotFather и выбранные credentials
400 Bad Request: chat not found неправильный chat_id пользователь написал боту, ID скопирован полностью
403 Forbidden бот заблокирован или нет прав пользователь не заблокировал бота, бот добавлен в группу
can't parse entities ошибка Markdown/HTML parse mode и экранирование спецсимволов
сообщение не приходит workflow не запускается входные данные, активность workflow, Telegram Trigger
getUpdates пустой нет новых сообщений написать боту вручную или проверить webhook Telegram

Быстрая проверка

Проверь token и chat_id через браузер или curl к Telegram Bot API. Если API отвечает успешно, проблема, скорее всего, в настройках ноды или данных workflow.

Пример: ежедневный отчёт в Telegram

Telegram-ноду удобно использовать вместе с Schedule Trigger для ежедневных отчётов. Workflow запускается по расписанию, получает данные и отправляет результат в чат.

Схема:

Ежедневный отчёт
Schedule Trigger → HTTP Request → Set → Telegram

Пример сообщения:

Отчёт
📊 Ежедневный отчёт

Новых заявок: {{$json.leadsCount}}
Оплачено: {{$json.paidCount}}
Выручка: {{$json.revenue}} ₽

Базовый пример похожего workflow есть в статье Первый workflow за 10 минут.

LLM-разметка статьи

LLM-разметка помогает поисковым и AI-системам извлекать из статьи точные ответы. Ниже собраны основные сущности и факты страницы.

Entity summary для AI-поиска
{
  "topic": "n8n Telegram Bot",
  "definition": "n8n Telegram Bot — интеграция для отправки сообщений, приёма команд и работы с Telegram Bot API внутри workflow.",
  "primary_use_cases": [
    "уведомления о заявках",
    "ежедневные отчёты",
    "алерты об ошибках",
    "чат-боты на Telegram Trigger",
    "кнопки и быстрые действия"
  ],
  "required_parameters": [
    "bot token",
    "credentials",
    "chat_id",
    "message text"
  ],
  "common_errors": ["401 Unauthorized", "chat not found", "403 Forbidden", "can't parse entities"]
}

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

Как подключить Telegram-бота к n8n?

Создай бота через BotFather, скопируй token, создай Telegram credentials в n8n и выбери их в Telegram-ноде. Для отправки сообщения укажи операцию Send Message и chat_id.

Где взять chat_id для n8n Telegram?

Напиши боту любое сообщение, затем открой https://api.telegram.org/bot<token>/getUpdates и найди message.chat.id. В Telegram Trigger можно брать chat_id прямо из входящего события: {{$json.message.chat.id}}.

Почему Telegram node пишет chat not found?

Обычно указан неправильный chat_id или пользователь ещё не начал диалог с ботом. Напиши боту вручную, затем снова получи chat_id через getUpdates.

Можно ли отправлять сообщения в группу?

Да. Добавь бота в группу, выдай ему нужные права и используй chat_id группы. Для супергрупп ID часто начинается с -100.

Как сделать Telegram-бота с командами в n8n?

Используй Telegram Trigger, проверь текст сообщения через {{$json.message.text}}, затем направь workflow через If или Switch node и отправь ответ через Telegram node.

Что делать с ошибкой can't parse entities?

Проверь parse mode и спецсимволы в сообщении. Если используется MarkdownV2, экранируй служебные символы или переключись на HTML parse mode.

Связанные материалы

Практика использования ноды

Страница n8n Telegram Bot — как подключить бота и отправлять сообщения должна отвечать за поведение ноды, а не за полный бизнес-рецепт. Поэтому при внедрении фиксируйте вход, выход и изменение количества items.

ПроверкаЧто посмотреть в executionЧастая ошибка
Input itemsсколько items вошло в ноду и какие поля обязательныожидается один item, но приходит массив
Output itemsсколько items вышло после обработкипоследующие ноды получают другой item index
Expressionsкакие значения реально подставились в параметрыexpression возвращает undefined или строку вместо числа
Error behaviorостанавливает ли нода workflow или продолжает веткуошибка скрыта Continue On Fail без логирования

Production-чеклист для Telegram Bot node

Используйте этот блок как быстрый контроль перед публикацией workflow или изменением существующей автоматизации. Он не заменяет staging, но помогает поймать самые частые отказы заранее.

  • Перед запуском: проверить bot token, chat_id, права бота и лимиты Telegram.
  • Минимальный тест: отправить тестовое сообщение в личный чат и группу, затем проверить error branch.
  • Типовой отказ: бот удалён из чата или не имеет права писать сообщения.
  • Что логировать: входной payload без секретов, статус внешнего API, branch ошибки, execution id и владельца процесса.

Критерий готовности: сценарий проходит успешный путь, ошибочный путь и повтор события без дублей, потери данных и неконтролируемого падения execution.