당신과 함께 생각해주는 인박스: n8n의 PaperOffice AI, 단계별로
배치 스캔이 들어오면, 마지막에 모든 문서가 인식되고, 분류되며, 검증되어 해당 주문과 매칭됩니다. 맞지 않는 부분이 있다면 사람이 결정합니다. 실제 실행 결과를 먼저 확인한 후, n8n에서 10단계로 빌드합니다.
학습 내용
- 웹훅을 통해 배치 스캔을 수신하고 Split Agent로 분리합니다
- IDP Agent로 필드를 읽고, 문서를 분류하며, 송장 및 납품서를 주문에 연결합니다
- AI-DMS Ultra로 플래그가 지정된 문서를 확인하고 사람에게 검토 작업을 생성합니다
- 결정을 기다리고 적용합니다: 승인, 격리, 법적 보존
대본 숨기기 대본 보기 전체 대본
안녕하세요, PaperOffice AI 아카데미에 오신 것을 환영합니다. 이번 에피소드에서는 n8n에서 사용자와 함께 사고하는 스마트 인박스를 구축합니다. 배치 스캔이 도착하면, 마지막 단계에서 모든 문서가 인식되고 분류되며, 검증되어 해당 주문과 매칭됩니다. 일치하지 않는 부분이 있을 경우, 사람이 최종 결정을 내립니다.
결과 먼저: 실제 실행 사례와 인간의 결정
무언가를 구축하기 전에 먼저 결과를 살펴보겠습니다. 실제 실행 사례를 확인한 후, 단계별로 구축해 나가겠습니다. 예시로 들어갈 것은 6페이지로 구성된 배치 스캔입니다: 발주서 1부, 납품서 1부, 그리고 송장 4부가 포함됩니다. 그중 한 송장에 갑자기 새로운 은행 계좌 번호가 나타납니다. 저는 이 배치 스캔을 웹훅(webhook)으로 전송합니다. 스캐너에서 출력되는 그대로 6페이지가 하나의 PDF 파일로 구성됩니다. 실행 목록에서 실행이 시작됩니다. Split(분할)이 문서를 분리하고, IDP(지능적 문서 처리)가 필드를 읽으며, 플래그가 지정된 모든 송장은 Ultra 검증을 거칩니다. 이 과정에는 몇 분이 소요되므로 저는 시간을 단축하여 진행하겠습니다. 실행은 6개의 문서를 인식하고 분류하며 주문과 매칭을 완료했습니다. 이유를 가진 각 문서에 대해 이제 작업이 대기 중이며, 워크플로우가 우리의 결정을 기다리며 대기 상태에 있습니다. PaperOffice의 ‘Human in the Loop(사람 개입)’ 항목 아래에는 각 작업의 이유가 나열되어 있습니다. PaperOffice는 이미 이 송장을 알고 있습니다. 이는 영수증 도장이 찍힌 이베리카(Iberica) 송장의 두 번째 사본입니다. 워크플로우는 중복을 보고하며, 검토 뷰에서는 원본을 지목합니다. 저는 이유를 명시하고 이를 거부합니다. 이 송장에 대해 해당 검증은 높은 사기 위험을 보고합니다: 공급업체가 새로운 은행 계좌를 제공했기 때문입니다. 점수 7점의 문서는 자동으로 격리됩니다. 저도 이 송장을 거부합니다. 4만 7,500유로 상당의 송장은 특별한 문제가 없습니다. 승인하기 전에 추출된 필드를 확인한 후, ‘승인’을 클릭합니다. 나머지 세 가지 작업도 동일한 방식으로 처리합니다. 모든 결정은 두 번째 웹훅을 통해 실행을 깨웁니다. 마지막 결정이 완료되면 실행이 종료됩니다: 약 30분이 소요되었으며, 그중 대부분은 우리의 결정을 기다리는 시간이었습니다. PaperOffice의 결과: 승인된 문서는 Northstar Documents에 저장되며, 송장은 2036년 말까지 개정 방지 처리가 됩니다. ‘활동(Activities)’ 탭에는 워크플로우의 메모가 기록되어 있습니다. 중복 문서는 Quarantine Workspace에 보관되며, 법적 보존 조치와 메모가 함께 적용되어 더 이상 삭제할 수 없습니다. 그리고 이것이 바로 지금 n8n에서 일반 HTTP 노드를 사용하여 단계별로 구축하고 있는 인박스입니다. 총 10단계입니다.
10단계 중 1단계: 입력
1단계는 입력입니다. 각 단계에 필요한 노드를 미리 준비해 두었습니다. 이를 붙여넣고 올바른 위치에 배치합니다. 웹훅은 POST 방식으로 파일을 수신합니다. 헤더 인증(Header-Auth)으로 보호되며, 헤더에 올바른 키를 전송한 경우에만 접근이 허용됩니다. 응답은 자동으로 처리되지 않으며, 전용 응답 노드를 통해 처리됩니다. 파일이 누락된 경우 프로세스는 즉시 응답 단계로 진행되며, 발신자는 명확한 오류 메시지를 즉시 받게 됩니다.
10단계 중 2단계: Split Agent
2단계는 Split Agent입니다. 이를 입력에 연결하며, 구체적으로는 파일이 위치한 브랜치에 연결합니다. PaperOffice API로 작업 인터페이스에 POST하는 단일 호출을 수행합니다. 자격 증명은 노드 내부가 아닌 n8n의 Header-Auth로 저장됩니다. 본문에는 템플릿 pdf_ai_split, 울트라 모델, 처리 레인, 파일 이름 규칙, 언어 및 파일 자체가 포함됩니다. 작업은 백그라운드에서 실행되므로, 워크플로는 완료될 때까지 6초마다 작업을 폴링합니다. 배치 분할이 완료되면 워크플로는 202 Accepted 응답을 보내고 나머지 작업을 계속 진행하며 발신자가 대기하지 않도록 합니다.
3단계 (전체 10단계 중): 문서별 처리
3단계는 문서별로 진행됩니다. 루프는 Split Agent의 결과에서 정확히 하나의 문서를 가져옵니다. 그런 다음 워크플로는 다운로드 링크를 통해 해당 문서 파일을 다운로드합니다.
4단계 (전체 10단계 중): IDP Agent
4단계는 IDP Agent입니다. 다시 한번 단일 호출을 수행하며, 이번에는 document_idp 템플릿을 사용합니다. 송장, 구매 발주서, 인도 증서의 경우 다음 필드가 반환됩니다: 공급업체, 번호, 날짜, 금액 및 품목과 해당 항목이 원본 문서에서 위치한 위치.
5단계 (전체 10단계 중): 파일링 + Knowledge Graph
5단계: 문서 보관 및 Knowledge Graph. document_put는 문서를 Workspace n8n 구매 프로세스에 보관합니다. procurement_bind는 구매 주문 번호를 통해 IDP Agent가 찾은 청구서와 납품서를 해당 주문에 연결합니다.
6단계 (전체 10단계 중): AI-DMS Ultra
6단계는 AI-DMS Ultra입니다. 모든 문서가 완전한 분석을 필요로 하지는 않으므로, 여기에서 규칙이 제공됩니다. 1,000유로를 초과하는 금액, 문서 유형 불일치, 필수 금액 누락 또는 발주서, 납품서 및 송장의 3자 비교 시 편차. 규칙이 적용되면 워크플로는 해당 문서에 대해 Ultra를 주문합니다.
7단계 (전체 10단계 중): 감사 및 검토 작업
7단계: 감사 및 검토 작업. 워크플로는 문서에서 사기 위험 요소와 그 근거를 읽어옵니다. 이후 작업 인터페이스를 통해 사람이 검토할 작업을 생성합니다. 여기에는 검토자 지정, 마감일, 긴급도 수준 및 관련 문서가 포함됩니다. 여기서 파서의 한계가 드러납니다. LlamaParse과 Mistral OCR은 텍스트와 구조를 제공합니다. 그러나 작업, 할당, 마감일 및 증빙을 포함한 검증 프로세스는 포함되어 있지 않습니다. 이 부분은 직접 구축해야 합니다.
10단계 중 8단계: 삼자 일치 확인
8단계는 3자 일치 확인입니다. 루프에는 두 가지 출력이 있습니다. 첫 번째 출력은 모든 문서가 완료되었을 때 실행되며, 이를 3자 일치 확인에 연결합니다. procurement_review는 각 거래를 검토하여 구매 발주서, 납품서 및 청구서의 헤더 금액과 품목이 일치하는지 확인합니다. 불일치가 있을 경우에도 작업이 생성됩니다.
10단계 중 9단계: 인간 대기 중
9단계: 인간 대기 중. 워크플로는 PaperOffice의 깨우기 주소에 등록된 후 시간 제한 없이 대기 모드로 들어갑니다. PaperOffice에서 결정이 내려지면, PaperOffice는 두 번째 웹훅을 통해 해당 결정을 보고합니다. 이는 이 작업대기 중인 실행 인스턴스를 찾아 깨웁니다.
10단계 중 10단계: 결정 적용
10단계에서는 결정을 적용합니다. 승인 시, 워크플로우는 승인된 작업을 증거로 사용하여 감사 잠금을 해제합니다. 그런 다음 문서는 Northstar Documents Workspace로 이동하며, 송장은 연말부터 유효 기간이 시작되는 개정 방지 처리가 됩니다. 거부 시, 문서는 잠긴 상태로 유지되며 법적 보존(Legal Hold) 조치가 적용됩니다. 두 경우 모두 워크플로우는 파일에 메모를 기록한 후 다음 결정을 기다립니다. 10단계, 하나의 워크플로우, 그리고 모든 것이 단일 플랫폼에서 실행됩니다: 하나의 계약, EU 내 데이터 저장, 하도급업체 없음. 데이터는 들어오고 나갑니다. 그리고 문서가 PaperOffice에 진입하면 새로운 컴포넌트 없이도 더 많은 기능이 가능해집니다: 전화 에이전트, MCP를 통한 Claude 또는 ChatGPT의 질문, 검색, 그리고 앱 내 워크플로우입니다. 다가오는 에피소드에서는 Split, IDP, Redact와 같은 개별 에이전트를 더 자세히 살펴보겠습니다. 그 동안에는: 즐거운 구축 되시길 바랍니다.