Открыть список гайдов

AfterAI Guides / n8n

Контент-конвейер на n8n: автоматическая генерация постов через OpenAI

Строим флоу, который берёт тему из Google Sheets, генерирует текст через OpenAI, форматирует и публикует в Telegram-канал — без ручного труда.

n8nСредний25 мая 2026 г.
n8nopenaicontenttelegramавтоматизация

Что получится

Ты построишь автоматизированный контент-конвейер:

  1. В Google Sheets есть таблица с темами постов и статусами
  2. n8n по расписанию берёт строки со статусом pending
  3. OpenAI генерирует готовый пост по теме и заданному промпту
  4. Пост форматируется и публикуется в Telegram-канал
  5. Статус строки в таблице обновляется на published

Такой пайплайн закрывает типичную задачу контент-мейкера: идеи есть, а времени писать — нет.


Архитектура флоу

code
[Schedule Trigger]
       ↓
[Google Sheets — читаем pending строки]
       ↓
[IF — есть строки?]
  ↓ Yes              ↓ No
[OpenAI — генерируем текст]   [Stop]
       ↓
[Code node — форматируем]
       ↓
[Telegram — публикуем]
       ↓
[Google Sheets — обновляем статус]

Ноды: Schedule Trigger, Google Sheets (Read + Update), IF, OpenAI Chat Model, Code, Telegram.


Шаг 1: Подготовка Google Sheets

Создай таблицу со следующими колонками:

idtopicstatuspublished_at
1Как использовать n8n для автоматизации emailpending
25 ошибок при работе с OpenAI APIpending
3Webhook vs Polling: что выбратьdone2026-05-20
  • id — уникальный идентификатор строки
  • topic — тема поста (то, что пойдёт в промпт)
  • statuspending / done
  • published_at — дата публикации (заполняем автоматически)

В n8n создай Google Sheets credential:

  • Перейди в Settings → Credentials → New
  • Выбери Google Sheets OAuth2
  • Пройди авторизацию через Google аккаунт
  • Дай доступ к нужной таблице

Шаг 2: Schedule Trigger и чтение из Sheets

  1. Добавь ноду Schedule Trigger:

    • Trigger Interval: Every Day
    • Hour: 9 (публикация в 9 утра)
  2. Добавь ноду Google Sheets (операция Read Rows):

    • Spreadsheet: выбери свою таблицу
    • Sheet: Sheet1
    • Filters: добавь фильтр status = pending
    • Limit: 1 (обрабатываем по одной строке за запуск, чтобы не заспамить канал)
  3. Добавь ноду IF — проверяем, вернулись ли данные:

    • Condition: {{ $json.topic }} is not empty
    • Ветка True идёт дальше, False — завершает флоу

Шаг 3: OpenAI node — генерация текста

  1. Добавь ноду OpenAI (или OpenAI Chat Model в LangChain-режиме):
    • Resource: Chat
    • Operation: Message
    • Model: gpt-4o (или gpt-4o-mini для экономии)
    • Messages: добавь два сообщения — System и User

System prompt:

code
Ты — контент-менеджер для Telegram-канала об AI-автоматизации.
Пиши на русском языке. Стиль: дружелюбный, конкретный, без воды.
Структура поста:
- Цепляющий заголовок (1 строка, без эмодзи в начале)
- Основной текст (3–5 абзацев, практическая ценность)
- Вывод или призыв к действию (1–2 строки)
Длина: 150–250 слов. Форматирование: чистый текст, допускаются эмодзи в меру.

User prompt:

code
Напиши пост на тему: {{ $json.topic }}
  1. В поле Temperature установи 0.7 — достаточно креативно, но стабильно.

Промпт для генерации

Качество промпта — ключевой фактор. Вот расширенная версия для разных форматов:

code
Ты — эксперт по AI-автоматизации, пишешь для аудитории технических builders.

Тема поста: {{ $json.topic }}

Требования:
1. Заголовок: интригующий вопрос или утверждение (до 60 символов)
2. Лид: 1–2 предложения — почему это важно прямо сейчас
3. Основная часть: конкретные шаги, цифры, примеры из практики
4. Финал: одно действие, которое читатель может сделать сегодня

Не используй клише: "В современном мире", "Как известно", "Сегодня мы рассмотрим".
Пиши как практик, не как журналист.

Этот промпт можно параметризировать — добавь в Sheets колонку tone (casual / professional) и подставляй её в промпт.


Шаг 4: Форматирование через Code node

OpenAI возвращает текст, который нужно слегка причесать перед отправкой:

  1. Добавь ноду Code (JavaScript):
javascript
const text = $input.first().json.message.content;

// Убираем лишние пробелы и переносы
const cleaned = text.trim().replace(/\n{3,}/g, '\n\n');

// Добавляем подпись канала
const withSignature = cleaned + '\n\n— @your_channel_name';

return [{ json: { text: withSignature } }];
  1. Также здесь можно добавить валидацию длины:
javascript
if (cleaned.length > 4096) {
  // Telegram ограничение — обрезаем или разбиваем на части
  return [{ json: { text: cleaned.substring(0, 4090) + '...' } }];
}

Шаг 4: Telegram Send — публикация в канал

  1. Добавь ноду Telegram:

    • Credential: твой бот-токен (бот должен быть добавлен в канал как admin)
    • Resource: Message
    • Operation: Send Message
    • Chat ID: @your_channel_username или числовой ID канала
    • Text: {{ $json.text }}
    • Parse Mode: HTML или Markdown — если используешь форматирование
  2. Чтобы узнать числовой ID канала, перешли любое сообщение из канала боту @userinfobot.

После публикации добавь ещё одну ноду Google Sheets (операция Update Row):

  • Обнови колонку statusdone
  • Обнови колонку published_at{{ new Date().toISOString().split('T')[0] }}

Что дальше

  • Мультиформатность: добавь колонку format в Sheets — краткий пост, тред, мини-инструкция — и меняй промпт в зависимости от неё
  • Изображения: подключи DALL-E или Unsplash API, добавляй картинку к посту через sendPhoto
  • Очередь: обрабатывай несколько pending строк, но с задержкой между ними через Wait-ноду — 30 минут между постами
  • Аналитика: фиксируй количество просмотров через Telegram Statistics API и записывай обратно в Sheets

Контент-конвейер — один из самых быстрых способов окупить время на настройку n8n. Пара часов настройки — и неделя контента генерируется за минуты.

Понравился гайд?

Новые гайды, скиллы и разборы кейсов — каждую неделю в Telegram

@afterintelligence →