Как создать Telegram-бота с AI в n8n за 10 минут

Как создать Telegram-бота с AI в n8n за 10 минут

 

В этой статье вы за 10 минут соберёте простого AI-бота в n8n: подключите Telegram, свяжете его с моделью через OpenRouter и настроите ответ пользователю в чат. Пошагово разберём каждый узел, проверку и активацию, чтобы всё заработало с первого раза. В конце добавим память диалога и системные инструкции для поведения бота. По тексту оставлены пометки, куда вставлять скриншоты.

Подготовка окружения

Что понадобится

  • Установленный или облачный n8n с доступом в браузере.
  • Telegram-бот, созданный через BotFather, и API-токен.
  • Аккаунт в OpenRouter (или другой провайдер) и API-ключ.

💡 Совет: если у вас нет токенов, сначала создайте их, затем вернитесь к шагам ниже.

1 b753a

Создание рабочего процесса в n8n

Создайте новый Workflow

  1. Откройте n8n и перейдите во вкладку Personal → Workflow.
  2. Нажмите Create Workflow и задайте понятное имя, например “Telegram Bot”.
  3. Сохраните черновик (кнопка Save), чтобы не потерять настройки.

2 c6935

⚠️ Важно: давайте осмысленные названия — это поможет, когда процессов станет много.

Подключение Telegram: входящий триггер

Добавьте триггер Telegram On Message

  1. Нажмите Add node и в поиске введите Telegram.
  2. Выберите Trigger → On Message (входящие сообщения).
  3. В блоке Credentials нажмите Create New и вставьте API-токен от BotFather.

3 73ec3

📌 Не забудьте: после сохранения нажмите Test/Execute у триггера — n8n начнёт “слушать” бота.

Проверьте входящее сообщение

  1. Откройте чат вашего бота в Telegram и отправьте “Привет”.
  2. В n8n проверьте Output триггера — вы должны увидеть chat_id, имя и текст.
  3. Если данных нет, заново нажмите Test в узле и отправьте сообщение ещё раз.

4 4da39

💡 Совет: если у вас несколько ботов, проверьте, к какому привязаны креды.

Добавление AI-агента (модель через OpenRouter)

Вставьте узел AI Agent и передайте ему текст

  1. Добавьте узел AI Agent / Chat (или аналогичный в вашей сборке n8n).
  2. В разделе Input выберите режим Define below (кастомные поля).
  3. Протяните переменную с текста из триггера (например, {{$json["message"]["text"]}}) в поле запроса.

5 45721

⚠️ Важно: не подставляйте жёсткий текст — используйте переменные из триггера.

Подключите OpenRouter и выберите модель

  1. В Credentials для AI выберите OpenRouter и нажмите Create New, вставьте API-ключ.
  2. В поле модели выберите подходящий вариант: можно начать с бесплатной, но платные отвечают быстрее и стабильнее.
  3. Сохраните узел и нажмите Test, чтобы увидеть сырой Output ответа.

💡 Совет: если бесплатная модель “думает вечность” или падает с ошибкой — временно переключитесь на платную.

6 6ebe2

Отправка ответа обратно в Telegram

Добавьте узел Telegram: Send Message

  1. Нажмите Add node → Telegram, выберите Send Text Message.
  2. В поле Chat ID подставьте chat_id из триггера (переменная из первого узла).
  3. В поле Text подставьте ответ из AI Agent (Output → content/text).


📸 Скрин: маппинг Chat ID и текста ответа

📌 Не забудьте: используйте переменные, а не “жёсткие” значения — бот должен отвечать любому пользователю.

Протестируйте цепочку целиком

  1. Нажмите Execute/Run на Workflow, чтобы включить ожидание.
  2. Напишите боту в Telegram — дождитесь ответа в чате.
  3. Если появляется служебный “хвост” (баннер), отключите соответствующую опцию в узле отправки.

⚠️ Важно: в режиме разработки n8n ждёт ручного запуска тестов — после правок снова жмите Execute.

Память диалога: запоминание контекста

Подключите Simple Memory

  1. Добавьте узел Memory → Simple Memory (простая память).
  2. В Session Key выберите Define below и подставьте chat_id — это уникальный идентификатор диалога.
  3. Укажите Max messages, например 10–20, чтобы бот помнил последние реплики.

7 27f0c

💡 Совет: не ставьте слишком большой буфер — это может замедлять обработку и повышать стоимость.

Системные инструкции (поведение бота)

Задайте System Prompt

  1. В узле AI включите System / Instructions и опишите стиль общения: тон, формат, ограничения.
  2. Пример: “Отвечай кратко и дружелюбно, пиши 1–2 абзаца, используй Markdown для списков, без мата и токсичности.”
  3. Сохраните и протестируйте на нескольких фразах, чтобы убедиться, что стиль применяется.

9 00787

⚠️ Важно: не добавляйте агрессивные или токсичные инструкции — часть моделей их игнорирует, а часть может нарушать политику платформ.

Запуск в постоянном режиме

Активируйте Workflow

  1. Нажмите Activate (или включите расписание/вебхуки, если нужно).
  2. Проверьте, что n8n запущен на сервере и перезапускается менеджером процессов (pm2, Docker, systemd).
  3. Отправьте тестовые сообщения из нескольких аккаунтов Telegram и оцените стабильность.

💡 Совет: ведите журнал ошибок в n8n и включите уведомления о фейлах — это ускорит отладку в проде.

Частые проблемы и их решение

Медленные или пустые ответы

  • Проверьте провайдера модели: бесплатные часто тормозят или ограничены.
  • Снизьте размер памяти или длину сообщений.
  • Временно переключитесь на платную модель для диагностики.

Триггер не ловит сообщения

  • Нажмите Test/Execute в триггере во время разработки.
  • Убедитесь, что используете правильный бот-токен.
  • Проверьте права и отсутствие прокси/блокировок.

В чат уходит “служебный хвост”

  • Отключите “атрибуцию”/служебные подписи в узле Send Message.
  • Перепроверьте настройки формата ответа.

Как сделать выгоднее (Авторский совет)

  • Для тестов используйте бесплатную модель, а в проде — платную: скорость и качество выше, а расход при коротких ответах невысок.
  • Сразу задавайте краткий System Prompt — это сокращает токены на каждое обращение.
  • Логируйте prompt/response size: многоverbose-ответов = лишние расходы.

Краткая схема узлов

  1. Telegram Trigger (On Message) → ловит входящие тексты.
  2. Memory (Simple Memory) → привязывает контекст к chat_id.
  3. AI Agent (OpenRouter / другая модель) → генерирует ответ.
  4. Telegram Send Text Message → отправляет текст пользователю.

📸 Скрин: общая диаграмма Workflow с четырьмя узлами

FAQ

Как создать Telegram-бота у BotFather и получить токен?
Перейдите к @BotFather, выполните /newbot, задайте имя и username, затем скопируйте токен из ответа. Вставьте его в Credentials узла Telegram в n8n. Если бот “молчит”, проверьте, что токен актуален и бот не заблокирован пользователем.

Почему n8n не отвечает, пока я не жму Execute/Test?
В режиме разработки узлы исполняются вручную. Нажимайте Execute на триггере/Workflow, пишите боту и смотрите логи. Для постоянной работы включите Activate — тогда слушатель будет активен без ручного запуска.

Какая модель лучше для Telegram-бота в n8n?
Платные модели отвечают быстрее и стабильнее, особенно при пиковых нагрузках. Для MVP можно начать с бесплатной через OpenRouter, но в проде используйте платные (меньше таймаутов и ошибок).

Как сделать, чтобы бот “помнил” имя и факты о пользователе?
Добавьте Simple Memory и установите Session Key = chat_id. Укажите количество последних сообщений для сохранения контекста. Не храните лишние данные — это удорожает запросы и может затруднить отладку.

Как добавить голосовые сообщения в бота?
Перед Telegram → AI вставьте узлы распознавания (например, Whisper/OpenAI через соответствующий коннектор или любой ASR-узел). Логику разделите по веткам: если пришёл voice, делайте транскрибацию; если text — сразу отправляйте в AI.

Как задать стиль ответов бота (тон, формат)?
Используйте System / Instructions у AI: опишите тон, длину ответа, форматирование. Например: “Коротко, дружелюбно, без мата; пиши списками, если это советы”. После сохранения протестируйте на нескольких запросах.

Что делать, если ответы приходят с задержкой или с ошибкой?
Проверьте логи узла AI и таймауты, уменьшите размер контекста, упростите system-prompt. При необходимости смените модель/провайдера, так как бесплатные часто лимитируются.

Можно ли импортировать готовый шаблон Workflow?
Да. В n8n нажмите Import, выберите JSON-файл с узлами, затем пропишите свои Credentials: токен Telegram и API-ключ провайдера модели. Это ускоряет старт и снижает количество ручных ошибок.