AI-пайплайн обработки документов: классификация → извлечение → маршрутизация
Любая компания тонет в документах: счета, договоры, заявки, письма. AI умеет их читать — но чтобы это работало надёжно, нужна не одна волшебная кнопка, а конвейер: сначала понять что за документ, потом вытащить нужные данные, потом решить что с ними делать. Разбираем, как собрать такой пайплайн в n8n с Claude API.
НачинающийАвтоматизация20 минClaude API, n8n, Google Sheets
1
Конвейер бьёт универсала — и вот почему
Один промпт "разбери документ и реши что делать" смешивает три задачи: определить тип, вытащить данные, выбрать маршрут. Ошибка на любом этапе — и непонятно, где сломалось. Пайплайн разделяет ответственность: каждый шаг делает одно дело и передаёт дальше. Промежуточный результат можно проверить глазами, ошибку — локализовать за минуту, а отдельный шаг — заменить без переделки остального.
Входящий документ
Классификация
тип известен
Извлечение данных
Валидация
данные полные
Маршрутизация
Хороший признак правильной декомпозиции — промежуточный результат можно распечатать и показать бухгалтеру. Если результат классификации понятен человеку без контекста, вы на верном пути.
2
Классификатор: одно слово — и никаких пояснений
Классификация — фундамент всего пайплайна: от неё зависит, какой промпт для извлечения использовать дальше. Принцип простой: классификатор возвращает строго одно слово из закрытого списка — invoice, contract, request, unknown. Никаких пересказов, никаких обоснований. Это позволяет n8n сделать switch по значению и пойти в нужную ветку без парсинга. Добавьте по одному примеру на каждый тип прямо в промпт — это даёт +20-30% точности бесплатно.
❌ Один промпт на всё
- Смешивает классификацию и извлечение
- Нельзя отлаживать по отдельности
- При ошибке непонятно где сломалось
✅ Пайплайн промптов
- Классификатор → только тип документа
- Экстрактор → только поля нужного типа
- Каждый шаг тестируется отдельно
классификатор → ОДНО слово из списка:
invoice | contract | request | unknown
правила определения типа:
invoice: счёт, акт, накладная с суммой
contract: договор, соглашение, оферта
request: заявка, обращение, запрос
unknown: всё остальное
никаких пояснений — только тип → switch по значению3
Извлечение данных: JSON-схема и честное null
Вы знаете тип документа — теперь нужно вытащить конкретные поля. Для счёта — сумма, дата, поставщик. Для договора — стороны, предмет, срок. Именно поэтому классификация идёт первой: без знания типа нельзя написать точный промпт.
Ключ к надёжности — требовать JSON с жёсткой схемой. Не "расскажи мне о счёте", а "верни JSON с полями amount, currency, vendor, due_date". Критически важное правило: если поле не найдено — null, не выдумывать. Модели любят галлюцинировать пропущенные данные, и явная инструкция "null, не придумывай" — единственная защита.
В n8n результат JSON сразу доступен как объект: обращаетесь к полям напрямую в следующих нодах, без регулярных выражений и парсинга строк. Это ещё одна причина требовать строгую схему — автоматизация ломается, если формат плавает.
экстрактор для типа "invoice":
ВХОД: текст документа
ВЫХОД: { сумма, валюта, поставщик, дата, номер }
ПРАВИЛО: если поле не найдено → null, не выдумывать
для каждого типа — свой набор полей:
invoice → сумма, валюта, поставщик, дата
contract → стороны, предмет, срок
request → тема, автор, срочностьПопросите модель добавить поле confidence (0-1) для каждого значения. Если confidence < 0.7 — документ идёт на ручную проверку. Дешёвый фильтр для пограничных случаев.
4
Не убирайте человека — уберите скуку
Полная автоматизация с первого дня — верный способ потерять доверие к системе после первой ошибки. Правило: автоматически обрабатывайте то, что AI делает правильно в 95%+ случаев. Всё остальное — на проверку человеку. На старте это будет меньше половины документов, через месяц — большинство. Сигналы для эскалации: низкая уверенность модели, тип unknown, отсутствие критичных полей. Уведомление в Slack или письмо с ссылкой на документ.
Автообработка или эскалация?
Тип документа распознан уверенно (confidence > 0.8)
Все обязательные поля извлечены (не null)
Сумма в ожидаемом диапазоне
Тип — unknown или confidence < 0.8
Критичные поля null (сумма, дата, контрагент)
Первые 2 недели — всё логировать и выборочно проверять
Собирайте все случаи эскалации в отдельный лист Google Sheets. Через две недели посмотрите на паттерны: если 60% эскалаций — один тип документов, значит экстрактор для него нужно доработать.
5
Google Sheets — это не костыль, это MVP
Финальный шаг — положить данные туда, где их увидят. Google Sheets работает идеально как первая точка хранения: ошибки заметны без специальных инструментов, бухгалтер проверяет прямо в браузере. Маршрутизация в n8n — Switch-нода по типу документа: счета на один лист, договоры на другой. Добавьте колонку status (auto / escalated / processed) — через месяц у вас будет реальная статистика для обоснования интеграции с 1С или CRM.
Интеграции (1С, CRM, ERP)
Следующий шаг после MVP
Google Sheets (MVP)
Видно сразу, легко проверить
n8n Switch → маршрут по типу
invoice / contract / request / escalate
Не начинайте с интеграции в боевую систему. Первые две недели Google Sheets даст данные для калибровки промптов. Интегрировать кривой пайплайн в CRM — значит умножить проблемы на весь бизнес.
Результат
Рабочий n8n-пайплайн: входящий документ → классификация Claude → извлечение структурированных данных → автоматическая маршрутизация или эскалация человеку → запись в Google Sheets. Первые документы проходят в течение дня после настройки.