Интеграция Perplexity и n8n: research-ответы с источниками, фильтрами и проверкой фактов ¶
Обновлено: 2026-05-30
Импортируйте JSON в n8n, замените credentials, URL API, поля CRM/БД и лимиты под вашу инфраструктуру.
Проблема: Команда просит “быстро найти свежие данные”, но ручной поиск расползается по чатам, ссылки теряются, а AI-ответ без источников нельзя использовать в статье, отчёте или sales research.
Решение: использовать Perplexity в n8n как research-слой: отправлять конкретный вопрос, требовать структурированный JSON, сохранять citations, проверять дату/домен источника и отдавать спорные результаты на редакторскую проверку.
Проблема: почему AI-research без источников не годится для работы ¶
Perplexity полезен для поиска с источниками, но автоматизация research требует дисциплины. Если workflow принимает общий запрос вроде “найди всё про рынок”, результат сложно проверить, сравнить и переиспользовать.
Хорошая интеграция задаёт точный вопрос, ожидаемый формат, желаемую свежесть и правила качества источников. Тогда n8n может складывать результат в Notion, Google Sheets, Telegram digest или черновик статьи без потери ссылок и контекста.
Архитектура workflow Perplexity + n8n для research-задач ¶
| Блок | Задача | Production-проверка |
|---|---|---|
| Research request | получает тему, регион, freshness и домены | query, locale, recency_days |
| Prepare Sonar prompt | формирует точный вопрос и JSON contract | без общих формулировок |
| Perplexity API | получает ответ и citations | timeout, retries, model |
| Validate sources | проверяет количество и качество ссылок | domains, dates, duplicates |
| Save research card | пишет summary, bullets, citations | Notion/Sheets/CRM |
| Review gate | останавливает слабые результаты | мало источников, устаревшие ссылки |
Research workflow должен сохранять не только summary, но и список источников. Иначе через неделю невозможно понять, на чём был основан вывод.
Контракт research-запроса для Perplexity Sonar API ¶
{
"topic": "обновления правил маркировки рекламы в РФ для Telegram-каналов",
"locale": "ru-RU",
"recency_days": 30,
"must_include_domains": [
"government.ru",
"fas.gov.ru"
],
"output": "brief_with_citations",
"review_required": true
}
Поле recency_days помогает отделить новости от вечнозелёных справок. Для юридических, финансовых и продуктовых тем свежесть должна быть обязательным фильтром.
Code Node: query guard, freshness и проверка источников ¶
const src = $json.body ?? $json;
const topic = String(src.topic ?? '').replace(/\s+/g, ' ').trim();
if (topic.length < 20) throw new Error('Research topic is too vague');
const recencyDays = Number(src.recency_days ?? 30);
const domains = Array.isArray(src.must_include_domains) ? src.must_include_domains : [];
const today = new Date().toISOString().slice(0, 10);
const system = 'Return only JSON with keys: answer, key_findings[], citations[], open_questions[]. Every citation must have title, url, publisher, published_at if available.';
const user = `Today is ${today}. Research topic: ${topic}. Locale: ${src.locale ?? 'ru-RU'}. Prefer sources newer than ${recencyDays} days. Must check domains: ${domains.join(', ') || 'no required domains'}.`;
return [{ json: {
perplexity: {
model: $env.PERPLEXITY_MODEL ?? 'sonar',
messages: [{ role: 'system', content: system }, { role: 'user', content: user }],
temperature: 0.2,
max_tokens: Number($env.PERPLEXITY_MAX_TOKENS ?? 1200)
},
validation: { min_citations: Number(src.min_citations ?? 3), recency_days: recencyDays, required_domains: domains }
}}];
Почему research-запрос должен быть узким
Чем шире вопрос, тем сложнее проверить результат. Для production лучше запускать несколько узких research-задач с понятным источником истины, чем один общий запрос без критериев качества.
Готовый workflow JSON: скачать и импортировать ¶
Скачать готовый workflow JSON Скачать тестовый payload
{
"name": "Nodbot - Perplexity research with citations validation",
"nodes": [
{
"name": "Webhook research request",
"type": "n8n-nodes-base.webhook",
"purpose": "Принять тему"
},
{
"name": "Prepare Sonar prompt",
"type": "n8n-nodes-base.code",
"purpose": "Собрать query и JSON contract"
},
{
"name": "Call Perplexity API",
"type": "n8n-nodes-base.httpRequest",
"purpose": "Получить ответ и citations"
},
{
"name": "Validate citations",
"type": "n8n-nodes-base.code",
"purpose": "Проверить источники"
},
{
"name": "Save research card",
"type": "n8n-nodes-base.httpRequest",
"purpose": "Сохранить результат"
},
{
"name": "Respond",
"type": "n8n-nodes-base.respondToWebhook",
"purpose": "Вернуть summary и ссылки"
}
],
"connections": "Webhook research request → Prepare Sonar prompt → Call Perplexity API → Validate citations → Save research card → Respond"
}
Пошаговая настройка Perplexity API, n8n и research workflow ¶
- Создайте Perplexity API key и храните его в n8n credentials/ENV.
- Импортируйте workflow JSON и задайте модель, timeout и max_tokens.
- Опишите min_citations, recency_days и обязательные домены для вашей темы.
- Настройте сохранение результата в Notion, Sheets или Telegram digest.
- Добавьте review gate для недостатка источников или спорных доменов.
Тесты перед production ¶
curl -X POST "https://YOUR-N8N-DOMAIN/webhook/integration-perplexity-research-n8n" \
-H "Content-Type: application/json" \
--data @integration-perplexity-research-n8n-payload.json
- Слишком общий topic должен падать до API-запроса.
- Ответ без минимального числа citations идёт на review.
- Обязательный домен отсутствует — workflow помечает результат неполным.
- Свежая тема не должна ссылаться только на старые материалы.
- Дубликаты ссылок удаляются перед сохранением.
Production-риски ¶
- Источники не сохраняются. Summary нельзя проверить и обновить.
- Нет freshness filter. Workflow смешивает старые справки и новые события.
- Слишком общий query. Ответ получается красивым, но непригодным для решения.
- Нет review для юридических тем. Автоматизация может распространить устаревший совет.
- Не учитывается стоимость. Массовый research digest без лимитов быстро дорожает.
Полезные ссылки и смежные workflow ¶
Критерии готовности ¶
- Каждый research-result хранит citations, дату запуска и исходный query.
- Для свежих тем задан recency_days и review gate.
- Слабые источники не попадают в автоматическую публикацию.
- Результат сохраняется в структурированном виде, а не только текстом.
- Есть лимиты max_tokens, retry и владелец процесса.
Nodbot настроит Perplexity + n8n: узкие запросы, citations, freshness-фильтры, review gate, сохранение в Notion/Sheets и контроль качества источников.
Обсудить research-автоматизацию