---
title: "SEO-брифы через n8n: контент без ошибок | Nodbot"
source_url: "https://nodbot.ru/workflows/content-factory-seo-briefs/"
canonical_url: "https://nodbot.ru/workflows/content-factory-seo-briefs/"
language: "ru"
content_type: "WorkflowTemplate"
section: "workflows"
generated_at: "2026-05-30"
word_count_source: 973
---

# Контент-фабрика на n8n: SEO-брифы, фактчекинг и очередь публикаций

## AI summary

Страница показывает, как собрать в n8n контент-фабрику для SEO-брифов: принять тему, проверить интент, собрать факты, подготовить ТЗ, поставить материал в очередь и не выпустить непроверенный текст.

## Best used for

Полноценный Problem/Solution-мануал для внедрения в n8n: импортировать workflow JSON, настроить API/CMS/мессенджер, выполнить production-тесты и передать решение команде.

## Table of contents

- Проблема: почему контент-фабрика без контроля плодит слабые статьи
- Архитектура workflow для SEO-брифов
- Контракт входных данных
- Скрипт n8n для проверки интента и фактов
- Готовый workflow JSON
- Пошаговая настройка контент-фабрики
- Тесты перед production
- Production-риски SEO-контента
- Полезные ссылки и смежные сценарии
- Критерии готовности

## Key topics

- контент-фабрика n8n
- SEO-бриф
- фактчекинг
- LLM-разметка
- очередь публикаций

## Source outline

Контент-фабрика на n8n: SEO-брифы, фактчекинг и очередь публикаций ¶ Обновлено: 2026-05-30 AI summary: Страница показывает, как собрать в n8n контент-фабрику для SEO-брифов: принять тему, проверить интент, собрать факты, подготовить ТЗ, поставить материал в очередь и не выпустить непроверенный текст. Шаблон для внедрения Скачать workflow JSON Скачать test payload Скопировать curl Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production. Содержание Проблема: почему контент-фабрика без контроля плодит слабые статьи Архитектура workflow для SEO-брифов Контракт входных данных Скрипт n8n для проверки интента и фактов Готовый workflow JSON Пошаговая настройка контент-фабрики Тесты перед production Production-риски SEO-контента Полезные ссылки и смежные сценарии Критерии готовности Проблема: без строгого брифа автоматизированный контент превращается в одинаковые статьи, слабые заголовки и непроверенные факты, которые не помогают пользователю и мешают SEO. Решение: надежный сценарий — принимать тему через n8n, проверять интент, собирать источники, формировать редакционный SEO-бриф, добавлять LLM-разметку и ставить задачу в очередь публикации. Workflow превращает тему в проверяемый SEO-бриф, а не в сырой автогенерированный текст. Проблема: почему контент-фабрика без контроля плодит слабые статьи ¶ Автоматизация контента часто начинается с простой идеи: отправить тему в LLM и получить черновик. На практике такой процесс быстро создаёт одинаковые статьи, выдуманные факты, слабые заголовки и страницы, которые конкурируют между собой. Для SEO это опаснее, чем медленная ручная подготовка: сайт получает много URL, но мало полезности. Контент-фабрика на n8n должна работать как редакционный конвейер, а не как генератор текста. На входе нужна тема, интент, целевая страница, список обязательных блоков, источники и критерии готовности. На выходе — не абстрактный текст, а SEO-бриф, который редактор может проверить и превратить в полезную статью. Архитектура workflow для SEO-брифов ¶ Нода Роль Что проверить Webhook brief request Принимает тему и данные кластера topic, target_url, intent, primary_keyword Validate brief inputs Проверяет полноту ТЗ нет пустого интента, есть источники и CTA Collect official sources Собирает первоисточники не подменять docs блогами и форумами Build editor task Готовит структуру статьи H1/H2, LSI, payload, workflow JSON Queue for publication Отправляет задачу в Notion/CMS статус, владелец, дедлайн Контракт входных данных ¶ { "topic": "n8n Google Sheets upsert по телефону", "cluster": "workflows/crm", "target_url": "/workflows/google-sheets-upsert-by-phone/", "audience": "интеграторы n8n и владельцы CRM", "intent": "решить проблему дублей лидов", "primary_keyword": "n8n google sheets upsert", "must_include": [ "payload", "Code node", "production-риски", "workflow JSON" ], "sources": [ "https://docs.n8n.io/", "https://developers.google.com/sheets/api" ], "deadline": "2026-06-03" } Не передавайте в workflow только ключевое слово. Для качественного SEO-брифа нужен контекст: кто читатель, какую боль решает материал, чем страница отличается от соседних и какие блоки нельзя пропустить. Скрипт n8n для проверки интента и фактов ¶ const src = $json.body ?? $json; const topic = String(src.topic ?? '').trim(); const keyword = String(src.primary_keyword ?? '').trim().toLowerCase(); const intent = String(src.intent ?? '').trim(); if (!topic || topic.length < 12) { throw new Error('Topic is too short for SEO brief'); } const required = ['payload', 'workflow json', 'production', 'code node']; const mustInclude = (src.must_include ?? []).map(v => String(v).toLowerCase()); const missing = required.filter(item => !mustInclude.join(' ').includes(item)); const slug = topic .toLowerCase() .replace(/[^a-zа-яё0-9]+/gi, '-') .replace(/^-|-$/g, '') .slice(0, 80); return [{ json: { content_status: missing.length ? 'needs_editor_review' : 'ready_for_brief', slug, title_angle: `${topic}: конкретная проблема и production-решение`, search_intent: intent || 'problem-solution tutorial', primary_keyword: keyword, required_blocks: ['Problem/Solution', 'TOC', 'workflow JSON', 'test payload', 'risks', 'CTA'], missing_requirements: missing, llm_summary: `SEO-бриф для статьи: ${topic}. Интент: ${intent || keyword}`, created_at: new Date().toISOString() } }]; Что делает этот Code Node Он не пишет статью автоматически. Он проверяет, достаточно ли данных для редакционного брифа, формирует slug, обязательные блоки и статус. Если нет workflow JSON, payload или production-рисков, задача уходит на доработку до генерации текста. Готовый workflow JSON ¶ Скачать готовый workflow JSON Скачать тестовый payload { "name": "Nodbot - SEO brief factory with fact-check queue", "nodes": [ { "name": "Webhook brief request", "type": "n8n-nodes-base.webhook", "purpose": "Принять тему, интент и исходные источники" }, { "name": "Validate brief inputs", "type": "n8n-nodes-base.code", "purpose": "Проверить тему, keyword, обязательные блоки и LLM-summary" }, { "name": "Collect official sources", "type": "n8n-nodes-base.httpRequest", "purpose": "Собрать ссылки на официальные документы и первоисточники" }, { "name": "Build editor task", "type": "n8n-nodes-base.code", "purpose": "Сформировать ТЗ с H1/H2, payload, рисками и CTA" }, { "name": "Queue for publication", "type": "n8n-nodes-base.httpRequest", "purpose": "Отправить бриф в Notion, CMS или трекер задач" } ], "connections": "Webhook → Validate → Sources → Build task → Queue" } Пошаговая настройка контент-фабрики ¶ Создайте форму или внутренний webhook для подачи темы. Опишите обязательные поля: интент, аудитория, target URL, первичные источники. Подключите хранилище задач: Notion, Google Sheets, Linear, YouTrack или CMS. Добавьте правило, которое блокирует задачу без источников, кода, тестов и CTA. Сделайте отдельный статус для фактчекинга, чтобы непроверенный текст не попадал в публикацию. Тесты перед production ¶ curl -X POST "https://YOUR-N8N-DOMAIN/webhook/content-factory-seo-briefs" \ -H "Content-Type: application/json" \ --data @content-factory-seo-briefs-payload.json Прогоните три сценария: полный SEO-бриф, тема без источников и тема, которая пересекается с существующей страницей. В последнем случае workflow должен предложить обновление текущего URL, а не создание нового дубля. Production-риски SEO-контента ¶ Редакторский комментарий попал в статью. Уберите любые блоки вида “SEO-интент страницы” из публичного текста. LLM придумала факты. Разделяйте генерацию структуры и проверку по источникам. Каннибализация. Перед созданием новой темы проверяйте существующие URL кластера. Нет LLM-разметки. Без AI summary и LLM markdown страница хуже переиспользуется поиском и ассистентами. Нет владельца задачи. Контент-фабрика без ответственного быстро превращается в очередь черновиков. Полезные ссылки и смежные сценарии ¶ Для внедрения пригодятся внутренние материалы: регрессионные тесты промптов , тестирование workflow , Notion → WordPress черновик и RSS-дайджест в Telegram . Из внешних источников используйте официальную документацию n8n и API-документы сервисов, которые подключаете к контент-процессу. Так должна выглядеть задача на выходе: интент, статус, требования и следующий шаг для редактора. Критерии готовности ¶ Каждая тема привязана к интенту и target URL. В брифе есть H1/H2, LSI, источники, code/payload и CTA. Новая статья не дублирует существующую страницу кластера. Фактчекинг отделён от генерации текста. LLM summary и markdown обновляются вместе с HTML. Нужна контент-фабрика без SEO-воды? Nodbot настроит процесс: брифы, фактчекинг, LLM-разметку, очередь публикации и контроль дублей между страницами. Обсудить контент-процесс

## Test payload

```json
{
  "topic": "n8n Google Sheets upsert по телефону",
  "cluster": "workflows/crm",
  "target_url": "/workflows/google-sheets-upsert-by-phone/",
  "audience": "интеграторы n8n и владельцы CRM",
  "intent": "решить проблему дублей лидов",
  "primary_keyword": "n8n google sheets upsert",
  "must_include": [
    "payload",
    "Code node",
    "production-риски",
    "workflow JSON"
  ],
  "sources": [
    "https://docs.n8n.io/",
    "https://developers.google.com/sheets/api"
  ],
  "deadline": "2026-06-03"
}
```

## Key implementation snippet

```javascript
const src = $json.body ?? $json;
const topic = String(src.topic ?? '').trim();
const keyword = String(src.primary_keyword ?? '').trim().toLowerCase();
const intent = String(src.intent ?? '').trim();

if (!topic || topic.length < 12) {
  throw new Error('Topic is too short for SEO brief');
}

const required = ['payload', 'workflow json', 'production', 'code node'];
const mustInclude = (src.must_include ?? []).map(v => String(v).toLowerCase());
const missing = required.filter(item => !mustInclude.join(' ').includes(item));

const slug = topic
  .toLowerCase()
  .replace(/[^a-zа-яё0-9]+/gi, '-')
  .replace(/^-|-$/g, '')
  .slice(0, 80);

return [{
  json: {
    content_status: missing.length ? 'needs_editor_review' : 'ready_for_brief',
    slug,
    title_angle: `${topic}: конкретная проблема и production-решение`,
    search_intent: intent || 'problem-solution tutorial',
    primary_keyword: keyword,
    required_blocks: ['Problem/Solution', 'TOC', 'workflow JSON', 'test payload', 'risks', 'CTA'],
    missing_requirements: missing,
    llm_summary: `SEO-бриф для статьи: ${topic}. Интент: ${intent || keyword}`,
    created_at: new Date().toISOString()
  }
}];
```

## Importable workflow structure

```json
{
  "name": "Nodbot - SEO brief factory with fact-check queue",
  "nodes": [
    {
      "name": "Webhook brief request",
      "type": "n8n-nodes-base.webhook",
      "purpose": "Принять тему, интент и исходные источники"
    },
    {
      "name": "Validate brief inputs",
      "type": "n8n-nodes-base.code",
      "purpose": "Проверить тему, keyword, обязательные блоки и LLM-summary"
    },
    {
      "name": "Collect official sources",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Собрать ссылки на официальные документы и первоисточники"
    },
    {
      "name": "Build editor task",
      "type": "n8n-nodes-base.code",
      "purpose": "Сформировать ТЗ с H1/H2, payload, рисками и CTA"
    },
    {
      "name": "Queue for publication",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Отправить бриф в Notion, CMS или трекер задач"
    }
  ],
  "connections": "Webhook → Validate → Sources → Build task → Queue"
}
```

## Retrieval hints

- Использовать HTML как canonical source.
- Markdown удобен для LLM-ответов, извлечения workflow-контракта, кода и чеклистов.
- Для ссылок пользователю отдавать canonical URL.
