Extract From File, PDF и OCR в n8n: файлы, вложения и структурированные данные ¶
Обновлено: 2026-05-29
Extract From File в n8n нужен, когда workflow получает файл в binary data и должен превратить его в JSON: CSV, XLSX, PDF, вложение из письма, экспорт из банка, прайс-лист или документ для базы знаний. Важно понимать границу: Extract From File извлекает данные из поддерживаемых форматов, а OCR для сканов и изображений часто требует отдельного сервиса или AI-ноды.
Базовая схема обработки файла ¶
- Источник получает binary file: Gmail/IMAP, Webhook upload, Google Drive, S3, локальный файл.
- IF проверяет MIME type, размер и имя файла.
- Extract From File превращает файл в JSON, если формат подходит.
- Code/Set/Edit Fields нормализует поля.
- Данные уходят в CRM, Google Sheets, Postgres, RAG или approval.
- Ошибки формата отправляются в отдельную ветку.
Что делать с разными форматами ¶
| Формат | Подход | Риск |
|---|---|---|
| CSV | Extract From File → нормализация колонок | кодировка, разделитель, пустые строки |
| XLSX | Extract From File → выбор листа/таблицы | объединённые ячейки и ручная вёрстка |
| PDF с текстом | Extract From File или специализированный парсер | порядок строк и таблиц может быть нестабильным |
| скан PDF/изображение | OCR-сервис или AI vision | ошибки распознавания и персональные данные |
| DOCX | извлечение текста или внешний конвертер | таблицы, стили и вложенные элементы |
PDF и OCR: не смешивайте задачи ¶
Если PDF содержит текстовый слой, его можно извлекать как документ. Если это скан или фото, Extract From File не заменяет полноценный OCR. Для счетов, актов и накладных лучше строить pipeline так: файл → проверка типа → OCR/AI extraction → валидация полей → человек проверяет спорные значения → запись в учёт.
Invoice parsing: минимальный контракт ¶
Для счетов не сохраняйте только “сырой текст”. Сначала выделите устойчивые поля:
{
"document_type": "invoice",
"invoice_number": "INV-2026-0012",
"invoice_date": "2026-05-29",
"supplier_inn": "7700000000",
"total_amount": 12990.50,
"currency": "RUB",
"confidence": 0.92,
"source_file": "invoice_0012.pdf"
}
Если confidence низкий, не записывайте данные сразу в CRM или бухгалтерию. Отправьте документ на ручную проверку.
Binary data и большие файлы ¶
При работе с файлами следите за режимом хранения binary data. По умолчанию файлы могут держаться в памяти, и большие вложения способны перегрузить инстанс. Для self-hosted n8n стоит отдельно продумать режим хранения binary data, лимиты размера файлов и очистку старых executions.
Типовые ошибки Extract From File ¶
| Симптом | Причина | Что проверить |
|---|---|---|
| нода не видит файл | неверное имя binary property | открыть execution и посмотреть поле binary |
| PDF вернул пустой текст | это скан без текстового слоя | использовать OCR или AI vision |
| CSV разбился на одну колонку | не тот delimiter или кодировка | проверить separator, encoding и sample file |
| XLSX даёт мусорные строки | в файле шапки, примечания, объединённые ячейки | добавить очистку и выбор нужного диапазона |
| workflow падает на больших файлах | binary data хранится в памяти или нет лимитов | настроить режим хранения и ограничения размера |
Где это применять ¶
- Gmail attachments → Extract From File → Google Sheets;
- счёт PDF → AI extraction → approval → CRM;
- CSV выгрузка банка → Postgres → отчёт;
- документы из Google Drive → RAG-база знаний;
- прайс-лист поставщика → нормализация → сравнение цен.
Официальные источники ¶
Практический контекст для внедрения ¶
Эта страница полезна не как абстрактная справка, а как рабочая инструкция под использование ноды/паттерна «Extract From File, PDF и OCR в n8n: файлы, вложения и структурированные данные» в рабочем workflow, где важно понимать входные items и формат результата. Перед изменением workflow зафиксируйте источник события: входные данные по теме extract from file: webhook, schedule, ручной запуск или событие внешнего сервиса. Так проще отделить ошибку данных от ошибки настройки n8n и не превратить исправление в набор случайных правок.
Минимальная проверка перед публикацией workflow: один happy path, один пустой payload, один повтор события и одна ошибка внешнего сервиса. Для мониторинга используйте successful executions, skipped items, retry count, error branch usage; эти показатели быстро покажут, что сценарий работает иначе, чем ожидалось.