Модуль 4 из 6

Автоматизация с n8n

Создаём workflow без кода: Telegram-боты, обработка заявок, интеграция с AI. От простых автоматизаций до сложных бизнес-процессов.

📚 6 уроков💻 Практический
Урок 1

Что такое 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 — сохранённые доступы к сервисам

Урок 2

Создаём первый 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 после изменений!

Урок 3

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 долгий — отвечайте сразу, а результат отправляйте отдельным сообщением.

Урок 4

Интеграция AI в n8n

Подключаем ChatGPT, Claude, генерацию изображений к workflow.

n8n имеет встроенные ноды для работы с AI: OpenAI, Anthropic Claude, LangChain и другие. Можно создавать AI-агентов прямо в workflow.

Доступные AI-ноды

НодаПровайдерВозможности
OpenAIOpenAIGPT-4, DALL-E, Whisper
AnthropicAnthropicClaude 3.5, Claude Opus
AI AgentРазныеАгент с инструментами
Text ClassifierOpenAIКлассификация текста
Sentiment AnalysisOpenAIАнализ тональности

Пример: 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-бюджет за день. Всегда тестируйте с лимитами!

Урок 5

Работа с базой данных в 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.

Урок 6

Развёртывание n8n на сервере

Self-hosted n8n: Docker, настройка, безопасность, бэкапы.

Self-hosted n8n — это полный контроль над данными и никаких лимитов. Для развёртывания нужен VPS-сервер (от 1GB RAM) и базовые знания Docker.

Требования к серверу

ПараметрМинимумРекомендуется
RAM1 GB2-4 GB
CPU1 core2 cores
Disk10 GB20+ GB
OSUbuntu 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 при восстановлении из бэкапа.