- PVSM.RU - https://www.pvsm.ru -
Сегодня мы поговорим о n8n. Open-source платформе, которая позволяет кардинально сократить трудозатраты на автоматизацию рабочих процессов, связывая различные приложения, сервисы и базы данных без необходимости писать сложный код.
Благодаря гибкости и возможности расширения, n8n подходит как для простых задач, как, автоматическая отправка уведомлений, так и для сложных сценариев с участием ИИ-агентов, API, внешних баз данных и Telegram-ботов.
В статье я рассмотрю как общие концепции, так и приведу примеры конкретных реализаций и настроек. Начнем с базовых понятий.
Основные компоненты n8n включают:
Editor UI — веб-интерфейс для создания, редактирования и тестирования workflows.
Workflow Engine — ядро, которое выполняет заданные процессы.
Nodes — строительные блоки, соединяющие разные сервисы и выполняющие действия.
Triggers — узлы, которые запускают процессы (например, webhook или расписание).
Credentials — безопасное хранилище учётных данных для подключения к внешним сервисам.
Перейдем сразу к практической части и рассмотрим подробнее Nodes.
Каждый узел (node) — это модуль, выполняющий определённое действие: отправка email, обращение к API, парсинг данных, генерация текста с помощью ChatGPT и т. д. В n8n есть сотни готовых nodes для популярных сервисов: Google Sheets, Telegram, Notion, GitHub, OpenAI и др.
Также доступны "Function" и "Code" nodes для выполнения кастомной логики на JavaScript.
n8n предлагает множество готовых шаблонов workflows, называемых Templates. Их можно импортировать и адаптировать под свои задачи. Это значительно ускоряет разработку. Особенно, если вы автоматизируете типовые процессы (например, интеграции CRM и мессенджеров, сбор данных из форм, отправку отчётов и т.п.).
Шаблоны доступны в официальной библиотеке n8n [1].
Если вы добавите к Templates свои креды, то получите уже собственных Workflow. Разница тут только в том, что Templates это шаблон, а Workflow уже ваш рабочий процесс.
Workflow — это последовательность узлов, которые обрабатывают данные или выполняют действия. Они могут запускаться вручную, по расписанию, с использованием webhook или в ответ на события в сервисах.
n8n поддерживает:
Ветвление логики (если/иначе)
Параллельные ветки
Повторное использование workflows (subworkflows)
Переменные, данные между узлами и контекст выполнения
На этом мы закончим с теорией и перейдем к практике.
n8n часто используется в связке с телеграм-ботами и LLM. Давайте рассмотрим это подробнее. В телеграм-бот можно отправлять события из систем мониторинга, CRM, использовать как поверхность взаимодействия с AI-агентом и еще можно придумать тысячу применений.
Привязать Telegram-бота к n8n довольно просто:
Создайте бота через BotFather.
Скопируйте токен.
Используйте Telegram Trigger Node или Telegram Node в n8n.
Укажите токен в учётных данных.
Создайте workflow, который реагирует на сообщения, команды, и отправляет ответы.
Комбинация Telegram и AI-агента позволяет построить полноценного чат-бота, способного вести интеллектуальные диалоги, отвечать на вопросы и запускать автоматизации.
n8n добавил интеграцию AI-функциональности,оседлав волну хайпа на LLM, и стал экспоненциально расти (сам сервис работает с 2019 года, но раньше был намного менее известен).
n8n AI Agent позволяет создавать интеллектуальные агенты, которые обрабатывают сообщения и взаимодействуют с другими нодами, сервисами и API. Он может действовать как бот, консультант или автоматизированный обработчик информации.
n8n содержит возможность создания AI-агентов, работающих на основе LLM-моделей практически всех основных вендоров.
С помощью AI Agent можно:
Автоматически обрабатывать запросы пользователей.
Отвечать в мессенджерах.
Генерировать текст.
Анализировать документы.
И многое, многое другое.
AI-агент может быть встроен, как часть workflow, и использовать другие узлы для сбора, обработки и отправки данных.
Убедитесь, что у вас обновлённая версия n8n (2024.3.0 и выше) и активирован доступ к AI Agent в настройках:
.env-параметры:
N8N_FEATURE_FLAG_AA=true
Или активируйте в UI:
Settings → Feature Flags → Enable AI Agent
В UI:
Перейдите в Credentials → Create new → OpenAI API
Введите ваш API ключ (или локальный путь к модели через Ollama)
Пример переменной в .env:
OPENAI_API_KEY=sk-...
Цель: Создать Telegram-бота, который обрабатывает сообщения пользователей через n8n AI Agent (GPT-4) и отправляет ответ обратно.
Шаги workflow
Telegram Trigger Node
Слушает входящие сообщения.
Настроен с Telegram Bot API токеном.
AI Agent Node
Agent Name: SupportBot.
Prompt: Ты — дружелюбный помощник поддержки, отвечай кратко и понятно.
Model: GPT или любая на ваш выбор.
Вход: текст сообщения от пользователя.
Telegram Node (Send Message)
Получает ответ от AI Agent и отправляет обратно пользователю.
[Telegram Trigger] → [AI Agent] → [Telegram Send Message]
{
"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 есть две базовые опции. Произвести самостоятельный деплой, используя Docker, либо воспользоваться n8n в виде сервиса, который предоставляют некоторые облачные провайдеры.
Для самостоятельного развертывания вам потребуется
непосредственно развернуть n8n, используя Docker;
задать необходимые переменные;
настроить домен с https.
О том, как это сделать мы писали в прошлой статье на Хабр [2].
Для установки через 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.
Для корректной работы Webhooks и интеграций с Telegram, нужно обеспечить HTTPS-соединение. Это можно сделать через:
Reverse proxy (например, Nginx + Let's Encrypt)
Cloudflare Tunnel
Traefik
Домен, выделенный вашим облачным провайдером
После этого необходимо указать внешний URL в переменной WEBHOOK_URL, чтобы n8n знал, куда направлять обратные вызовы.
Если вы используете Webhook (к примеру, для работы Телеграм-бота), вам необходимо открыть два порта. К примеру 80 и 5678.
После установки 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 должен совпадать с вашим внешним адресом (например, при работе через 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;
}
Для продакшн-окружения рекомендуется:
N8N_EXECUTIONS_MODE=queue
QUEUE_MODE=redis
Это позволит масштабировать n8n и хранить выполнение задач в базе данных.
Если вы не хотите использовать 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 и т. д.).
Через UI: "Import workflow" → загрузка .json
Через CLI:
bash
n8n import:workflow --input=workflow.json
С конца 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 режим).
Общий принцип заключается в том, что мы:
Используем HTTP Request Node (GET, POST, PUT, DELETE)
Вводим URL, заголовки, параметры и тело запроса
Обрабатываем ответ через Set, Function, IF, Code или Split In Batches
Рассмотрим этот принцип на конкретных примерах.
Метод: GET
Query Params:
query: ИНН
token: ВАШ_API_КЛЮЧ
json
{
"url": "https://api.checko.ru/v1/company/search",
"method": "GET",
"queryParameters": [
{
"name": "query",
"value": "7707083893"
},
{
"name": "token",
"value": "ваш_api_ключ"
}
]
}
Если API работает по Webhook или REST:
Метод: POST
URL: https://api.livechat.com/v1/send [4]
Headers:
Authorization: Bearer <токен>
Content-Type: application/json
Body:
json
{
"chat_id": "123",
"message": "Здравствуйте! Чем могу помочь?"
}
Событие на сайте отправляет webhook с данными формы:
Webhook Node (приём данных) → HTTP Request Node (перенаправление)
Метод: POST
URL: https://crm.yourcompany.ru/api/lead [5]
json
{
"name": "={{ $json["form"]["name"] }}",
"phone": "={{ $json["form"]["phone"] }}",
"source": "Tilda"
}
URL: https://api.hh.ru/vacancies [6]
Метод: GET
Query Parameters:
text: n8n
area: 1 (Москва)
Сначала нужно получить 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.
Сценарий:
Компания использует Telegram-бота для поддержки клиентов и автоматизирует ответы на частые вопросы с помощью GPT-4, а также создаёт события в Яндекс.Календаре для консультаций.
Workflow:
Telegram Trigger - AI Agent (GPT-4) - Webhook - Yandex.Calendar API - Telegram Message
Сценарий:
При появлении нового заказа или счета в 1С:Предприятие или МойСклад отправляется уведомление в Telegram и email-уведомление менеджеру.
Workflow:
Webhook (из 1С или МойСклад) - Parse JSON - Telegram Node + Email Node
Сценарий:
Автоматический сбор новых отзывов о компании и отправка их в канал Telegram для оперативной реакции службы поддержки.
Workflow:
HTTP Request (парсинг страницы или API) – Filter New Reviews – Telegram Node – Google Sheets (архив)
Сценарий:
Автоматическая обработка новых сообщений в группе ВКонтакте и ответы на часто задаваемые вопросы через AI Agent.
Workflow:
Webhook (обработка сообщений из VK API) – AI Agent (OpenAI или YandexGPT) – VK API (ответ пользователю)
Сценарий:
При отправке формы на сайте Tilda или создании лида в Bitrix24 запускается процесс: уведомление менеджера, запись лида в таблицу, автоответ клиенту.
Workflow:
Webhook (из Tilda/Bitrix24) – Google Sheets Node – Email Node – Telegram Node
Сценарий:
После оформления заявки на сайте автоматически формируется договор PDF на основе шаблона и отправляется клиенту на почту.
Workflow:
Webhook (форма) – HTTP Request к API Конструктор.Документов – Email Node (с PDF вложением)
Сценарий:
Раз в неделю менеджеру приходит аналитический отчёт по посещениям сайта из Яндекс.Метрики.
Workflow:
Cron Trigger – HTTP Request к Яндекс.Метрика API – HTML генерация отчета – Email Node
Сценарий:
После оформления заказа или регистрации отправляется SMS с подтверждением или кодом.
Workflow:
Webhook – SMS.RU API (через HTTP Request) – Google Sheets (лог сообщений)
Сценарий:
Автоматический поиск новых вакансий по ключевым словам и отправка в Telegram-канал HR-команды.
Workflow:
HTTP Request (поиск через API hh.ru) – Filter New Results – Telegram Node
Сценарий:
Синхронизация заказов с маркетплейсов в Notion или Bitrix24.
Workflow:
HTTP Request (API Wildberries/Ozon) – Format Data – CRM Node (Bitrix24 API или Notion Node)
Разумеется, подобные воркфлоу можно реализовать не только на n8n. Есть и альтернативы. Вот их краткий список.
Хотя n8n обладает высокой гибкостью, у него есть конкуренты:
Windmill [7] – альтернатива с Open Source лицензией.
Zapier [8] — простой в использовании, без self-host и нужна иностранная карта.
Make (Integromat) [9] — визуально мощный, но менее гибкий при кастомизации.
Pipedream [10] — ориентирован на разработчиков, хорошая поддержка кода.
Automa [11] — автоматизация в браузере.
Node-RED [12] — более технический, популярен среди IoT.
n8n — мощный инструмент для автоматизации задач с гибкой архитектурой, возможностью self-host и глубокой интеграцией с AI. Он подойдёт как для разработчиков, так и для бизнес-пользователей, желающих автоматизировать процессы без больших затрат.
Интеграция AI-агентов и Telegram-ботов в n8n превращает платформу в полноценный центр автоматизации, который легко масштабировать и адаптировать под нужды проекта.
Автор: ovchinnikovproger
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/n8n-telegram/419334
Ссылки в тексте:
[1] официальной библиотеке n8n: https://n8n.io/workflows/
[2] прошлой статье на Хабр: https://habr.com/ru/companies/amvera/articles/890730/
[3] https://api.checko.ru/v1/company/search: https://api.checko.ru/v1/company/search
[4] https://api.livechat.com/v1/send: https://api.livechat.com/v1/send
[5] https://crm.yourcompany.ru/api/lead: https://crm.yourcompany.ru/api/lead
[6] https://api.hh.ru/vacancies: https://api.hh.ru/vacancies
[7] Windmill: https://github.com/orgs/windmill-labs/repositories
[8] Zapier: https://zapier.com/
[9] Make (Integromat): https://www.make.com/en
[10] Pipedream: https://pipedream.com/
[11] Automa: https://www.automa.site/
[12] Node-RED: https://nodered.org/
[13] Источник: https://habr.com/ru/companies/amvera/articles/908332/?utm_campaign=908332&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.