Автоматизация контента, рассылок и аналитики
n8n — это self-hosted платформа для автоматизации с открытым исходным кодом. Установим её через Docker за одну команду. После запуска веб-интерфейс будет доступен на localhost:5678.
# Запуск n8n через Docker docker run -d --name n8n \ -p 5678:5678 \ -v n8n_data:/home/node/.n8n \ -e N8N_SECURE_COOKIE=false \ docker.n8n.io/n8nio/n8n # Проверяем что контейнер запущен docker ps | grep n8n # Логи для отладки docker logs n8n --tail 20
Добавляем учётные данные OpenAI в n8n. Заходим в Settings → Credentials → OpenAI API. Либо создаём их через переменные окружения при запуске контейнера.
# Перезапускаем n8n с учётными данными OpenAI docker stop n8n && docker rm n8n docker run -d --name n8n \ -p 5678:5678 \ -v n8n_data:/home/node/.n8n \ -e N8N_SECURE_COOKIE=false \ -e "N8N_CREDENTIAL_OVERWRITE_OPENAI_API_KEY=sk-proj-..." \ docker.n8n.io/n8nio/n8n
Теперь в нодах OpenAI можно выбирать созданное подключение — ключ подставится автоматически.
Первый рабочий workflow. Триггер — расписание (каждое утро в 9:00). Нода OpenAI генерирует пост для Telegram/соцсетей на основе темы из Google Sheets. Результат сохраняется обратно в таблицу.
// Function Node в n8n — подготовка промпта const row = $input.first().json; const topic = row.topic || "AI-автоматизация"; const tone = row.tone || "professional"; return { prompt: `Напиши маркетинговый пост для Telegram-канала. Тема: ${topic} Тон: ${tone} Формат: заголовок + 3-5 абзацев + CTA. Длина: 800-1200 символов. Целевая аудитория: владельцы бизнеса, интересующиеся AI.` };
Этот код идёт в Function Node перед вызовом OpenAI. Он динамически формирует промпт из данных строки Google Sheets.
Настраиваем автоматическую отправку сгенерированного контента подписчикам. Нода Gmail в n8n использует OAuth2. Контент приходит из предыдущей ноды OpenAI.
// Function Node — форматирование письма const aiResponse = $input.first().json.message.content; const subscribers = $items("Google Sheets"); const emails = []; for (const sub of subscribers) { emails.push({ to: sub.json.email, subject: `🤖 Еженедельный AI-дайджест — ${new Date().toLocaleDateString('ru')}`, body: aiResponse, options: { html: true } }); } return emails;
Собираем метрики из Google Sheets (открытия, клики, конверсии) и отправляем их в OpenAI для аналитического отчёта. Результат — Markdown-отчёт с рекомендациями.
// Function Node — агрегация метрик кампании const rows = $items("Google Sheets"); const sent = rows.filter(r => r.json.status === "sent").length; const opened = rows.filter(r => r.json.opened === true).length; const clicked = rows.filter(r => r.json.clicked === true).length; const reportPrompt = `Проанализируй метрики email-кампании: - Отправлено: ${sent} - Открыто: ${opened} (${(opened/sent*100).toFixed(1)}%) - Кликов: ${clicked} (CTR: ${(clicked/opened*100).toFixed(1)}%) Дай 3 конкретные рекомендации по улучшению. Формат: markdown.`; return { prompt: reportPrompt, metrics: { sent, opened, clicked } };
Отправляем сгенерированный пост напрямую в Telegram-канал через Bot API. Используем HTTP Request Node в n8n — никакого дополнительного кода не нужно.
// HTTP Request Node — POST в Telegram API // URL: https://api.telegram.org/bot{TOKEN}/sendMessage // Method: POST // Body (JSON): { "chat_id": "@your_channel", "text": "{{ $json.message }}", "parse_mode": "Markdown", "disable_web_page_preview": false } // Для получения токена — пишем @BotFather в Telegram // и создаём бота командой /newbot
Готовый workflow можно экспортировать как JSON и развернуть на другом экземпляре n8n. Это удобно для тиражирования на несколько проектов или команд.
# Экспорт workflow из n8n через CLI docker exec n8n n8n export:workflow --id=1 --output=/tmp/marketing_agent.json # Копируем на хост docker cp n8n:/tmp/marketing_agent.json ./marketing_agent.json # Импорт на другом экземпляре docker exec n8n n8n import:workflow --input=/tmp/marketing_agent.json # Активируем workflow docker exec n8n n8n update:workflow --id=2 --active=true
Вы создали полностью автономный AI-агент для маркетинга на n8n. Система ежедневно собирает темы из Google Sheets, генерирует контент через OpenAI, отправляет email-рассылку подписчикам, публикует пост в Telegram и анализирует метрики — всё без единой строчки ручного кода. Workflow работает по расписанию, все результаты логируются в таблицу. Вы можете масштабировать этот подход на любое количество каналов и кампаний, меняя только промпты и источники данных.