Azure GPT-4.1 및 수동 검증을 사용하여 Gmail 내 인보이스 자동 처리
고급
이것은Invoice Processing, AI Summarization분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 If, Gmail, Merge, GmailTrigger, StopAndError 등의 노드를 사용하며. Azure GPT-4.1 및 수동 검증을 통한 Gmail 인보이스 처리 자동화
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •OpenAI API Key
사용된 노드 (17)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "zZWPMtZ0TNebe1fI",
"meta": {
"instanceId": "9d85a8cf5ffde86dc8ca46087fd639ee7966eec2fa01c3b00004cfc2bd9c91b0"
},
"name": "Automate Invoice Processing from Gmail with Azure GPT-4.1 and Human Verification",
"tags": [],
"nodes": [
{
"id": "a6fd1034-16ac-48ce-a20e-5d00f9709d76",
"name": "Gmail 트리거",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
40,
220
],
"parameters": {
"simple": false,
"filters": {
"sender": "youremail@gmail.com"
},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "T2T44GgzbxyaFB0y",
"name": "Gmail account"
}
},
"typeVersion": 1
},
{
"id": "b4829627-2c3e-477c-8ff0-9754f0010826",
"name": "IF: AI가 '예'라고 답변",
"type": "n8n-nodes-base.if",
"position": [
1020,
260
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.output[0].insights[0].body }}",
"value2": "Yes",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"id": "14933a59-1cd2-4572-aa92-8968ffa03b8a",
"name": "PDF 로컬 저장",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1640,
220
],
"parameters": {
"options": {},
"fileName": "=C:/Test/Invoices/invoice_{{ $now.toFormat('yyyyLLdd_HHmmss') }}.pdf",
"dataPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "0a17eed9-be81-4576-b218-ad12b3ffac28",
"name": "병합",
"type": "n8n-nodes-base.merge",
"position": [
1480,
220
],
"parameters": {
"mode": "chooseBranch"
},
"retryOnFail": false,
"typeVersion": 3.2
},
{
"id": "e577ce73-0505-45f0-80cb-aa6d241f1add",
"name": "정보 추출기",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"onError": "continueErrorOutput",
"position": [
660,
280
],
"parameters": {
"text": "={{ $json.text }}",
"options": {
"systemPromptTemplate": "You are an expert reviewing invoices. Analyze the texts and say if it is an invoice. Just answer 'Yes' or 'No'"
},
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"topic\": { \"type\": \"string\" },\n \"insights\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"body\": { \"type\": \"string\" }\n }\n }\n }\n }\n }\n}"
},
"typeVersion": 1.2,
"alwaysOutputData": true
},
{
"id": "861f5008-bd46-4091-b040-b7b2fe1e6f45",
"name": "이것이 PDF인가요?",
"type": "n8n-nodes-base.if",
"position": [
260,
220
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.subject }}",
"value2": "Invoice",
"operation": "contains"
},
{
"value1": "={{ $binary.attachment_0 }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "e23bf999-1718-4489-a308-e244b22e14ad",
"name": "메시지 전송",
"type": "n8n-nodes-base.gmail",
"position": [
1020,
480
],
"webhookId": "aaafea40-4fcd-4775-82bf-5302914a681b",
"parameters": {
"sendTo": "receiver@gmail.com",
"message": "I had trouble parsing the recent invoice. Can you please confirm that it is an invoice?",
"options": {
"appendAttribution": false
},
"subject": "Approval Required!",
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"credentials": {
"gmailOAuth2": {
"id": "T2T44GgzbxyaFB0y",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "bc2a8732-2e5f-421b-8df1-37a6ec2f7a2e",
"name": "인보이스 저장 완료 메시지",
"type": "n8n-nodes-base.gmail",
"position": [
1800,
220
],
"webhookId": "aaafea40-4fcd-4775-82bf-5302914a681b",
"parameters": {
"sendTo": "receiver@gmail.com",
"message": "=Hi there,\nInvoice '{{ $json.subject }}' from \"{{ $json.from.value[0].name }}\" has been saved successfully in your Local Folder!\n\n",
"options": {
"appendAttribution": false
},
"subject": "=Invoice Downloaded"
},
"credentials": {
"gmailOAuth2": {
"id": "T2T44GgzbxyaFB0y",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "c9155103-6c04-438a-8e90-edb63b9ffd1a",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
120
],
"parameters": {
"color": 7,
"width": 200,
"height": 300,
"content": "Triggers Gmail when new email from specific email account is received.\n"
},
"typeVersion": 1
},
{
"id": "a7a4385d-f00e-493c-9757-fbd660a64354",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
120
],
"parameters": {
"color": 7,
"width": 180,
"height": 300,
"content": "Checks if there is any pdf attachments in email, and Invoice is included in subject\n"
},
"typeVersion": 1
},
{
"id": "da0c4d5e-9c24-4f3d-a17a-ca92d3299729",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
420,
0
],
"parameters": {
"color": 7,
"width": 180,
"height": 600,
"content": "If both are true, it extracts the information from the pdf.\n\nIf not, it gives an error saying that there is no invoice file included."
},
"typeVersion": 1
},
{
"id": "2196f52f-9e5b-4acd-b173-86ff7e986b71",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
0
],
"parameters": {
"color": 7,
"width": 780,
"height": 660,
"content": "This checks the extracted information from the pdf and analyze if it is invoice.\n\nBased on the information, if it is invoice, it gives output of \"Yes\", otherwise \"No\".\n\nIf \"Yes\", it merges response to another node.\nIf \"No\", it sends an email to person and says that the file does not seem like an invoice and double check the file for review. When human responds that it is an invoice, it corrects its answer as \"Yes\".\n\nIf there is an error parsing the extracted texts, it sends an email to user to check the file and asks for approval."
},
"typeVersion": 1
},
{
"id": "ba5b7574-a2e1-401e-aab0-c7ca6b7856d8",
"name": "Azure OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
660,
440
],
"parameters": {
"model": "gpt-4.1",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "QvYBe8DtpxGloSPZ",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "42973f72-4ce9-4fff-90e5-9a09cc68f39b",
"name": "수동 검증",
"type": "n8n-nodes-base.gmail",
"position": [
1200,
340
],
"webhookId": "69f41f8b-bad8-4fe6-83db-b46e64f10e7f",
"parameters": {
"sendTo": "receiveremail@gmail.com",
"message": "The latest invoice does not seem to be legit. Please verify it manually.",
"options": {
"appendAttribution": false
},
"subject": "Manual Verification Required"
},
"credentials": {
"gmailOAuth2": {
"id": "T2T44GgzbxyaFB0y",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "f1d15106-d677-4484-8602-7091c87be5c7",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1420,
120
],
"parameters": {
"color": 7,
"width": 560,
"height": 300,
"content": "After verifying that the file is an invoice, it saves the file in the local directory. When the workflow is completed, it sends a success email to user."
},
"typeVersion": 1
},
{
"id": "f589f451-3faf-4930-ab12-4796f219d066",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 400,
"height": 100,
"content": "## Use this to automatically save invoice received in an email"
},
"typeVersion": 1
},
{
"id": "3b021445-e52e-4191-a454-654ba26e1bba",
"name": "오류 처리기",
"type": "n8n-nodes-base.stopAndError",
"position": [
460,
440
],
"parameters": {
"errorMessage": "There is no pdf file!"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "a74dc17a-a9fe-448e-a457-4b267ce63830",
"connections": {
"0a17eed9-be81-4576-b218-ad12b3ffac28": {
"main": [
[
{
"node": "14933a59-1cd2-4572-aa92-8968ffa03b8a",
"type": "main",
"index": 0
}
]
]
},
"861f5008-bd46-4091-b040-b7b2fe1e6f45": {
"main": [
[
{
"node": "0a17eed9-be81-4576-b218-ad12b3ffac28",
"type": "main",
"index": 0
},
{
"node": "e577ce73-0505-45f0-80cb-aa6d241f1add",
"type": "main",
"index": 0
}
],
[
{
"node": "3b021445-e52e-4191-a454-654ba26e1bba",
"type": "main",
"index": 0
}
]
]
},
"a6fd1034-16ac-48ce-a20e-5d00f9709d76": {
"main": [
[
{
"node": "861f5008-bd46-4091-b040-b7b2fe1e6f45",
"type": "main",
"index": 0
}
]
]
},
"b4829627-2c3e-477c-8ff0-9754f0010826": {
"main": [
[
{
"node": "0a17eed9-be81-4576-b218-ad12b3ffac28",
"type": "main",
"index": 1
}
],
[
{
"node": "42973f72-4ce9-4fff-90e5-9a09cc68f39b",
"type": "main",
"index": 0
}
]
]
},
"14933a59-1cd2-4572-aa92-8968ffa03b8a": {
"main": [
[
{
"node": "bc2a8732-2e5f-421b-8df1-37a6ec2f7a2e",
"type": "main",
"index": 0
}
]
]
},
"e577ce73-0505-45f0-80cb-aa6d241f1add": {
"main": [
[
{
"node": "b4829627-2c3e-477c-8ff0-9754f0010826",
"type": "main",
"index": 0
}
],
[
{
"node": "e23bf999-1718-4489-a308-e244b22e14ad",
"type": "main",
"index": 0
}
]
]
},
"ba5b7574-a2e1-401e-aab0-c7ca6b7856d8": {
"ai_languageModel": [
[
{
"node": "e577ce73-0505-45f0-80cb-aa6d241f1add",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 청구서 처리, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
제출용 인보이스 처리 시스템
Gmail, OCR.space, Slack 및 Xero를 통한 인보이스 처리 자동화
If
Code
Xero
+
If
Code
Xero
24 노드Abi Odedeyi
청구서 처리
Fireflies 회의 녹취 및 요약 자동화
Gemini 및 Gmail을 사용하여 Fireflies 트랜스크립트에서 자동화된 회의 요약
Set
Code
Gmail
+
Set
Code
Gmail
26 노드Davide
문서 추출
이력서와 직무 설명 매칭
Gemini LLM, Gmail 및 Notion 채용 공고 파일을 사용한 자동화된 이력서 점수 매기기
Wait
Gmail
Merge
+
Wait
Gmail
Merge
22 노드Agentick AI
인사
깊이 추출된 LinkedIn 크롤러를 사용하여 Google Gemini를 통해 요약하고 Supabase에 저장
Bright Data와 Google Gemini를 사용하여 LinkedIn 개인 프로필을 추출하고 요약합니다.
If
Set
Merge
+
If
Set
Merge
31 노드Ranjan Dailata
AI 요약
AI Gmail 영수증 자동 저장
AI자동保存Gmail收据로Google表格및Google云端硬盘
Set
Gmail
Merge
+
Set
Gmail
Merge
14 노드Matt Chong
청구서 처리
基于AI의MIS에이전트
基于AI의관리信息系统에이전트
If
Set
Code
+
If
Set
Code
129 노드Kumar Shivam
지원