Интеграция Notion и WordPress через n8n: черновик статьи без ручного копирования ¶
Обновлено: 2026-05-30
Импортируйте 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.
Проблема: почему ручной перенос из 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.
Критерии готовности ¶
- Workflow создает только draft, а не publish.
- Title, slug, excerpt и category формируются предсказуемо.
- Code block и списки не ломаются при переносе.
- Есть source Notion page ID и ссылка на WordPress preview.
- Ошибки REST API уходят в alert, а не теряются в executions.
Nodbot настроит импорт черновиков, маппинг полей, preview, проверки и безопасную публикацию через n8n.
Настроить editorial workflow