Автоматизация с n8n
Создаём workflow без кода: Telegram-боты, обработка заявок, интеграция с AI. От простых автоматизаций до сложных бизнес-процессов.
Что такое n8n и зачем он нужен
Знакомство с платформой автоматизации: возможности, преимущества, когда использовать.
n8n — это визуальный конструктор автоматизаций с открытым кодом. Вы соединяете блоки (ноды) и создаёте workflow, которые выполняются автоматически. Никакого кода — только drag-and-drop.
Что можно автоматизировать
• Telegram-боты (приём сообщений, ответы, рассылки) • Обработка заявок с сайта • Интеграция с CRM (amoCRM, Bitrix24) • Email-автоответчики • Парсинг данных • Генерация контента с AI • Уведомления в мессенджеры • Синхронизация данных между сервисами
n8n vs аналоги
| Платформа | Плюсы | Минусы | Цена |
|---|---|---|---|
| n8n | Открытый код, self-hosted, гибкость | Нужен сервер | Бесплатно (self-hosted) |
| Zapier | Простота, много интеграций | Дорого, лимиты | От /мес |
| Make | Визуальный, мощный | Сложнее освоить | От /мес |
| Albato | Русскоязычный, CRM-фокус | Меньше интеграций | От 990₽/мес |
n8n можно развернуть на своём сервере бесплатно. Это идеально для бизнеса: данные под вашим контролем, нет лимитов на количество выполнений.
Базовые понятия
• Workflow — автоматизация целиком (например, "Telegram-бот") • Node (нода) — один блок действия ("Отправить сообщение") • Trigger — стартовая нода, запускающая workflow • Connection — связь между нодами (данные передаются по стрелкам) • Execution — одно выполнение workflow • Credentials — сохранённые доступы к сервисам
Создаём первый workflow
Пошаговое создание простой автоматизации: от триггера до результата.
Создадим простой workflow: при получении webhook-запроса отправляем уведомление в Telegram. Это базовый паттерн для обработки заявок с сайта.
Шаг 1: Создание workflow
1. Нажмите "Create new workflow" 2. Назовите его (например, "Уведомление о заявке") 3. На пустом холсте нажмите "+" для добавления первой ноды
Шаг 2: Добавляем Webhook trigger
1. Найдите ноду "Webhook" 2. Добавьте её на холст 3. В настройках выберите HTTP Method: POST 4. Скопируйте URL вебхука — его нужно указать на сайте Webhook — это "точка входа". Когда на этот URL приходит запрос, workflow запускается.
Шаг 3: Добавляем Telegram
1. Добавьте ноду "Telegram" 2. Выберите Resource: Message → Operation: Send Message 3. Создайте Credentials: - Получите токен бота у @BotFather в Telegram - Вставьте токен в n8n 4. Укажите Chat ID (ваш Telegram ID) 5. В поле Text напишите сообщение
Свой Telegram ID можно узнать у бота @userinfobot. Отправьте ему любое сообщение — он ответит вашим ID.
Шаг 4: Используем данные из webhook
В поле Text можно вставить данные из входящего запроса: "Новая заявка! Имя: {{ .name }} Телефон: {{ .phone }} Сообщение: {{ .message }}" Двойные скобки {{ }} — это выражения n8n. Они вставляют данные из предыдущей ноды.
Шаг 5: Тестирование и активация
1. Нажмите "Test workflow" — откроется окно теста 2. Отправьте тестовый POST-запрос на webhook URL (можно через Postman) 3. Проверьте, что сообщение пришло в Telegram 4. Если всё работает — нажмите "Activate" чтобы включить workflow
В n8n 2.0 появились Save и Publish. Save сохраняет черновик, Publish публикует в production. Не забывайте нажимать Publish после изменений!
Telegram-бот на n8n: полный гайд
Создаём полноценного бота: обработка команд, inline-кнопки, состояния пользователей.
Telegram-бот — самый частый кейс автоматизации. В n8n можно создать бота любой сложности: от простого автоответчика до полноценного сервиса с базой данных.
Архитектура бота
Типичная структура workflow для бота: 1. Telegram Trigger — получает все сообщения 2. Switch — роутер, определяет тип сообщения 3. Ветки обработки — для команд, текста, callback 4. Ответы — отправка сообщений/кнопок 5. База данных — хранение состояний (опционально)
Настройка Telegram Trigger
1. Добавьте ноду "Telegram Trigger" 2. Подключите credentials с токеном бота 3. В Updates выберите что получать: - message — текстовые сообщения - callback_query — нажатия inline-кнопок - edited_message — отредактированные сообщения
Switch для роутинга
Нода Switch направляет сообщения по разным веткам: • Условие 1: {{ .message.text }} equals "/start" • Условие 2: {{ .message.text }} starts with "/" • Условие 3: {{ .callback_query }} is not empty • Fallback: всё остальное
Используйте sticky notes (заметки) на холсте для документации. Подписывайте что делает каждая ветка — через месяц сами скажете себе спасибо.
Inline-кнопки
В ноде Telegram → Send Message: 1. Reply Markup: Inline Keyboard 2. Inline Keyboard: [ [ { "text": "Да ✅", "callback_data": "confirm_yes" }, { "text": "Нет ❌", "callback_data": "confirm_no" } ] ] Callback_data — это то, что вы получите в workflow при нажатии.
Answer Callback Query
После обработки нажатия кнопки ОБЯЗАТЕЛЬНО отправьте Answer Callback Query. Иначе у пользователя будет крутиться загрузка на кнопке. Добавьте ноду Telegram → Answer Callback Query сразу после получения callback.
Telegram требует ответ на callback_query в течение 10 секунд. Если workflow долгий — отвечайте сразу, а результат отправляйте отдельным сообщением.
Интеграция AI в n8n
Подключаем ChatGPT, Claude, генерацию изображений к workflow.
n8n имеет встроенные ноды для работы с AI: OpenAI, Anthropic Claude, LangChain и другие. Можно создавать AI-агентов прямо в workflow.
Доступные AI-ноды
| Нода | Провайдер | Возможности |
|---|---|---|
| OpenAI | OpenAI | GPT-4, DALL-E, Whisper |
| Anthropic | Anthropic | Claude 3.5, Claude Opus |
| AI Agent | Разные | Агент с инструментами |
| Text Classifier | OpenAI | Классификация текста |
| Sentiment Analysis | OpenAI | Анализ тональности |
Пример: AI-ответы в боте
Workflow: 1. Telegram Trigger → получаем сообщение пользователя 2. OpenAI → отправляем в GPT с системным промптом 3. Telegram → отправляем ответ пользователю Системный промпт: "Ты помощник компании по натяжным потолкам. Отвечай кратко и по делу. Если спрашивают цену — направляй на консультацию. Не обсуждай конкурентов."
AI Agent с инструментами
AI Agent — мощная нода, которая позволяет давать AI доступ к инструментам: • Calculator — математические расчёты • Web Search — поиск в интернете • HTTP Request — запросы к API • Custom Code — ваш JavaScript код Агент сам решает какой инструмент использовать для ответа на вопрос.
Начните с простого: один вызов OpenAI без агентов. Агенты сложнее отлаживать, но мощнее для комплексных задач.
Контроль расходов
AI API стоит денег. Способы оптимизации: • Используйте GPT-3.5 вместо GPT-4 для простых задач • Ограничьте max_tokens в ответе • Кэшируйте типовые ответы • Добавьте rate limiting (не больше N запросов в минуту) • Мониторьте расходы через OpenAI Dashboard
Один неправильно настроенный workflow может сжечь весь API-бюджет за день. Всегда тестируйте с лимитами!
Работа с базой данных в n8n
PostgreSQL, хранение состояний, CRUD-операции в workflow.
Для сложных ботов и автоматизаций нужна база данных: хранить пользователей, состояния диалогов, историю заказов. n8n поддерживает PostgreSQL, MySQL, MongoDB и другие.
Когда нужна база данных
• Многошаговые диалоги (нужно помнить на каком шаге пользователь) • Хранение заказов/записей • Подписки и рассылки • Аналитика и статистика • Персонализация (имя, настройки пользователя)
Настройка PostgreSQL
1. Добавьте ноду "Postgres" 2. Создайте Credentials: - Host: адрес сервера (localhost или IP) - Database: имя базы данных - User: пользователь - Password: пароль 3. Выберите Operation: Execute Query 4. Напишите SQL-запрос
Типовые операции
Создать пользователя: INSERT INTO users (telegram_id, name, created_at) VALUES ({{ .message.from.id }}, '{{ .message.from.first_name }}', NOW()) ON CONFLICT (telegram_id) DO NOTHING; Получить пользователя: SELECT * FROM users WHERE telegram_id = {{ .message.from.id }}; Обновить состояние: UPDATE users SET state = 'awaiting_phone' WHERE telegram_id = {{ .message.from.id }};
Используйте ON CONFLICT DO NOTHING для INSERT — это предотвратит ошибки при повторной регистрации пользователя.
Паттерн: состояния диалога
Для многошаговых диалогов: 1. В таблице users добавьте поле state (varchar) 2. В начале workflow читайте текущий state 3. Switch роутит по state + команде 4. После действия обновляйте state Состояния: 'idle', 'awaiting_name', 'awaiting_phone', 'confirming' и т.д.
Всегда экранируйте пользовательский ввод в SQL-запросах! Лучше использовать параметризованные запросы через Expression.
Развёртывание n8n на сервере
Self-hosted n8n: Docker, настройка, безопасность, бэкапы.
Self-hosted n8n — это полный контроль над данными и никаких лимитов. Для развёртывания нужен VPS-сервер (от 1GB RAM) и базовые знания Docker.
Требования к серверу
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| RAM | 1 GB | 2-4 GB |
| CPU | 1 core | 2 cores |
| Disk | 10 GB | 20+ GB |
| OS | Ubuntu 20.04+ | Ubuntu 22.04 |
Docker Compose конфиг
version: '3.8' services: n8n: image: n8nio/n8n restart: always ports: - "5678:5678" environment: - N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_PASSWORD=secure_password - N8N_HOST=n8n.yourdomain.com - N8N_PROTOCOL=https - WEBHOOK_URL=https://n8n.yourdomain.com/ volumes: - n8n_data:/home/node/.n8n volumes: n8n_data:
Настройка HTTPS
Для продакшена обязательно нужен HTTPS. Варианты: 1. Caddy (рекомендую) — автоматические SSL сертификаты 2. Nginx + Let's Encrypt — классика 3. Cloudflare — проксирование через облако Caddyfile: n8n.yourdomain.com { reverse_proxy n8n:5678 }
Caddy автоматически получает и обновляет SSL-сертификаты. Минимум настроек, максимум надёжности.
Бэкапы
n8n хранит данные в SQLite (по умолчанию) или PostgreSQL. Что бэкапить: • /home/node/.n8n/ — вся директория n8n • База данных (если PostgreSQL) • Credentials зашифрованы ключом N8N_ENCRYPTION_KEY Скрипт бэкапа: docker exec n8n tar czf - /home/node/.n8n > backup_20251223.tar.gz
Безопасность
Чеклист безопасности: ✓ Включите Basic Auth (N8N_BASIC_AUTH_*) ✓ Используйте HTTPS ✓ Закройте порт 5678 в firewall (только через reverse proxy) ✓ Регулярно обновляйте n8n ✓ Делайте бэкапы ✓ Не храните секреты в workflow — используйте Credentials
Сохраните N8N_ENCRYPTION_KEY! Без него невозможно расшифровать credentials при восстановлении из бэкапа.

