Telegram

Telegram-бот на n8n: inline-кнопки, меню и кнопка для открытия Mini App

30 октября 2026 · 3 мин чтения

Кратко

В n8n бот строится из Telegram Trigger, ветвления по типу события и узла отправки. Нажатия inline-кнопок приходят как callback_query и требуют ответа. Кнопку, открывающую Mini App, проще отправить через HTTP Request, а у бота может быть только один webhook.

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

Из чего состоит бот в n8n

  1. Telegram Trigger: принимает обновления (сообщения и нажатия на кнопки).
  2. Ветвление (Switch или IF): определяет, что пришло: команда, текст или нажатие кнопки.
  3. Узлы обработки: запросы к базе, API, расчёты.
  4. Узел отправки Telegram или HTTP Request: отправляет ответ пользователю.

Чтобы триггер работал на постоянной основе, workflow должен быть активирован: тестовый режим подходит только для проверки, а боевой webhook регистрируется при активации. Для этого у n8n должен быть публичный адрес с HTTPS.

Команды и меню

Команды вида /start приходят обычным сообщением, поэтому в ветвлении проверяйте начало текста. Подсказки команд в интерфейсе Telegram задаются у @BotFather (команда /setcommands): это только список для пользователя, логику обрабатывает ваш сценарий.

Inline-кнопки

Inline-кнопки отправляются в узле отправки сообщения через настройку клавиатуры (Reply Markup, Inline Keyboard). У каждой кнопки есть текст и либо callback_data, либо ссылка.

Когда пользователь нажимает кнопку с callback_data, Telegram присылает обновление callback_query, а не сообщение. В нём лежат данные кнопки и идентификатор запроса.

Важные правила:

  • Отвечайте на нажатие. Нужно вызвать ответ на callback-запрос (в узле Telegram это операция Answer Query), иначе у пользователя на кнопке будет крутиться индикатор загрузки.
  • Разбирайте callback_data ветвлением: например, catalog:next, sub:on, sub:off. Держите значения короткими: у Telegram есть ограничение на длину.
  • Редактируйте исходное сообщение вместо отправки нового, если это переключение страницы или состояния. Так чат не засоряется.

Кнопка, которая открывает Mini App

Кнопку с открытием Mini App удобнее всего отправлять через узел HTTP Request, обращаясь к Bot API напрямую. Адрес: https://api.telegram.org/bot<токен>/sendMessage, тело в JSON:

{
  "chat_id": "{{ $json.message.chat.id }}",
  "text": "Открыть каталог",
  "reply_markup": {
    "inline_keyboard": [[
      { "text": "Каталог", "web_app": { "url": "https://example.com/app" } }
    ]]
  }
}

Адрес Mini App должен быть доступен по HTTPS. Токен бота храните в учётных данных n8n, а не в тексте узла.

Подводные камни

  • Один webhook на бота. У бота может быть только один активный webhook. Если вы запускаете в n8n Telegram Trigger и одновременно опрашиваете getUpdates кодом или регистрируете другой webhook, получите конфликты и потерянные сообщения.
  • Тестовые и боевые адреса. В тестовом режиме у webhook другой адрес. Не оставляйте в боте тестовый URL.
  • Повторные сообщения. Telegram повторяет доставку, если не получил быстрый ответ. Не делайте в сценарии долгих операций до ответа и защитите критичные действия от повторов (запоминайте update_id).
  • Лимиты отправки. Не рассылайте много сообщений подряд: используйте паузы и очередь.
  • Ошибки пользователю. Если запрос к базе не удался, отправьте понятное сообщение, а не оставляйте бота молчать.

Где это применено

На n8n работает, например, ИИ-консультант HotTrip: n8n принимает сообщения, вызывает инструменты и API, а ответы приходят в Telegram. У проектов с Mini App кнопки бота ведут в приложение. Подробности в проектах HotTrip и Da Nang House, а также в услугах «Telegram-боты и Mini App» и «Автоматизация процессов».

Частые вопросы

Нужен ли код, чтобы сделать бота в n8n?

Для типового бота нет: меню, кнопки, ответы и запросы к API собираются из узлов. Код понадобится для нестандартной логики или функций, которых нет в узле Telegram.

Почему кнопка «зависает» после нажатия?

Не отправлен ответ на callback-запрос. Добавьте в сценарий операцию ответа на нажатие.

Можно ли сделать бота и Mini App вместе?

Да. Бот отправляет кнопку с `web_app`, Mini App открывается внутри Telegram и обращается к вашему API. Данные пользователя нужно проверять по подписи `initData`.

Что делать, если бот перестал получать сообщения?

Проверьте, что workflow активирован, что у бота установлен нужный webhook и что нет конфликта с другим процессом, который использует тот же токен.

n8nTelegram-ботinline-кнопкиMini App

Версия для ИИ и чтения без оформления: Markdown.

Читайте также

Telegram · 30 октября 2026

Уведомления в Telegram Mini App: как слать пуши через бота

У Mini App нет собственных пушей: уведомления приходят как сообщения бота, а писать пользователю можно только после его запуска бота или запроса разрешения requestWriteAccess. Чтобы открыть нужный экран, используйте кнопку web_app или прямую ссылку с параметром startapp. Пользователей, заблокировавших бота, нужно отмечать и не беспокоить.

Бизнес · 30 октября 2026

Сколько стоит Telegram-бот и Mini App: из чего складывается цена

Цена бота зависит от сценариев, интеграций и числа ролей, цена Mini App ещё и от интерфейса, API и данных. Простой бот стоит заметно меньше каталога с подписками. Экономия достигается запуском минимальной версии и ясным описанием задачи.

1С · 30 октября 2026

Распознавание УПД в 1С из фото и PDF: облако или локальный ИИ

Если поставщик работает через ЭДО, документ лучше загружать из XML, а не распознавать. Для бумажных и сканированных документов выбирают между облачным OCR и локальной моделью ИИ: локальная нужна, когда цены и ИНН нельзя отправлять наружу. Любой способ нужно проверять на 20–30 ваших реальных документах.

Расскажите о задаче

Опишите, что нужно сделать, даже в паре строк. Отвечу с вопросами или оценкой.

Обсудить проект →