Перейти к содержанию

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

Обновлено: 2026-05-30

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

Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production.

Проблема: ручной перенос статей из Notion в WordPress ломает форматирование, теряет SEO-поля и съедает время редактора.

Решение: надежная связка Notion → n8n → WordPress создает безопасный draft, сохраняет source ID, slug, category и оставляет публикацию на ручной approval.

Схема интеграции Notion и WordPress в n8n
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 со статусом draftREST 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

  1. Создайте Notion integration и выдайте ей доступ только к редакционной базе.
  2. В WordPress создайте Application Password для отдельного пользователя-бота.
  3. Сопоставьте Notion properties с WordPress полями: title, category, author, canonical URL.
  4. В Code Node добавьте правила очистки markdown, slug и excerpt.
  5. Запустите тест на небольшой странице с 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.

См. также контент-фабрику SEO-брифов, структурированный JSON от AI, версионирование workflow. Для интеграции используйте официальные документы Notion API и WordPress REST API posts.

Карточка созданного черновика WordPress после импорта из Notion
Результат должен быть понятен редактору: source, status draft, slug, category и следующий шаг.

Критерии готовности

  1. Workflow создает только draft, а не publish.
  2. Title, slug, excerpt и category формируются предсказуемо.
  3. Code block и списки не ломаются при переносе.
  4. Есть source Notion page ID и ссылка на WordPress preview.
  5. Ошибки REST API уходят в alert, а не теряются в executions.
Нужно связать Notion и WordPress без хаоса?

Nodbot настроит импорт черновиков, маппинг полей, preview, проверки и безопасную публикацию через n8n.

Настроить editorial workflow