- Подготовка окружения
- Создание рабочего процесса в n8n
- Подключение Telegram: входящий триггер
- Добавление AI-агента (модель через OpenRouter)
- Отправка ответа обратно в Telegram
- Память диалога: запоминание контекста
- Системные инструкции (поведение бота)
- Запуск в постоянном режиме
- Частые проблемы и их решение
- Как сделать выгоднее (Авторский совет)
- Краткая схема узлов
- FAQ
В этой статье вы за 10 минут соберёте простого AI-бота в n8n: подключите Telegram, свяжете его с моделью через OpenRouter и настроите ответ пользователю в чат. Пошагово разберём каждый узел, проверку и активацию, чтобы всё заработало с первого раза. В конце добавим память диалога и системные инструкции для поведения бота. По тексту оставлены пометки, куда вставлять скриншоты.
Подготовка окружения
Что понадобится
- Установленный или облачный n8n с доступом в браузере.
- Telegram-бот, созданный через BotFather, и API-токен.
- Аккаунт в OpenRouter (или другой провайдер) и API-ключ.
💡 Совет: если у вас нет токенов, сначала создайте их, затем вернитесь к шагам ниже.
Создание рабочего процесса в n8n
Создайте новый Workflow
- Откройте n8n и перейдите во вкладку Personal → Workflow.
- Нажмите Create Workflow и задайте понятное имя, например “Telegram Bot”.
- Сохраните черновик (кнопка Save), чтобы не потерять настройки.
⚠️ Важно: давайте осмысленные названия — это поможет, когда процессов станет много.
Подключение Telegram: входящий триггер
Добавьте триггер Telegram On Message
- Нажмите Add node и в поиске введите Telegram.
- Выберите Trigger → On Message (входящие сообщения).
- В блоке Credentials нажмите Create New и вставьте API-токен от BotFather.
📌 Не забудьте: после сохранения нажмите Test/Execute у триггера — n8n начнёт “слушать” бота.
Проверьте входящее сообщение
- Откройте чат вашего бота в Telegram и отправьте “Привет”.
- В n8n проверьте Output триггера — вы должны увидеть chat_id, имя и текст.
- Если данных нет, заново нажмите Test в узле и отправьте сообщение ещё раз.
💡 Совет: если у вас несколько ботов, проверьте, к какому привязаны креды.
Добавление AI-агента (модель через OpenRouter)
Вставьте узел AI Agent и передайте ему текст
- Добавьте узел AI Agent / Chat (или аналогичный в вашей сборке n8n).
- В разделе Input выберите режим Define below (кастомные поля).
- Протяните переменную с текста из триггера (например, {{$json["message"]["text"]}}) в поле запроса.
⚠️ Важно: не подставляйте жёсткий текст — используйте переменные из триггера.
Подключите OpenRouter и выберите модель
- В Credentials для AI выберите OpenRouter и нажмите Create New, вставьте API-ключ.
- В поле модели выберите подходящий вариант: можно начать с бесплатной, но платные отвечают быстрее и стабильнее.
- Сохраните узел и нажмите Test, чтобы увидеть сырой Output ответа.
💡 Совет: если бесплатная модель “думает вечность” или падает с ошибкой — временно переключитесь на платную.
Отправка ответа обратно в Telegram
Добавьте узел Telegram: Send Message
- Нажмите Add node → Telegram, выберите Send Text Message.
- В поле Chat ID подставьте chat_id из триггера (переменная из первого узла).
- В поле Text подставьте ответ из AI Agent (Output → content/text).
📸 Скрин: маппинг Chat ID и текста ответа
📌 Не забудьте: используйте переменные, а не “жёсткие” значения — бот должен отвечать любому пользователю.
Протестируйте цепочку целиком
- Нажмите Execute/Run на Workflow, чтобы включить ожидание.
- Напишите боту в Telegram — дождитесь ответа в чате.
- Если появляется служебный “хвост” (баннер), отключите соответствующую опцию в узле отправки.
⚠️ Важно: в режиме разработки n8n ждёт ручного запуска тестов — после правок снова жмите Execute.
Память диалога: запоминание контекста
Подключите Simple Memory
- Добавьте узел Memory → Simple Memory (простая память).
- В Session Key выберите Define below и подставьте chat_id — это уникальный идентификатор диалога.
- Укажите Max messages, например 10–20, чтобы бот помнил последние реплики.
💡 Совет: не ставьте слишком большой буфер — это может замедлять обработку и повышать стоимость.
Системные инструкции (поведение бота)
Задайте System Prompt
- В узле AI включите System / Instructions и опишите стиль общения: тон, формат, ограничения.
- Пример: “Отвечай кратко и дружелюбно, пиши 1–2 абзаца, используй Markdown для списков, без мата и токсичности.”
- Сохраните и протестируйте на нескольких фразах, чтобы убедиться, что стиль применяется.
⚠️ Важно: не добавляйте агрессивные или токсичные инструкции — часть моделей их игнорирует, а часть может нарушать политику платформ.
Запуск в постоянном режиме
Активируйте Workflow
- Нажмите Activate (или включите расписание/вебхуки, если нужно).
- Проверьте, что n8n запущен на сервере и перезапускается менеджером процессов (pm2, Docker, systemd).
- Отправьте тестовые сообщения из нескольких аккаунтов Telegram и оцените стабильность.
💡 Совет: ведите журнал ошибок в n8n и включите уведомления о фейлах — это ускорит отладку в проде.
Частые проблемы и их решение
Медленные или пустые ответы
- Проверьте провайдера модели: бесплатные часто тормозят или ограничены.
- Снизьте размер памяти или длину сообщений.
- Временно переключитесь на платную модель для диагностики.
Триггер не ловит сообщения
- Нажмите Test/Execute в триггере во время разработки.
- Убедитесь, что используете правильный бот-токен.
- Проверьте права и отсутствие прокси/блокировок.
В чат уходит “служебный хвост”
- Отключите “атрибуцию”/служебные подписи в узле Send Message.
- Перепроверьте настройки формата ответа.
Как сделать выгоднее (Авторский совет)
- Для тестов используйте бесплатную модель, а в проде — платную: скорость и качество выше, а расход при коротких ответах невысок.
- Сразу задавайте краткий System Prompt — это сокращает токены на каждое обращение.
- Логируйте prompt/response size: многоverbose-ответов = лишние расходы.
Краткая схема узлов
- Telegram Trigger (On Message) → ловит входящие тексты.
- Memory (Simple Memory) → привязывает контекст к chat_id.
- AI Agent (OpenRouter / другая модель) → генерирует ответ.
- 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-ключ провайдера модели. Это ускоряет старт и снижает количество ручных ошибок.