Что получится
Ты построишь автоматизированный контент-конвейер:
- В Google Sheets есть таблица с темами постов и статусами
- n8n по расписанию берёт строки со статусом
pending - OpenAI генерирует готовый пост по теме и заданному промпту
- Пост форматируется и публикуется в Telegram-канал
- Статус строки в таблице обновляется на
published
Такой пайплайн закрывает типичную задачу контент-мейкера: идеи есть, а времени писать — нет.
Архитектура флоу
[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
Создай таблицу со следующими колонками:
| id | topic | status | published_at |
|---|---|---|---|
| 1 | Как использовать n8n для автоматизации email | pending | |
| 2 | 5 ошибок при работе с OpenAI API | pending | |
| 3 | Webhook vs Polling: что выбрать | done | 2026-05-20 |
- id — уникальный идентификатор строки
- topic — тема поста (то, что пойдёт в промпт)
- status —
pending/done - published_at — дата публикации (заполняем автоматически)
В n8n создай Google Sheets credential:
- Перейди в Settings → Credentials → New
- Выбери Google Sheets OAuth2
- Пройди авторизацию через Google аккаунт
- Дай доступ к нужной таблице
Шаг 2: Schedule Trigger и чтение из Sheets
-
Добавь ноду Schedule Trigger:
- Trigger Interval: Every Day
- Hour: 9 (публикация в 9 утра)
-
Добавь ноду Google Sheets (операция Read Rows):
- Spreadsheet: выбери свою таблицу
- Sheet: Sheet1
- Filters: добавь фильтр
status = pending - Limit:
1(обрабатываем по одной строке за запуск, чтобы не заспамить канал)
-
Добавь ноду IF — проверяем, вернулись ли данные:
- Condition:
{{ $json.topic }}is not empty - Ветка
Trueидёт дальше,False— завершает флоу
- Condition:
Шаг 3: OpenAI node — генерация текста
- Добавь ноду OpenAI (или OpenAI Chat Model в LangChain-режиме):
- Resource:
Chat - Operation:
Message - Model:
gpt-4o(илиgpt-4o-miniдля экономии) - Messages: добавь два сообщения — System и User
- Resource:
System prompt:
Ты — контент-менеджер для Telegram-канала об AI-автоматизации.
Пиши на русском языке. Стиль: дружелюбный, конкретный, без воды.
Структура поста:
- Цепляющий заголовок (1 строка, без эмодзи в начале)
- Основной текст (3–5 абзацев, практическая ценность)
- Вывод или призыв к действию (1–2 строки)
Длина: 150–250 слов. Форматирование: чистый текст, допускаются эмодзи в меру.
User prompt:
Напиши пост на тему: {{ $json.topic }}
- В поле Temperature установи
0.7— достаточно креативно, но стабильно.
Промпт для генерации
Качество промпта — ключевой фактор. Вот расширенная версия для разных форматов:
Ты — эксперт по AI-автоматизации, пишешь для аудитории технических builders.
Тема поста: {{ $json.topic }}
Требования:
1. Заголовок: интригующий вопрос или утверждение (до 60 символов)
2. Лид: 1–2 предложения — почему это важно прямо сейчас
3. Основная часть: конкретные шаги, цифры, примеры из практики
4. Финал: одно действие, которое читатель может сделать сегодня
Не используй клише: "В современном мире", "Как известно", "Сегодня мы рассмотрим".
Пиши как практик, не как журналист.
Этот промпт можно параметризировать — добавь в Sheets колонку tone (casual / professional) и подставляй её в промпт.
Шаг 4: Форматирование через Code node
OpenAI возвращает текст, который нужно слегка причесать перед отправкой:
- Добавь ноду Code (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 } }];
- Также здесь можно добавить валидацию длины:
if (cleaned.length > 4096) {
// Telegram ограничение — обрезаем или разбиваем на части
return [{ json: { text: cleaned.substring(0, 4090) + '...' } }];
}
Шаг 4: Telegram Send — публикация в канал
-
Добавь ноду Telegram:
- Credential: твой бот-токен (бот должен быть добавлен в канал как admin)
- Resource:
Message - Operation:
Send Message - Chat ID:
@your_channel_usernameили числовой ID канала - Text:
{{ $json.text }} - Parse Mode:
HTMLилиMarkdown— если используешь форматирование
-
Чтобы узнать числовой ID канала, перешли любое сообщение из канала боту
@userinfobot.
После публикации добавь ещё одну ноду Google Sheets (операция Update Row):
- Обнови колонку
status→done - Обнови колонку
published_at→{{ new Date().toISOString().split('T')[0] }}
Что дальше
- Мультиформатность: добавь колонку
formatв Sheets — краткий пост, тред, мини-инструкция — и меняй промпт в зависимости от неё - Изображения: подключи DALL-E или Unsplash API, добавляй картинку к посту через
sendPhoto - Очередь: обрабатывай несколько
pendingстрок, но с задержкой между ними через Wait-ноду — 30 минут между постами - Аналитика: фиксируй количество просмотров через Telegram Statistics API и записывай обратно в Sheets
Контент-конвейер — один из самых быстрых способов окупить время на настройку n8n. Пара часов настройки — и неделя контента генерируется за минуты.