---
title: "Notion в WordPress через n8n: черновики | Nodbot"
source_url: "https://nodbot.ru/workflows/notion-to-wordpress-draft/"
canonical_url: "https://nodbot.ru/workflows/notion-to-wordpress-draft/"
language: "ru"
content_type: "WorkflowTemplate"
section: "workflows"
generated_at: "2026-05-30"
word_count_source: 910
---

# Интеграция Notion и WordPress через n8n: черновик статьи без ручного копирования

## AI summary

Практический сценарий Notion → WordPress через n8n: забрать утвержденную страницу, очистить markdown/HTML, создать черновик в WordPress, сохранить slug и не опубликовать непроверенный материал.

## Best used for

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

## Table of contents

- Проблема: почему ручной перенос из Notion в WordPress ломает публикации
- Архитектура workflow Notion → n8n → WordPress
- Контракт входных данных
- Подготовка markdown, slug и WordPress draft
- Готовый workflow JSON
- Пошаговая настройка связки Notion и WordPress
- Тесты перед production
- Production-риски публикации в CMS
- Полезные ссылки и смежные workflow
- Критерии готовности

## Key topics

- Notion to WordPress
- WordPress draft
- n8n editorial workflow
- markdown cleanup
- REST API

## Source outline

Интеграция Notion и WordPress через n8n: черновик статьи без ручного копирования ¶ Обновлено: 2026-05-30 AI summary: Практический сценарий Notion → WordPress через n8n: забрать утвержденную страницу, очистить markdown/HTML, создать черновик в WordPress, сохранить slug и не опубликовать непроверенный материал. Шаблон для внедрения Скачать workflow JSON Скачать test payload Скопировать curl Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production. Содержание Проблема: почему ручной перенос из Notion в WordPress ломает публикации Архитектура workflow Notion → n8n → WordPress Контракт входных данных Подготовка markdown, slug и WordPress draft Готовый workflow JSON Пошаговая настройка связки Notion и WordPress Тесты перед production Production-риски публикации в CMS Полезные ссылки и смежные workflow Критерии готовности Проблема: ручной перенос статей из Notion в WordPress ломает форматирование, теряет SEO-поля и съедает время редактора. Решение: надежная связка Notion → n8n → WordPress создает безопасный draft, сохраняет source ID, slug, category и оставляет публикацию на ручной approval. Workflow переносит утвержденную страницу в WordPress как черновик, а не публикует сырой материал. Проблема: почему ручной перенос из Notion в WordPress ломает публикации ¶ Редакционные команды часто пишут в Notion, а публикуют в WordPress. Ручной перенос кажется быстрым, пока в статье не пропадают заголовки, списки, code block, alt-тексты, внутренние ссылки и SEO-поля. В итоге редактор тратит время на повторную верстку, а production получает черновик без понятной связи с исходной страницей. Интеграция Notion и WordPress через n8n нужна не для автопубликации любой заметки. Правильный сценарий создает именно черновик , сохраняет source page ID, slug, category и excerpt, а публикацию оставляет человеку. Архитектура workflow Notion → n8n → WordPress ¶ Нода Роль Что проверить Webhook import request Принимает Notion page_id секрет, статус Approved, автор Fetch Notion page Читает свойства и контент доступ integration к базе и странице Prepare WordPress draft Чистит markdown, slug и excerpt нет TODO, пустого title и битых ссылок Create WordPress draft Создает post со статусом draft REST URL, Application Password, category Return draft URL Возвращает ссылку редактору без токенов и приватных данных Контракт входных данных ¶ { "notion_page_id": "24f0c9cb2a344bcfa3d0d7b5aa000111", "wordpress_status": "draft", "category_slug": "n8n-workflows", "author_id": 3, "canonical_url": "https://nodbot.ru/workflows/notion-to-wordpress-draft/", "source": "notion-editorial-calendar" } Входной payload может приходить из Notion database automation, кнопки в админке или внутренней формы. Важно передавать статус публикации как draft и не давать workflow право публиковать сразу в production без проверки. Подготовка markdown, slug и WordPress draft ¶ const src = $json.body ?? $json; const pageTitle = String(src.title ?? src.notion_title ?? 'Черновик без названия').trim(); const markdown = String(src.markdown ?? src.content ?? '').trim(); if (!markdown || markdown.length < 500) { throw new Error('Notion page content is too short for WordPress draft'); } const slug = pageTitle .toLowerCase() .replace(/ё/g, 'e') .replace(/[^a-zа-я0-9]+/gi, '-') .replace(/^-|-$/g, '') .slice(0, 80); const cleaned = markdown .replace(/<!--.*?-->/gs, '') .replace(/ {3,}/g, ' ') .replace(/\[(TODO|FIXME)\]/gi, '**Нужно проверить:**'); return [{ json: { wordpress: { title: pageTitle, slug, status: src.wordpress_status ?? 'draft', content: cleaned, excerpt: cleaned.replace(/[#*_>`]/g, '').slice(0, 250), categories: src.category_ids ?? [], author: src.author_id ?? undefined }, source: { notion_page_id: src.notion_page_id, canonical_url: src.canonical_url ?? '', imported_at: new Date().toISOString() } } }]; Почему workflow создает только draft WordPress REST API позволяет создавать записи со статусом draft/publish. Для редакционного процесса безопаснее сначала создать draft, проверить preview, SEO-поля, изображения и только потом публиковать материал вручную или отдельным workflow после approval. Готовый workflow JSON ¶ Скачать готовый workflow JSON Скачать тестовый payload { "name": "Nodbot - Notion to WordPress draft", "nodes": [ { "name": "Webhook import request", "type": "n8n-nodes-base.webhook", "purpose": "Принять page_id или событие календаря" }, { "name": "Fetch Notion page", "type": "n8n-nodes-base.notion", "purpose": "Получить свойства страницы и контент" }, { "name": "Prepare WordPress draft", "type": "n8n-nodes-base.code", "purpose": "Очистить markdown, slug, excerpt и статус draft" }, { "name": "Create WordPress draft", "type": "n8n-nodes-base.wordpress", "purpose": "Создать черновик через REST API" }, { "name": "Return draft URL", "type": "n8n-nodes-base.respondToWebhook", "purpose": "Вернуть ссылку редактору" } ], "connections": "Webhook → Notion → Prepare → WordPress draft → Respond" } Пошаговая настройка связки Notion и WordPress ¶ Создайте Notion integration и выдайте ей доступ только к редакционной базе. В WordPress создайте Application Password для отдельного пользователя-бота. Сопоставьте Notion properties с WordPress полями: title, category, author, canonical URL. В Code Node добавьте правила очистки markdown, slug и excerpt. Запустите тест на небольшой странице с H2, списком, ссылкой и code block. Тесты перед production ¶ curl -X POST "https://YOUR-N8N-DOMAIN/webhook/notion-to-wordpress-draft" \ -H "Content-Type: application/json" \ --data @notion-to-wordpress-draft-payload.json Проверьте три типа страниц: обычный текст, длинный технический мануал с кодом и материал с изображениями. Workflow должен вернуть ссылку на draft и не менять статус на publish. Production-риски публикации в CMS ¶ Автопубликация без review. Один ошибочный Notion status может вывести сырой текст в индекс. HTML ломает Gutenberg. Не отправляйте случайный HTML, если редакторы работают с блоками. Потеря canonical. Если статья переносится между сайтами, canonical должен быть явным. Секреты в execution data. Не логируйте Application Password и токены Notion. Нет связи с source page. Сохраняйте Notion page ID в meta или комментарии workflow. Полезные ссылки и смежные workflow ¶ См. также контент-фабрику SEO-брифов , структурированный JSON от AI , версионирование workflow . Для интеграции используйте официальные документы Notion API и WordPress REST API posts . Результат должен быть понятен редактору: source, status draft, slug, category и следующий шаг. Критерии готовности ¶ Workflow создает только draft, а не publish. Title, slug, excerpt и category формируются предсказуемо. Code block и списки не ломаются при переносе. Есть source Notion page ID и ссылка на WordPress preview. Ошибки REST API уходят в alert, а не теряются в executions. Нужно связать Notion и WordPress без хаоса? Nodbot настроит импорт черновиков, маппинг полей, preview, проверки и безопасную публикацию через n8n. Настроить editorial workflow

## Test payload

```json
{
  "notion_page_id": "24f0c9cb2a344bcfa3d0d7b5aa000111",
  "wordpress_status": "draft",
  "category_slug": "n8n-workflows",
  "author_id": 3,
  "canonical_url": "https://nodbot.ru/workflows/notion-to-wordpress-draft/",
  "source": "notion-editorial-calendar"
}
```

## Key implementation snippet

```javascript
const src = $json.body ?? $json;
const pageTitle = String(src.title ?? src.notion_title ?? 'Черновик без названия').trim();
const markdown = String(src.markdown ?? src.content ?? '').trim();

if (!markdown || markdown.length < 500) {
  throw new Error('Notion page content is too short for WordPress draft');
}

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

const cleaned = markdown
  .replace(/<!--.*?-->/gs, '')
  .replace(/
{3,}/g, '

')
  .replace(/\[(TODO|FIXME)\]/gi, '**Нужно проверить:**');

return [{
  json: {
    wordpress: {
      title: pageTitle,
      slug,
      status: src.wordpress_status ?? 'draft',
      content: cleaned,
      excerpt: cleaned.replace(/[#*_>`]/g, '').slice(0, 250),
      categories: src.category_ids ?? [],
      author: src.author_id ?? undefined
    },
    source: {
      notion_page_id: src.notion_page_id,
      canonical_url: src.canonical_url ?? '',
      imported_at: new Date().toISOString()
    }
  }
}];
```

## Importable workflow structure

```json
{
  "name": "Nodbot - Notion to WordPress draft",
  "nodes": [
    {
      "name": "Webhook import request",
      "type": "n8n-nodes-base.webhook",
      "purpose": "Принять page_id или событие календаря"
    },
    {
      "name": "Fetch Notion page",
      "type": "n8n-nodes-base.notion",
      "purpose": "Получить свойства страницы и контент"
    },
    {
      "name": "Prepare WordPress draft",
      "type": "n8n-nodes-base.code",
      "purpose": "Очистить markdown, slug, excerpt и статус draft"
    },
    {
      "name": "Create WordPress draft",
      "type": "n8n-nodes-base.wordpress",
      "purpose": "Создать черновик через REST API"
    },
    {
      "name": "Return draft URL",
      "type": "n8n-nodes-base.respondToWebhook",
      "purpose": "Вернуть ссылку редактору"
    }
  ],
  "connections": "Webhook → Notion → Prepare → WordPress draft → Respond"
}
```

## Retrieval hints

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