n8n – от шаблонов и nodes до автоматизации AI agent и Telegram бота

от автора

Сегодня мы поговорим о n8n. Open-source платформе, которая позволяет кардинально сократить трудозатраты на автоматизацию рабочих процессов, связывая различные приложения, сервисы и базы данных без необходимости писать сложный код. 

Благодаря гибкости и возможности расширения, n8n подходит как для простых задач, как, автоматическая отправка уведомлений, так и для сложных сценариев с участием ИИ-агентов, API, внешних баз данных и Telegram-ботов.

В статье я рассмотрю как общие концепции, так и приведу примеры конкретных реализаций и настроек. Начнем с базовых понятий.

Компоненты

Основные компоненты n8n включают:

  • Editor UI — веб-интерфейс для создания, редактирования и тестирования workflows.

  • Workflow Engine — ядро, которое выполняет заданные процессы.

  • Nodes — строительные блоки, соединяющие разные сервисы и выполняющие действия.

  • Triggers — узлы, которые запускают процессы (например, webhook или расписание).

  • Credentials — безопасное хранилище учётных данных для подключения к внешним сервисам.

Перейдем сразу к практической части и рассмотрим подробнее Nodes.

Nodes

Каждый узел (node) — это модуль, выполняющий определённое действие: отправка email, обращение к API, парсинг данных, генерация текста с помощью ChatGPT и т. д. В n8n есть сотни готовых nodes для популярных сервисов: Google Sheets, Telegram, Notion, GitHub, OpenAI и др.

Также доступны «Function» и «Code» nodes для выполнения кастомной логики на JavaScript.

Шаблоны Templates и Workflows

n8n предлагает множество готовых шаблонов workflows, называемых Templates. Их можно импортировать и адаптировать под свои задачи. Это значительно ускоряет разработку. Особенно, если вы автоматизируете типовые процессы (например, интеграции CRM и мессенджеров, сбор данных из форм, отправку отчётов и т.п.).

Шаблоны доступны в официальной библиотеке n8n.

Если вы добавите к Templates свои креды, то получите уже собственных Workflow. Разница тут только в том, что Templates это шаблон, а Workflow уже ваш рабочий процесс.

n8n Workflows

Workflow — это последовательность узлов, которые обрабатывают данные или выполняют действия. Они могут запускаться вручную, по расписанию, с использованием webhook или в ответ на события в сервисах.

n8n поддерживает:

  • Ветвление логики (если/иначе)

  • Параллельные ветки

  • Повторное использование workflows (subworkflows)

  • Переменные, данные между узлами и контекст выполнения

На этом мы закончим с теорией и перейдем к практике.

Сценарии, настройки и примеры

n8n часто используется в связке с телеграм-ботами и LLM. Давайте рассмотрим это подробнее. В телеграм-бот можно отправлять события из систем мониторинга, CRM, использовать как поверхность взаимодействия с AI-агентом и еще можно придумать тысячу применений.

Привязка Telegram-бота к n8n

Привязать Telegram-бота к n8n довольно просто:

  1. Создайте бота через BotFather.

  2. Скопируйте токен.

  3. Используйте Telegram Trigger Node или Telegram Node в n8n.

  4. Укажите токен в учётных данных.

  5. Создайте workflow, который реагирует на сообщения, команды, и отправляет ответы.

Комбинация Telegram и AI-агента позволяет построить полноценного чат-бота, способного вести интеллектуальные диалоги, отвечать на вопросы и запускать автоматизации.

n8n AI Agent

n8n добавил интеграцию AI-функциональности,оседлав волну хайпа на LLM, и стал экспоненциально расти (сам сервис работает с 2019 года, но раньше был намного менее известен). 

n8n AI Agent позволяет создавать интеллектуальные агенты, которые обрабатывают сообщения и взаимодействуют с другими нодами, сервисами и API. Он может действовать как бот, консультант или автоматизированный обработчик информации.

n8n содержит возможность создания AI-агентов, работающих на основе LLM-моделей практически всех основных вендоров.

Схема для n8n AI agent

Схема для n8n AI agent

С помощью AI Agent можно:

  • Автоматически обрабатывать запросы пользователей.

  • Отвечать в мессенджерах.

  • Генерировать текст.

  • Анализировать документы.

И многое, многое другое.

AI-агент может быть встроен, как часть workflow, и использовать другие узлы для сбора, обработки и отправки данных.

Настройка AI Agent в n8n

1. Включение функции AI Agent

Убедитесь, что у вас обновлённая версия n8n (2024.3.0 и выше) и активирован доступ к AI Agent в настройках:

.env-параметры:

N8N_FEATURE_FLAG_AA=true

Или активируйте в UI:

Settings → Feature Flags → Enable AI Agent

Настройка OpenAI API ключа

В UI:

  • Перейдите в Credentials → Create new → OpenAI API

  • Введите ваш API ключ (или локальный путь к модели через Ollama)

Пример переменной в .env:

OPENAI_API_KEY=sk-...

Пример: Telegram-бот с AI Agent

Цель: Создать Telegram-бота, который обрабатывает сообщения пользователей через n8n AI Agent (GPT-4) и отправляет ответ обратно.

Шаги workflow

  1. Telegram Trigger Node

    • Слушает входящие сообщения.

    • Настроен с Telegram Bot API токеном.

  2. AI Agent Node

    • Agent Name: SupportBot.

    • Prompt: Ты — дружелюбный помощник поддержки, отвечай кратко и понятно.

    • Model: GPT или любая на ваш выбор.

    • Вход: текст сообщения от пользователя.

  3. Telegram Node (Send Message)

Получает ответ от AI Agent и отправляет обратно пользователю.

Пример визуальной структуры workflow:

[Telegram Trigger] → [AI Agent] → [Telegram Send Message]

JSON-фрагмент workflow (упрощённый):

{   "nodes": [     {       "name": "Telegram Trigger",       "type": "telegramTrigger",       "parameters": {         "updateInterval": 1       }     },     {       "name": "AI Agent",       "type": "aiAgent",       "parameters": {         "model": "gpt-4",         "prompt": "Ты — дружелюбный помощник поддержки, отвечай кратко и понятно"       }     },     {       "name": "Telegram Send",       "type": "telegram",       "parameters": {         "chatId": "={{ $json[\"message\"][\"chat\"][\"id\"] }}",         "text": "={{ $json[\"result\"] }}"       }     }   ],   "connections": {     "Telegram Trigger": {       "main": [["AI Agent"]]     },     "AI Agent": {       "main": [["Telegram Send"]]     }   } } 

Хорошо, допустим, мы знаем зачем нам n8n. настало время его установить и запустить.

Установка и настройка n8n

Рассмотрим вопросы развертывания n8n.

Установка n8n через Docker на сервер

Для установки n8n есть две базовые опции. Произвести самостоятельный деплой, используя Docker, либо воспользоваться n8n в виде сервиса, который предоставляют некоторые облачные провайдеры.

Для самостоятельного развертывания вам потребуется

  • непосредственно развернуть n8n, используя Docker;

  • задать необходимые переменные;

  • настроить домен с https.

О том, как это сделать мы писали в прошлой статье на Хабр.

Для установки через Docker, выполните команды:

docker volume create n8n_data  docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Далее, необходимо задать переменные окружения

  • N8N_HOST: 0.0.0.0

  • N8N_PROTOCOL: https

  • GENERIC_TIMEZONE: Europe/Moscow или другая TZ, актуальная для вашего региона

  • N8N_DEFAULT_LOCALE: по умолчанию en

  • N8N_USER_FOLDER: /data (или другой путь для постоянного хранилища)

После запуска n8n будет доступен по порту 5678.

Для работы n8n нам необходим домен с https и настройка webhook.

HTTPS и Webhook

Для корректной работы Webhooks и интеграций с Telegram, нужно обеспечить HTTPS-соединение. Это можно сделать через:

  • Reverse proxy (например, Nginx + Let’s Encrypt)

  • Cloudflare Tunnel

  • Traefik

  • Домен, выделенный вашим облачным провайдером

После этого необходимо указать внешний URL в переменной WEBHOOK_URL, чтобы n8n знал, куда направлять обратные вызовы.

Если вы используете Webhook (к примеру, для работы Телеграм-бота), вам необходимо открыть два порта. К примеру 80 и 5678.

Настройка n8n

После установки n8n (например, через Docker или npm) важно правильно настроить окружение, чтобы обеспечить безопасность, стабильность и удобство работы. Вот ключевые этапы настройки:

  • Настроить авторизацию через переменные окружения (N8N_BASIC_AUTH_*).

  • Установить доменное имя и HTTPS (это мы уже сделали на прошлом этапе).

  • Настроить резервное копирование (n8n_data volume).

  • Подключить сервисы через раздел Credentials.

  • Создать структуру workflow и шаблонов.

Настройка переменных окружения

n8n использует .env или переменные Docker для управления конфигурацией. Основные параметры:

# Базовый доступ N8N_BASIC_AUTH_ACTIVE=true N8N_BASIC_AUTH_USER=admin N8N_BASIC_AUTH_PASSWORD=сильный_пароль  # Базовый адрес (особенно при HTTPS/проксировании) WEBHOOK_URL=https://example.com/ N8N_HOST=localhost N8N_PORT=5678  # Папка с данными (для Docker) N8N_DATA_FOLDER=/home/node/.n8n  # Настройка времени выполнения EXECUTIONS_PROCESS=main

Включение базовой авторизации/аутентификации

Рекомендуется включать базовую авторизацию (или использовать прокси с авторизацией) при открытом доступе:

N8N_BASIC_AUTH_ACTIVE=true

Также можно включить JWT или OAuth авторизацию, если вы используете n8n как часть корпоративной системы.

Секреты и Webhook URL

  • WEBHOOK_URL должен совпадать с вашим внешним адресом (например, при работе через Nginx + Let’s Encrypt).

  • В случае использования HTTPS через Nginx или Traefik — не забудьте настроить корректный reverse proxy с перенаправлением портов.

Работа с прокси-сервером

Если вы используете Nginx или Caddy для HTTPS и проксирования:

location / {   proxy_pass http://localhost:5678;   proxy_http_version 1.1;   proxy_set_header Upgrade $http_upgrade;   proxy_set_header Connection 'upgrade';   proxy_set_header Host $host;   proxy_cache_bypass $http_upgrade; }

Настройка сохранения истории (execution data)

Для продакшн-окружения рекомендуется:

N8N_EXECUTIONS_MODE=queue QUEUE_MODE=redis

Это позволит масштабировать n8n и хранить выполнение задач в базе данных.

Подключение к PostgreSQL или MySQL

Если вы не хотите использовать SQLite, подключите ваш PostgreSQL:

DB_TYPE=postgresdb DB_POSTGRESDB_HOST=db DB_POSTGRESDB_PORT=5432 DB_POSTGRESDB_DATABASE=n8n DB_POSTGRESDB_USER=n8n DB_POSTGRESDB_PASSWORD=password

Настройка автоматического бэкапа

Можно использовать n8n export команду в cron-задаче для резервного копирования workflows и credentials:

bash  n8n export:workflow --all --output=/backup/workflows.json n8n export:credentials --all --output=/backup/credentials.json

Email уведомления и логирование

Для отправки писем (например, при ошибках) зададим переменные:

N8N_SMTP_HOST=smtp.yandex.ru N8N_SMTP_PORT=465 N8N_SMTP_USER=youremail@yandex.ru N8N_SMTP_PASS=app_password

А для логирования можно использовать внешние решения (Sentry и т. д.).

Импорт / экспорт workflows

  • Через UI: «Import workflow» → загрузка .json

  • Через CLI:

bash  n8n import:workflow --input=workflow.json

Создание пользователей (с Multi-user Mode)

С конца 2023 года n8n поддерживает Multi-user mode, который можно включить через переменную:

N8N_USER_MANAGEMENT_DISABLED=false

Появится возможность управлять несколькими аккаунтами, ролями и доступом.

Пример .env файла для n8n в продакшене (у вас он может выглядеть по другому).

# Основные настройки   # Внешний адрес n8n, нужен для работы вебхуков WEBHOOK_URL=https://n8n.example.com  # Хост и порт, по которому работает n8n внутри контейнера N8N_HOST=localhost N8N_PORT=5678  # Путь до пользовательских данных N8N_DATA_FOLDER=/home/node/.n8n  # Авторизация (Basic Auth)   N8N_BASIC_AUTH_ACTIVE=true N8N_BASIC_AUTH_USER=admin N8N_BASIC_AUTH_PASSWORD=СложныйПароль123!   # База данных PostgreSQL   DB_TYPE=postgresdb DB_POSTGRESDB_HOST=db DB_POSTGRESDB_PORT=5432 DB_POSTGRESDB_DATABASE=n8n DB_POSTGRESDB_USER=n8n DB_POSTGRESDB_PASSWORD=PostgresStrongPassword   # Очередь задач (Redis)   EXECUTIONS_MODE=queue QUEUE_MODE=redis QUEUE_REDIS_HOST=redis QUEUE_REDIS_PORT=6379   # Настройки email (опционально)   N8N_SMTP_HOST=smtp.yandex.ru N8N_SMTP_PORT=465 N8N_SMTP_USER=your@yandex.ru N8N_SMTP_PASS=AppPasswordFromYandex N8N_SMTP_SSL=true N8N_SMTP_SENDER_NAME=n8n System   # Безопасность   # Запрет регистрации пользователей (если используется multi-user режим) N8N_USER_MANAGEMENT_DISABLED=false  # Отключение телеметрии N8N_DIAGNOSTICS_ENABLED=false N8N_VERSION_NOTIFICATIONS_ENABLED=false 

Замечания

  • Этот файл предполагает, что у вас развернута база данных PostgreSQL и Redis-сервер.

  • WEBHOOK_URL — обязательно должен быть HTTPS, если вы используете вебхуки.

  • Для безопасности пароли не должны быть слишком простыми.

  • Email-настройки позволят отправлять уведомления (например, об ошибках или для сброса пароля, если включён multi-user режим).

Как подключать внешние API, для которых нет готовых интеграций

Общий принцип заключается в том, что мы:

  1. Используем HTTP Request Node (GET, POST, PUT, DELETE)

  2. Вводим URL, заголовки, параметры и тело запроса

  3. Обрабатываем ответ через Set, Function, IF, Code или Split In Batches

Рассмотрим этот принцип на конкретных примерах.

Примеры API-подключений

1. Работа с API для проверки юридических лиц (например, nalog.ru или checko.ru)

Цель: Получить информацию о компании по ИНН

HTTP Request Node:

json

{   "url": "https://api.checko.ru/v1/company/search",   "method": "GET",   "queryParameters": [     {       "name": "query",       "value": "7707083893"     },     {       "name": "token",       "value": "ваш_api_ключ"     }   ] }

2. Интеграция с AnyChat или LiveTex

Если API работает по Webhook или REST:

json

{   "chat_id": "123",   "message": "Здравствуйте! Чем могу помочь?" }

3. POST-заявка в Tilda через Webhook

Событие на сайте отправляет webhook с данными формы:

Тело запроса (RAW JSON):

json

{   "name": "={{ $json[\"form\"][\"name\"] }}",   "phone": "={{ $json[\"form\"][\"phone\"] }}",   "source": "Tilda" }

4. Получение данных из hh.ru API

5. Интеграция с СДЭК (cdek.ru)

Сначала нужно получить access_token → сохранить в переменной или credentials

  • Step 1: Получение токена (POST):

json

{   "url": "https://api.cdek.ru/v2/oauth/token",   "method": "POST",   "body": {     "grant_type": "client_credentials",     "client_id": "ваш_id",     "client_secret": "ваш_секрет"   } }

Шаг 2: Отправка запроса с полученным токеном.

Советы

  • Используйте Set Node для создания кастомных заголовков и тел запроса.

  • Для обработки ответов применяйте Function или Code Node.

  • Для работы с токенами можно использовать HTTP Request → Set → HTTP Request, либо OAuth2 Credentials.

Перейдем к самому интересному, описанию примеров применимости n8n.

10 примеров сервисов на n8n

1. Поддержка клиентов через Telegram и Yandex 360 (Почта/Календарь)

Сценарий:
Компания использует Telegram-бота для поддержки клиентов и автоматизирует ответы на частые вопросы с помощью GPT-4, а также создаёт события в Яндекс.Календаре для консультаций.

Workflow:

  • Telegram Trigger — AI Agent (GPT-4) — Webhook — Yandex.Calendar API — Telegram Message

2. Отправка уведомлений из 1С или МойСклад в Telegram/Email

Сценарий:
При появлении нового заказа или счета в 1С:Предприятие или МойСклад отправляется уведомление в Telegram и email-уведомление менеджеру.

Workflow:

  • Webhook (из 1С или МойСклад) — Parse JSON — Telegram Node + Email Node

3. Мониторинг отзывов на Яндекс.Картах и отзывов в otzovik.com

Сценарий:
Автоматический сбор новых отзывов о компании и отправка их в канал Telegram для оперативной реакции службы поддержки.

Workflow:

  • HTTP Request (парсинг страницы или API) – Filter New Reviews – Telegram Node – Google Sheets (архив)

4. Интеграция с ВКонтакте (через VK API)

Сценарий:
Автоматическая обработка новых сообщений в группе ВКонтакте и ответы на часто задаваемые вопросы через AI Agent.

Workflow:

  • Webhook (обработка сообщений из VK API) – AI Agent (OpenAI или YandexGPT) – VK API (ответ пользователю)

5. Обработка лидов с Tilda или Bitrix24

Сценарий:
При отправке формы на сайте Tilda или создании лида в Bitrix24 запускается процесс: уведомление менеджера, запись лида в таблицу, автоответ клиенту.

Workflow:

  • Webhook (из Tilda/Bitrix24) – Google Sheets Node – Email Node – Telegram Node

6. Генерация документов через Конструктор.Документов + отправка по email

Сценарий:
После оформления заявки на сайте автоматически формируется договор PDF на основе шаблона и отправляется клиенту на почту.

Workflow:

  • Webhook (форма) – HTTP Request к API Конструктор.Документов – Email Node (с PDF вложением)

7. Автоматическая рассылка аналитики из Яндекс.Метрики

Сценарий:
Раз в неделю менеджеру приходит аналитический отчёт по посещениям сайта из Яндекс.Метрики.

Workflow:

  • Cron Trigger – HTTP Request к Яндекс.Метрика API – HTML генерация отчета – Email Node

8. Отправка SMS через SMS.RU

Сценарий:
После оформления заказа или регистрации отправляется SMS с подтверждением или кодом.

Workflow:

  • Webhook – SMS.RU API (через HTTP Request) – Google Sheets (лог сообщений)

9. Парсинг вакансий с hh.ru и отправка в Telegram

Сценарий:
Автоматический поиск новых вакансий по ключевым словам и отправка в Telegram-канал HR-команды.

Workflow:

  • HTTP Request (поиск через API hh.ru) – Filter New Results – Telegram Node

10. Отправка заказов из Wildberries или Ozon в CRM

Сценарий:
Синхронизация заказов с маркетплейсов в Notion или Bitrix24.

Workflow:

  • HTTP Request (API Wildberries/Ozon) – Format Data – CRM Node (Bitrix24 API или Notion Node)

Разумеется, подобные воркфлоу можно реализовать не только на n8n. Есть и альтернативы. Вот их краткий список.

Аналоги и альтернативы n8n

Хотя n8n обладает высокой гибкостью, у него есть конкуренты:

  • Windmill – альтернатива с Open Source лицензией.

  • Zapier — простой в использовании, без self-host и нужна иностранная карта.

  • Make (Integromat) — визуально мощный, но менее гибкий при кастомизации.

  • Pipedream — ориентирован на разработчиков, хорошая поддержка кода.

  • Automa — автоматизация в браузере.

  • Node-RED — более технический, популярен среди IoT.

Заключение

n8n — мощный инструмент для автоматизации задач с гибкой архитектурой, возможностью self-host и глубокой интеграцией с AI. Он подойдёт как для разработчиков, так и для бизнес-пользователей, желающих автоматизировать процессы без больших затрат.

Интеграция AI-агентов и Telegram-ботов в n8n превращает платформу в полноценный центр автоматизации, который легко масштабировать и адаптировать под нужды проекта.


ссылка на оригинал статьи https://habr.com/ru/articles/908332/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *