Azure GPT-4.1と人工検証を使用してGmail内の請求書を自動処理
上級
これはInvoice Processing, AI Summarization分野の自動化ワークフローで、17個のノードを含みます。主にIf, Gmail, Merge, GmailTrigger, StopAndErrorなどのノードを使用。 Azure GPT-4.1 と人間検証で Gmail への invoice 処理のオートメーション
前提条件
- •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
人事
ディープ・スト Maximizerが使えるLinkedInスクレイピングでGoogle Geminiで要約し、Supabaseに保存
Bright Data、Google Gemini、Supabaseを使ってLinkedInのプロフィール情報を抽出し、要約する
If
Set
Merge
+
If
Set
Merge
31 ノードRanjan Dailata
AI要約
AI による Gmail 領収書の自動保存
AIによる Gメール領収書の自動保存機能:Google スプレッドシート・Google ドライブへ
Set
Gmail
Merge
+
Set
Gmail
Merge
14 ノードMatt Chong
請求書処理
基于AIのMISエージェント
基于AIの管理信息系统エージェント
If
Set
Code
+
If
Set
Code
129 ノードKumar Shivam
サポート