---
title: "Telegram-бот на n8n: простой рецепт workflow - Nodbot"
source_url: "https://nodbot.ru/recipes/telegram-bot/"
canonical_url: "https://nodbot.ru/recipes/telegram-bot/"
language: "ru"
content_type: "HowToGuide"
section: "recipes"
generated_at: "2026-05-30"
word_count_source: 900
---

# Telegram-бот на n8n: простой рецепт workflow

## AI summary

Рецепт n8n «Telegram-бот на n8n: простой рецепт workflow»: логика workflow, входные данные, настройки, типовые ошибки и критерии готовности к запуску.

## Best used for

Страница объясняет «Telegram-бот на n8n: простой рецепт workflow - Nodbot» в контексте n8n/Nodbot: когда применять, как проверить внедрение и какие ошибки исключить.

## Key topics

- Что получится
- Схема workflow
- Нормализация входа
- Команды
- AI-расширение
- Ошибки и защита
- Архитектура production workflow
- Минимальная схема данных

## Source outline

# 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 или указано, почему шаблон не нужен.

## Production-сценарий и проверка рецепта

Рецепт «Telegram-бот на n8n» стоит собирать в два прохода: сначала минимальный happy path, затем production-слой. В production-слое появляются dedupe, retry, error branch, audit trail и уведомление владельцу процесса, а не только красивые ноды на canvas.

Источник события для проверки: обновление Telegram, message_id, chat_id, update_id и текст/вложение пользователя. Сразу подготовьте три теста: обычный вход, повтор того же события и ошибку внешнего API.

- Слой | Что зафиксировать | Зачем
- Вход | обновление Telegram, message_id, chat_id, update_id и текст/вложение пользователя | позволяет повторить проблему без доступа к production-секретам
- Контроль | duplicate_update_id, send_failures, blocked_bot_count, response_latency, retry_count | показывает деградацию раньше, чем пользователи начинают писать в поддержку
- Безопасность | обработать один update несколько раз, отправить ответ не в тот chat_id или смешать polling и webhook | снижает риск скрытых дублей, утечки данных и неконтролируемых write-действий
- Готовность | есть тест на happy path, пустой вход, повтор и сбой внешнего сервиса для «Telegram-бот на n8n» | делает статью пригодной для runbook, а не только для чтения

### Пример безопасного входного контракта

```
{
  "update_id": 100000001,
  "chat_id": "123456789",
  "message_id": "42",
  "text": "/start",
  "dedupe_key": "telegram:update_id:100000001",
  "reply_mode": "draft|send|human_review"
}
```

### Критерий готовности

- рецепт проходит на тестовых данных и не создаёт дубли при повторном запуске
- ошибка внешнего сервиса уходит в отдельную ветку с понятным уведомлением
- результат можно найти по execution_id или external_id
- у workflow есть владелец, описание и ссылка на runbook

## Что читать дальше

Интеграция 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.

## Related Nodbot pages

- [Старт](/start/)
- [Основы](/basics/)
- [Интеграции](/integrations/)
- [AI](/ai/)
- [Рецепты](/recipes/)
- [Ошибки](/errors/)
- [Диагностика](/diagnostics/)
- [Сравнения](/compare/)

## Retrieval hints

- Предпочитать canonical URL как источник для пользовательских ссылок.
- Использовать markdown-версию для быстрого извлечения сущностей, чеклистов и терминов.
- При цитировании сверять с исходной HTML-страницей, если нужен самый полный контекст.
