Telegram-бот на n8n: простой рецепт workflow¶
Обновлено: 2026-05-29
Этот рецепт показывает базовую архитектуру Telegram-бота в n8n: принять сообщение, распознать команду, ответить пользователю и сохранить лог. Для подключения credentials используйте отдельную статью n8n Telegram, здесь фокус на workflow.
Что получится¶
Минимальный бот умеет отвечать на /start, /help, неизвестные сообщения и передавать текст в AI-ветку. Его можно расширить до поддержки заявок, уведомлений, личного ассистента или внутреннего helpdesk.
Схема workflow¶
- Telegram Trigger принимает update.
- Set / Edit Fields вытаскивает
chat_id,text,user_id. - Switch разводит команды:
/start,/help, текстовый запрос. - Telegram node отправляет ответ.
- PostgreSQL или Google Sheets сохраняет лог сообщений.
Нормализация входа¶
chat_id: {{ $json.message?.chat?.id || $json.callback_query?.message?.chat?.id }}
text: {{ ($json.message?.text || $json.callback_query?.data || "").trim() }}
username: {{ $json.message?.from?.username || "unknown" }}Команды¶
| Команда | Ответ | Зачем |
|---|---|---|
/start | Приветствие и краткая инструкция | Первый контакт |
/help | Список команд | Снижение нагрузки на поддержку |
| Любой текст | AI-ответ или fallback | Основной сценарий |
| Пустой input | Просьба написать текст | Защита от нестандартных update |
AI-расширение¶
Для GPT-ответов добавьте AI Agent или OpenAI node между Switch и Telegram node. В prompt передавайте только очищенный текст и id пользователя, а опасные инструменты подключайте только после проверки прав.
Ошибки и защита¶
- Добавьте rate limit или проверку частоты сообщений для одного user_id.
- Логируйте execution_id, chat_id и статус, но не храните лишние персональные данные.
- Для MarkdownV2 экранируйте спецсимволы, иначе Telegram может вернуть ошибку.
- Сделайте fallback-ветку, если AI или база недоступны.
Архитектура production workflow ¶
Для сценария Telegram-бот на n8n: простой рецепт workflow полезно строить workflow не как одну длинную цепочку, а как понятный конвейер: вход, нормализация, проверка, основное действие, запись результата и обработка ошибок. Тогда статью можно использовать как инструкцию внедрения, а не как набор разрозненных советов.
| Слой | Задача | Что логировать |
|---|---|---|
| Trigger | получить событие от telegram | event_id, source, время получения |
| Normalize | привести поля к единой схеме | id события или записи, source, created_at, status, payload_hash |
| Validate | отсечь пустые, повторные и рискованные входы | причину отказа и исходный payload_hash |
| Action | выполнить главное действие рецепта | id созданной/обновлённой записи |
| Notify | сообщить человеку или системе результат | канал, статус, ссылка на execution |
Минимальная схема данных ¶
Не начинайте рецепт с настройки красивых уведомлений. Сначала определите контракт данных: какие поля приходят, какие обязательны, где создаётся уникальный ключ и что считается успешным результатом. Для этой статьи базовый контракт можно начать с таких полей:
- id события или записи
- source
- created_at
- status
- payload_hash
- chat_id или channel_id
- message_id
- sender
Если поля отличаются у разных источников, добавьте отдельную нормализационную ноду сразу после trigger. Это снижает количество выражений в последующих нодах и упрощает поддержку.
Проверка на реальных крайних случаях ¶
- пустой payload или форма без обязательного поля
- повторная доставка одного и того же события
- частичный успех: внешняя запись создана, но уведомление не отправилось
- медленный API или временный 429/5xx
- ручной повтор старого execution через неделю после первого запуска
MVP и production-версия рецепта
Рецепт Telegram-бот на n8n: простой рецепт workflow не должен конкурировать со справочником нод. Здесь важен готовый сценарий: какие ноды соединить, какие данные передать и как проверить бизнес-результат.
| Уровень | Что включить | Что пока не делать |
|---|---|---|
| MVP | Webhook/Trigger, нормализация, основное действие, короткий ответ | сложные retry, multi-tenant логику, лишние ветки |
| Production | idempotency, error workflow, лог статусов, ручная очередь, alert | хранить токены в тексте нод или логировать полный payload |
| Scale | очередь, лимиты, batch processing, SLA-метрики | раздувать один workflow до нечитабельной схемы |
Как понять, что рецепт готов
- Есть один владелец процесса и понятный критерий успеха: лид создан, письмо отправлено, документ сохранён, задача закрыта.
- Повторный запуск с тем же payload не создаёт дубль.
- Ошибочный payload не теряется, а попадает в manual review или alert.
- Все внешние API вызываются через credentials, а не через токен в plain text.
- К рецепту привязан готовый шаблон в разделе workflow или указано, почему шаблон не нужен.
Что читать дальше¶
Интеграция Telegram — здесь, AI-ассистент — здесь, ошибки авторизации — здесь.
Готовые workflow к этой теме¶
Telegram-бот на n8n: роутер команд /start, /help и заявка
Telegram Bot API → CRM/Google Sheets. Скачать JSON и тестовый payload.
Telegram AI-бот на n8n с human approval перед ответом
Telegram → AI Agent + approval. Скачать JSON и тестовый payload.