📢

AI-агент для маркетинга на n8n

Автоматизация контента, рассылок и аналитики

intermediate ⏱ 20 мин
⏰ Cron-триггер 🌐 Webhook 📊 Google Sheets n8n Workflow • HTTP Request • OpenAI Node • Function Node • Gmail / Sheets • IF / Switch 🧠 OpenAI API GPT-4o / GPT-4.1 📧 Gmail / SMTP Email-рассылка 📊 Google Sheets Аналитика / логи Архитектура: n8n AI-маркетинг агент

# 1. Установка и запуск n8n

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

# 2. Подключение OpenAI API ключа

Добавляем учётные данные 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 можно выбирать созданное подключение — ключ подставится автоматически.

# 3. Workflow: генерация маркетингового поста

Первый рабочий 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.

# 4. Email-рассылка через Gmail API

Настраиваем автоматическую отправку сгенерированного контента подписчикам. Нода 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;

# 5. Анализ эффективности кампании через OpenAI

Собираем метрики из 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 } };

# 6. Публикация в Telegram через HTTP Request

Отправляем сгенерированный пост напрямую в 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

# 7. Экспорт и деплой готового workflow

Готовый 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 работает по расписанию, все результаты логируются в таблицу. Вы можете масштабировать этот подход на любое количество каналов и кампаний, меняя только промпты и источники данных.

🔗 Полезные ссылки

📖 Документация n8n 💻 GitHub 🧠 OpenAI API Docs