В современном SEO важно не только собрать список ключевых слов, но и структурировать его в рабочую контент-стратегию: разделить по категориям, объединить в семантические кластеры и получить готовые идеи для статей. n8n позволяет автоматизировать весь этот процесс — от выгрузки данных из Airtable до записи готовых идей обратно в базу.
В этом руководстве мы пошагово создадим workflow, который:
- загружает ключевые слова из Airtable;
- категоризирует каждое ключевое слово;
- кластеризует их по смыслу и интенту;
- генерирует hub- и spoke-идеи (заголовки + описания);
- сохраняет результаты обратно в Airtable.
Подходит для SEO-специалистов, контент-менеджеров и владельцев сайтов, которые хотят перейти от ручного анализа к автоматизированному процессу и сразу получать готовый контент-план.
Если у вас ещё нет рабочего n8n, начните с нашего руководства: Как установить n8n Community Edition на VPS.
Также полезны инструкции по настройке credentials:
- Как настроить OpenAI Credentials в n8n
- Как настроить Vsegpt Credentials в n8n
- Как настроить Google Credentials в n8n
Кому подойдёт это руководство
Новичкам в n8n и тем, кто делает SEO-исследования: если вы умеете работать с Airtable/Excel/CSV и хотите автоматизировать категоризацию и генерацию контента — это пошаговое руководство для вас.
Что нужно заранее
- Рабочий n8n на VPS. Воспользуйтесь нашим руководством по установке.
- Airtable база с таблицей «Master Keyword Variations».
- API-ключи: Airtable Personal Access Token; ключи для OpenAI или Vsegpt (или другой LLM).
- Базовые знания n8n: как добавлять узлы (nodes), как запускать workflow.
Коротко о логике
Workflow логически разделён на блоки:
- Загрузка — получаем записи из Airtable.
- Подготовка — собираем нужные поля и формируем JSON для ИИ.
- Категоризация — ИИ классифицирует каждое ключевое слово.
- Кластеризация — ИИ группирует слова в тематические кластеры.
- Генерация идей — создаём hub и spoke идеи для статей.
- Сохранение — записываем всё обратно в Airtable.
Пошаговая настройка workflow в n8n
Шаг 1 — Manual Trigger
-
Добавьте узел
Manual Trigger
— он стартует workflow вручную для тестирования.Пояснение: это удобно на этапе разработки — вы вручную запускаете проверку, а позже можете заменить его на расписание (Cron) или Webhook.
Шаг 2 — Set: Airtable конфигурация
- Добавьте узел
Set
(назовите «Set Airtable Fields»). - Создайте строковые поля и заполните базовый конфиг (пример):
airtable_base_id = "appXXXXXXXXXXXX"
master_all_kw_variations_table_id = "tblXXXXXXXXXXXX"
categories_table_id = "tblXXXXXXXXXXXX"
clusters_table_id = "tblXXXXXXXXXXXX"
content_ideas_from_kws_table_id = "tblXXXXXXXXXXXX"
content_ideas_from_clusters_table_id = "tblXXXXXXXXXXXX"
Это позволит вам централизованно менять ID таблиц в одном узле.
Шаг 3 — Airtable Get All KWs
- Узел:
Airtable
— операцияGet All
илиSearch
(в зависимости от объёма). - Параметры:
Base ID
иTable ID
берутся из «Set Airtable Fields». Выражения n8n:{{$node["Set Airtable Fields"].json["airtable_base_id"]}}
- Credentials: Airtable Personal Access Token (создайте и вставьте в n8n Credentials).
- Совет: если таблица большая — ставьте пагинацию (limit / page size) и используйте Split In Batches для обработки.
Шаг 4 — Set: map fields (Set WF Fields)
- Добавьте ещё узел
Set
(назовите «Set WF Fields») — он мапит поля Airtable в удобные переменные workflow, например:
keyword -> {{$json["fields"]["Keyword"]}}
msv -> {{$json["fields"]["MSV"]}}
competition -> {{$json["fields"]["Competition"]}}
search_intent -> {{$json["fields"]["Intent"]}}
primary_keyword -> {{$json["fields"]["Primary Keyword"]}}
Так вы упростите последующие выражения и избежите ошибок при обращении к полям.
Шаг 5 — Aggregate Keywords for Agent
- Добавьте узел
Aggregate
, чтобы собрать все записи в одну структуру — это удобно для кластеризации, где ИИ смотрит весь список сразу. - Результат: поле (например)
keyword_dataset
— JSON-строка с массивом слов и метрик.
// Пример содержимого keyword_dataset:
[
{"keyword": "купить дрель", "msv": 1200, "competition": 0.45, "intent": "transactional"},
{"keyword": "как выбрать дрель", "msv": 400, "competition": 0.2, "intent": "informational"},
...
]
Шаг 6 — Set Field for Agent
- Создайте поле
keyword_dataset
(тип String) — оно будет входом для LangChain/OpenAI узла. - Важно: ограничьте размер запроса к модели (если dataset очень большой), либо делите на батчи.
Шаг 7 — Категоризация: Category AI Agent
- Добавьте узел
LangChain Agent / OpenAI
(назовите «Category AI Agent»). - Модель: gpt-4 / gpt-4.1-mini или ваш Vsegpt (если экономите бюджет).
- System prompt (пример):
System:
Вы — эксперт по SEO. Ваша задача — для каждого входного ключевого слова
вернуть строгий JSON с полями:
- keyword
- category (Quick Wins | Authority Builders | Emerging Topics | Intent Signals | Semantic Topics | Unknown)
- reasoning (короткое объяснение, почему такая категория)
Формат вывода — JSON массив.
User:
{{$json["keyword_dataset"]}}
Пример ожидаемого ответа от модели:
[
{"keyword":"купить дрель","category":"Quick Wins","reasoning":"высокий транзакционный интент, MSV 1200"},
{"keyword":"как выбрать дрель","category":"Authority Builders","reasoning":"информационный интент, подходит для руководства"}
]
Шаг 8 — Сохранение категорий в Airtable
- Добавьте
Set
(Parse AI JSON → поля для Airtable): keyword, category, reasoning. - Далее узел
Airtable Create
— записываем в таблицу «Keyword Categories».
Шаг 9 — Исключаем Unknown и готовим к генерации идей
- Узел
Filter
(Filter Out Unknown) — пропускаем записи, где category = "Unknown". - Далее —
Set
с полями для генерации (keyword, category, reasoning).
Шаг 10 — Генерация идей для отдельных ключевых слов (Loop / Batch)
- Добавьте узел
Split In Batches
(Loop Over Items) — чтобы отправлять по одному ключу в AI для генерации заголовков и описаний. - Узел
LangChain Agent
(Content Ideas from Category AI Agent) — пример промпта:
System:
Вы — копирайтер и SEO-специалист. Для переданного keyword и его category
создайте:
- title (макс. 70 символов)
- meta_description (макс. 160 символов)
- content_brief (3-5 пунктов, что должен содержать текст)
Output: JSON {keyword, title, meta_description, content_brief}
User:
{"keyword":"купить дрель","category":"Quick Wins","reasoning":"..."}
Шаг 11 — Кластеризация (AI Agent Analyze and Cluster KWs)
- Этот блок получает весь массив keywords и возвращает массив кластеров в формате JSON:
[ { "cluster_name":"Дрели для дома", "core_topic":"дрели бытовые", "intent_pattern":"transactional + informational", "keywords":["купить дрель","дрели для дома","лучшие дрели 2025"], "reasoning":"связанные коммерческие и обзорные запросы", "primary_keyword":"купить дрель" }, ]
- Параметры: попросите модель распределять каждое ключевое слово ровно в один кластер.
Шаг 12 — Создание hub & spoke идей (Agent Create Content Opps)
- Для каждого кластера попросите ИИ сгенерировать:
- Hub-текст (pillar) — основной материал по теме;
- до 5 spoke-статей — уточняющие/поддерживающие материалы.
- Пример system prompt:
System:
Для переданного кластера создайте:
- hub: объект {title, description, recommended_word_count, sections[]}
- spokes: массив до 5 объектов {title, description, target_keyword}
Output: JSON
User:
{"cluster_name":"Дрели для дома","keywords":[...],"primary_keyword":"купить дрель"}
Шаг 13 — Сохраняем кластеры и идеи в Airtable
- Parse AI output и создайте записи в таблицах: Clusters и Content Ideas from Clusters.
- В полях храните:
cluster_name
,core_topic
,intent_pattern
,keywords
(список),reasoning
,primary_keyword
,hub_title
,spoke_titles
и т.д.
Шаг 14 — Проверка и тестирование
- Запустите Manual Trigger и внимательно проверьте каждый узел (Execution → preview output).
- Если модель вернула невалидный JSON — используйте в промпте строгое требование к формату и добавьте "Output MUST be valid JSON".
- При проблемах с объёмом данных — разбивайте входной набор на чанки и обрабатывайте по очереди.
Полезные примеры JSON
Категоризация — пример ответа ИИ:
[
{"keyword":"купить дрель","category":"Quick Wins","reasoning":"высокий транзакционный интент"},
{"keyword":"лучшие дрели 2025","category":"Authority Builders","reasoning":"обзорный запрос"}
]
Кластеризация — пример:
{
"clusters": [
{
"cluster_name":"Дрели для дома",
"core_topic":"дрели бытового класса",
"intent_pattern":"transactional",
"keywords":["купить дрель","дрели недорого"],
"primary_keyword":"купить дрель",
"reasoning":"коммерческие запросы с высокой конверсией"
}
]
}
Глоссарий (важные термины и пояснения)
- Hub-текст (pillar) — крупная, всеобъемлющая статья по главной теме (проводник/опорная страница). Пример: «Полное руководство по выбору дрели» — в нём даются обзоры, сравнения, советы и ссылки на более узкие материалы. Hub помогает «склеивать» тематически связанные страницы и повышать авторитет сайта по теме.
- Spoke-статья — узкая статья-поддержка, которая раскрывает конкретную под-тему hub. Примеры: «Как выбрать патрон для дрели», «Топ-5 аккумуляторных дрелей 2025». Spoke ссылаются на hub, и hub ссылается на spokes — это «hub-and-spoke» структура.
- MSV (Monthly Search Volume) — месячный объём поиска (примерно, сколько раз в месяц пользователи ищут конкретное выражение). Помогает оценить потенциальный трафик.
- Search Intent (поисковый интент) — цель пользователя: informational (узнать), navigational (найти сайт), transactional (купить), commercial investigation (сравнить перед покупкой). Правильная категория помогает создавать контент, который закрывает нужды пользователя.
- Airtable — онлайн-таблица/база данных (base → table → record → field). Для n8n вы будете указывать Base ID и Table ID при работе с Airtable узлом.
- Node (узел) — строительный блок workflow в n8n: триггер, HTTP-запрос, Set, Airtable, OpenAI и т.д. Каждый узел выполняет действие и передаёт данные дальше.
- Manual Trigger — ручной триггер для тестов; позже можно заменить на Cron или Webhook.
- Set node — узел для создания/маппинга полей внутри workflow (удобно для подготовки данных).
- Aggregate node — собирает набор записей в единый объект/массив — полезно для передачи большого массива в модель для кластеризации.
- Split Out / Split In Batches — разделяет массив на отдельные элементы или пачки, чтобы обрабатывать по одному или по N записей; важно при взаимодействии с API с лимитами.
- LangChain Agent / Agent — узел, который использует LLM (OpenAI, Vsegpt и т.д.) с возможностью сложных подсказок и цепочек действий (используется для категоризации, кластеризации и генерации контента).
- Prompt — текст, который вы отправляете модели (system + user + examples). Чем точнее формат и требования, тем корректнее ответ (особенно просите вернуть строгий JSON).
- JSON — формат обмена данными (JavaScript Object Notation). Всю информацию между узлами удобнее передавать в JSON.
- Credentials / API Key / OAuth2 — учётные данные для сервисов (Airtable, OpenAI, Google). Храните их в n8n Credentials и не коммитьте в публичные репозитории.
- Rate limits — ограничения по числу запросов к API. Если натыкаетесь на ошибки «rate limit» — замедляйте отправку запросов (Split In Batches, задержки, retry).
Чек-лист перед запуском
- Проверьте, что Airtable Credentials в n8n корректны и у токена есть права на чтение/запись.
- Убедитесь, что у API ключа OpenAI / Vsegpt есть достаточный лимит и он настроен в n8n.
- Запустите workflow на небольшой выборке (5–10 записей) — убедитесь, что модель возвращает валидный JSON.
- Добавьте логирование (Sticky Note / комментарии) в ключевых узлах для будущего сопровождения.
Типичные ошибки и их решение
- ИИ вернул невалидный JSON — в system prompt добавьте:
“Output MUST be valid JSON. If you cannot, return an error field.”
- Пустые поля в Airtable — проверьте, что в Set WF Fields используете правильные выражения ({{$node[...]}}).
- Rate limit / 429 — уменьшите скорость, используйте Split In Batches с паузой, включите retry в узлах.
- Не сохраняются записи — проверьте права (Airtable token) и корректность Table ID.
Примеры промптов
Категоризация:
System:
Вы — SEO-аналитик. Получите массив объектов {keyword,msv,competition,intent}
и верните массив объектов {keyword,category,reasoning}.
Категории: Quick Wins, Authority Builders, Emerging Topics, Intent Signals, Semantic Topics, Unknown.
Output MUST be valid JSON.
Кластеризация:
System:
Проанализируй массив ключевых слов и сгруппируй их в семантические кластеры.
Каждый кластер: {cluster_name,core_topic,intent_pattern,keywords[],primary_keyword,reasoning}.
Output MUST be valid JSON array "clusters".
Скачать готовый JSON-файл workflow: SEO-Keywords-Categorization-and-Content-Strategy.json
А теперь — шаг к максимальной эффективности!
Чтобы workflow в n8n работал быстро и без перебоев при больших объёмах данных, рекомендую размещать n8n и связанные службы на надёжном сервере. Мы предоставляем высокопроизводительные VPS в России и Европе — с гарантированными ресурсами, низкой задержкой и полной свободой конфигурации.
Закажите VPS в Европе уже сегодня и ускорьте свои SEO-процессы!