---
title: "YandexGPT и n8n: классификация заявок | Nodbot"
source_url: "https://nodbot.ru/workflows/yandexgpt-classifier/"
canonical_url: "https://nodbot.ru/workflows/yandexgpt-classifier/"
language: "ru"
content_type: "WorkflowTemplate"
section: "workflows"
generated_at: "2026-05-30"
word_count_source: 1012
---

# YandexGPT и n8n: классификация заявок по теме, срочности и SLA

## AI summary

Практический workflow для поддержки и продаж: принять текст заявки, очистить персональные данные, отправить в YandexGPT classifier, получить label/confidence и направить обращение в нужную очередь без ручной сортировки.

## Best used for

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

## Table of contents

- Проблема: где ломается сценарий
- Архитектура workflow
- Контракт входных данных
- Code Node: нормализация и контроль
- Готовый workflow JSON
- Пошаговая настройка
- Тесты перед production
- Production-риски
- Полезные ссылки и смежные workflow
- Критерии готовности

## Key topics

- YandexGPT classifier
- n8n
- ticket routing
- confidence threshold
- CRM
- SLA

## Source outline

YandexGPT и n8n: классификация заявок по теме, срочности и SLA ¶ Обновлено: 2026-05-30 AI summary: Практический workflow для поддержки и продаж: принять текст заявки, очистить персональные данные, отправить в YandexGPT classifier, получить label/confidence и направить обращение в нужную очередь без ручной сортировки. Шаблон для внедрения Скачать workflow JSON Скачать test payload Скопировать curl Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production. Содержание Проблема: где ломается сценарий Архитектура workflow Контракт входных данных Code Node: нормализация и контроль Готовый workflow JSON Пошаговая настройка Тесты перед production Production-риски Полезные ссылки и смежные workflow Критерии готовности Проблема: входящие заявки из сайта, почты, Telegram и CRM смешиваются в одной очереди. Оператор вручную решает, где оплата, где техническая ошибка, где продажа, а срочные обращения теряются среди обычных вопросов. Решение: n8n принимает текст заявки, нормализует его, вызывает YandexGPT classifier с понятными labels, проверяет confidence и маршрутизирует обращение в CRM, Telegram или helpdesk. Низкая уверенность уходит человеку на review. Workflow классифицирует обращение, применяет порог confidence и выбирает очередь обработки. Проблема: почему ручная сортировка заявок ломает SLA ¶ Классификация заявок кажется простой, пока поток небольшой. Когда появляются обращения об оплате, технические ошибки, возвраты, партнёрские запросы и спам, ручная сортировка начинает съедать время первой линии поддержки. YandexGPT-based classifier полезен тем, что возвращает класс и confidence, а n8n может сразу применить бизнес-правило: отправить срочную оплату в отдельный канал, техническую ошибку — инженеру, а низкую уверенность — человеку. Важно заранее задать понятные labels, а не просить модель “сама понять тему”. Архитектура workflow YandexGPT classifier через n8n ¶ Нода Роль Что проверить Webhook input принимает текст заявки и source_id канал, клиент, язык, статус Sanitize text чистит HTML и маскирует лишние данные нет токенов и паролей в prompt Build classifier request собирает labels и taskDescription 2–20 классов, понятные названия Call YandexGPT classifier вызывает Text Classification API IAM token, folder/modelUri, timeout Route by confidence выбирает очередь и SLA threshold, unknown/review branch Update CRM/helpdesk записывает label и next_action история решения и audit_key Ключевой элемент — не сама AI-модель, а routing policy. Даже хороший classifier должен иметь ветку `review`, если confidence ниже порога или текст не похож на рабочую заявку. Контракт входных данных для классификации ¶ { "ticket_id": "sup-2048", "source": "telegram", "text": "Оплата прошла, чек есть, но доступ к курсу не открылся. Заказ 10492, срочно помогите.", "labels": [ "payment_issue", "technical_bug", "sales_question", "refund_request", "spam" ], "confidence_threshold": 0.72, "customer": { "crm_id": "contact-552", "plan": "pro" } } Labels должны быть бизнесовыми, а не техническими. `payment_issue` полезнее, чем `class_1`: оператор и CRM сразу понимают, что делать с результатом. Code Node: labels, confidence threshold и route key ¶ const src = $json.body ?? $json; const text = String(src.text ?? '').replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim(); if (text.length < 10) throw new Error('ticket text is too short'); if (text.length > 6000) throw new Error('ticket text is too long for classifier request'); const labels = Array.isArray(src.labels) && src.labels.length ? src.labels : [ 'payment_issue', 'technical_bug', 'sales_question', 'refund_request', 'spam' ]; if (labels.length < 2 || labels.length > 20) throw new Error('labels count must be between 2 and 20'); const threshold = Number(src.confidence_threshold ?? 0.72); return [{ json: { ticket_id: String(src.ticket_id ?? `ticket-${Date.now()}`), classifier_body: { modelUri: process.env.YANDEXGPT_CLASSIFIER_MODEL_URI, taskDescription: 'Классифицируй входящую заявку поддержки по основной теме. Верни наиболее подходящий label.', labels, text }, routing_policy: { confidence_threshold: threshold, review_label: 'human_review', routes: { payment_issue: 'support-payments-high-priority', technical_bug: 'support-tech', sales_question: 'sales-inbox', refund_request: 'billing-review', spam: 'closed-spam' } }, audit_key: `yandexgpt-classifier:${src.ticket_id ?? Date.now()}` } }]; Почему нужен порог confidence Классификатор может выбрать ближайший label даже для неоднозначной заявки. Порог уверенности отправляет сомнительные обращения человеку, сохраняет SLA и снижает риск неправильной маршрутизации. Готовый workflow JSON: скачать и импортировать ¶ Скачать готовый workflow JSON Скачать тестовый payload { "name": "Nodbot - YandexGPT ticket classifier", "nodes": [ { "name": "Webhook input", "type": "n8n-nodes-base.webhook", "purpose": "Принять заявку из CRM, сайта или Telegram" }, { "name": "Sanitize and build labels", "type": "n8n-nodes-base.code", "purpose": "Очистить текст и собрать classifier request" }, { "name": "Call YandexGPT classifier", "type": "n8n-nodes-base.httpRequest", "purpose": "Вызвать Text Classification API" }, { "name": "Route by confidence", "type": "n8n-nodes-base.code", "purpose": "Выбрать очередь по label и confidence" }, { "name": "Update CRM or helpdesk", "type": "n8n-nodes-base.httpRequest", "purpose": "Записать label, SLA и комментарий" }, { "name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "purpose": "Вернуть route_key и статус" } ], "connections": "Webhook input → Sanitize and build labels → Call YandexGPT classifier → Route by confidence → Update CRM or helpdesk → Respond to Webhook" } Пошаговая настройка YandexGPT, n8n и CRM-маршрутизации ¶ Создайте модель/доступ YandexGPT classifier и сохраните IAM token в n8n credentials или ENV. Опишите 2–20 labels понятными бизнес-названиями. Импортируйте workflow и задайте `YANDEXGPT_CLASSIFIER_MODEL_URI`. Настройте routes: label → очередь CRM/helpdesk/Telegram. Добавьте ветку human review для низкого confidence и неизвестных текстов. Тесты перед production и проверка классов ¶ curl -X POST "https://YOUR-N8N-DOMAIN/webhook/yandexgpt-classifier" \ -H "Content-Type: application/json" \ --data @yandexgpt-classifier-payload.json Проверьте типовые заявки по каждому label. Отправьте смешанную заявку: оплата + техническая ошибка. Проверьте короткий бессмысленный текст и спам. Уменьшите threshold и посмотрите, не падает ли качество маршрутизации. Сравните AI label с ручной разметкой на 50–100 исторических обращениях. Production-риски AI-классификации заявок ¶ Labels слишком похожи. Модель путает классы, если названия не отражают бизнес-действие. Нет human review. Низкая уверенность всё равно уходит в неверную очередь. PII в prompt. Маскируйте пароли, токены и лишние персональные данные. Нет контрольной выборки. Нельзя оценить качество classifier до production. Маршрут меняет SLA без аудита. Записывайте label, confidence, modelVersion и routing decision. Полезные ссылки и смежные workflow ¶ См. также GigaChat support draft , Telegram AI bot with human approval и OpenRouter fallback . Официальные документы: YandexGPT classifiers , prompt-based classifier и n8n HTTP Request . Карточка результата показывает label, confidence, route и SLA для поддержки. Критерии готовности ¶ Labels согласованы с владельцами поддержки и продаж. Есть threshold и ветка human_review для сомнительных случаев. Маршрутизация записывает label, confidence, modelVersion и audit_key. Качество проверено на исторической выборке, а не только на одном тесте. Ошибки YandexGPT API не меняют статус заявки молча. Нужно автоматически сортировать заявки без потери SLA? Nodbot настроит YandexGPT classifier, labels, threshold, human review, CRM routing, audit log и контроль качества на исторических обращениях. Обсудить классификацию заявок

## Test payload

```json
{
  "ticket_id": "sup-2048",
  "source": "telegram",
  "text": "Оплата прошла, чек есть, но доступ к курсу не открылся. Заказ 10492, срочно помогите.",
  "labels": [
    "payment_issue",
    "technical_bug",
    "sales_question",
    "refund_request",
    "spam"
  ],
  "confidence_threshold": 0.72,
  "customer": {
    "crm_id": "contact-552",
    "plan": "pro"
  }
}
```

## Key implementation snippet

```javascript
const src = $json.body ?? $json;
const text = String(src.text ?? '').replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
if (text.length < 10) throw new Error('ticket text is too short');
if (text.length > 6000) throw new Error('ticket text is too long for classifier request');

const labels = Array.isArray(src.labels) && src.labels.length ? src.labels : [
  'payment_issue', 'technical_bug', 'sales_question', 'refund_request', 'spam'
];
if (labels.length < 2 || labels.length > 20) throw new Error('labels count must be between 2 and 20');

const threshold = Number(src.confidence_threshold ?? 0.72);
return [{
  json: {
    ticket_id: String(src.ticket_id ?? `ticket-${Date.now()}`),
    classifier_body: {
      modelUri: process.env.YANDEXGPT_CLASSIFIER_MODEL_URI,
      taskDescription: 'Классифицируй входящую заявку поддержки по основной теме. Верни наиболее подходящий label.',
      labels,
      text
    },
    routing_policy: {
      confidence_threshold: threshold,
      review_label: 'human_review',
      routes: {
        payment_issue: 'support-payments-high-priority',
        technical_bug: 'support-tech',
        sales_question: 'sales-inbox',
        refund_request: 'billing-review',
        spam: 'closed-spam'
      }
    },
    audit_key: `yandexgpt-classifier:${src.ticket_id ?? Date.now()}`
  }
}];
```

## Importable workflow structure

```json
{
  "name": "Nodbot - YandexGPT ticket classifier",
  "nodes": [
    {
      "name": "Webhook input",
      "type": "n8n-nodes-base.webhook",
      "purpose": "Принять заявку из CRM, сайта или Telegram"
    },
    {
      "name": "Sanitize and build labels",
      "type": "n8n-nodes-base.code",
      "purpose": "Очистить текст и собрать classifier request"
    },
    {
      "name": "Call YandexGPT classifier",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Вызвать Text Classification API"
    },
    {
      "name": "Route by confidence",
      "type": "n8n-nodes-base.code",
      "purpose": "Выбрать очередь по label и confidence"
    },
    {
      "name": "Update CRM or helpdesk",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Записать label, SLA и комментарий"
    },
    {
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "purpose": "Вернуть route_key и статус"
    }
  ],
  "connections": "Webhook input → Sanitize and build labels → Call YandexGPT classifier → Route by confidence → Update CRM or helpdesk → Respond to Webhook"
}
```

## Retrieval hints

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