AI請求書アシスタント
中級
これはInvoice Processing, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にSet, Gmail, Filter, GoogleSheets, ManualTriggerなどのノードを使用。 AI請求書処理エージェント
前提条件
- •Googleアカウント + Gmail API認証情報
- •Google Sheets API認証情報
- •OpenAI API Key
使用ノード (13)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "eOgIRm4wzZec7jkD",
"meta": {
"instanceId": "061ca141d020a6e1355b8c7fe05f92a699e37e92079ad2e150a506ee8bbe9e11",
"templateCredsSetupCompleted": true
},
"name": "AI Invoice Agent",
"tags": [],
"nodes": [
{
"id": "a3c4602c-fde7-4fed-9f6b-71a08a51f9ce",
"name": "ワークフロー実行をクリックしたとき",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-2944,
448
],
"parameters": {},
"typeVersion": 1
},
{
"id": "89a82cb6-c972-4a06-9f7e-29e3f322ad89",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-2752,
448
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs/edit?usp=drivesdk",
"cachedResultName": "Client Invoices"
}
},
"typeVersion": 4.6
},
{
"id": "95b66133-04fe-42fd-b906-8e742efa1b27",
"name": "フィルター",
"type": "n8n-nodes-base.filter",
"position": [
-2528,
448
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "afe0ae0a-9f88-4605-b064-223db0c34522",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Status }}",
"rightValue": "Pending"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2ab041df-a151-4eb7-b38d-b75b4c76fa91",
"name": "フィールド編集",
"type": "n8n-nodes-base.set",
"position": [
-2304,
448
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "eae2796d-a5bb-4bc1-a4f6-26abc64e2185",
"name": "\tInvoice ID",
"type": "string",
"value": "={{ $json['\tInvoice ID'] }}"
},
{
"id": "72f18799-575f-4c4c-9f67-02a9dc9a45ab",
"name": "Client Name",
"type": "string",
"value": "={{ $json['Client Name'] }}"
},
{
"id": "66338ec2-a287-4319-b0a2-89c6e2915d07",
"name": "Client Address",
"type": "string",
"value": "={{ $json['Client Address'] }}"
},
{
"id": "9e9dceea-5fe0-4be8-8ddb-826b9e569dea",
"name": "Project Name\t",
"type": "string",
"value": "={{ $json['Project Name\t'] }}"
},
{
"id": "82d90cd2-1075-41d0-a251-242498884069",
"name": "Amount (USD)",
"type": "number",
"value": "={{ $json['Amount (USD)'] }}"
},
{
"id": "b84b6393-bfc2-494a-b8e1-3f918734088f",
"name": "Invoice Date",
"type": "string",
"value": "={{ $now.format('yyyy-MM-dd') }}"
},
{
"id": "889bc329-2802-4670-8d0e-88e97f25be65",
"name": "Due Date",
"type": "string",
"value": "={{ $now.plus({day: 7}).format('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bab29942-290c-43f0-940f-0a6a2553ba97",
"name": "アイテムをループ",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-2080,
448
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "fe9ce649-2590-4569-879e-1933f32ddf57",
"name": "AIエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1760,
208
],
"parameters": {
"text": "=You are a professional invoicing assistant for a creative agency called \"Upward Engine\". Generate a polite, professional email to a client who has received an invoice as a PDF attachment. Include the client name, project name, invoice amount, invoice ID, invoice date, and due date.\n\nThe tone should be friendly but business-oriented, and the purpose is to inform the client that the invoice is attached, and to kindly request timely payment. End with a thank-you message and sign off as \"Upward Engine Team\".\n\nHere is the invoice data:\n- Client name: {{ $json['Client Name'] }}\n- Project Name: {{ $json['Project Name\t'] }}\n- Invoice Amount: {{ $json['Amount (USD)'] }}\n- Invoice ID: {{ $json['\tInvoice ID'] }}\n- Invoice Date: {{ $json['Invoice Date'] }}\n- Due Date: {{ $json['Due Date'] }}",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "f6d889e9-5bf0-48a7-8562-bd45ced618fc",
"name": "情報抽出",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
-1424,
208
],
"parameters": {
"text": "={{ $json.output }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "email subject",
"description": "subject of the mail"
},
{
"name": "email body",
"description": "email body without the subject"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "012075eb-1e97-4d49-9b36-2a2e22ccdbdc",
"name": "CraftMyPDF",
"type": "n8n-nodes-craftmypdf.craftMyPdf",
"position": [
-1072,
352
],
"parameters": {
"data": "={\n\"company_name\": \"Upward Engine\",\n \"company_address\": \"Silicon Valey, USA\",\n \"company_email\": \"admin@upwardengine.com\",\n \"bill_to\": \"{{ $('Edit Fields').item.json['Client Name'] }}\",\n \"bill_to_address\": \"{{ $('Edit Fields').item.json['Client Address'] }}\",\n \"invoice_no\": \"{{ $('Edit Fields').item.json['\tInvoice ID'] }}\",\n \"invoice_date\": \"{{ $('Edit Fields').item.json['Invoice Date'] }}\",\n \"invoice_due_date\": \"{{ $('Edit Fields').item.json['Due Date'] }}\",\n \"footer\": \"Thank you for working with Upward Engine\",\n \"balance\": \"{{ $('Edit Fields').item.json['Amount (USD)'] }}\",\n \"project_name\": \"{{ $('Edit Fields').item.json['Project Name\t'] }}\",\n \"currency\": \"$\"\n\n}",
"resource": "pdf",
"templateId": "YOUR_TEMPLATE_ID",
"export_type": "file"
},
"typeVersion": 1
},
{
"id": "8f9cbcf4-0162-41ba-8934-3a2490e213bb",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
-848,
352
],
"webhookId": "85f9cc55-4019-4f9f-a7b8-852ba7f38d1b",
"parameters": {
"sendTo": "={{ $('Google Sheets').item.json['Client Email'] }}",
"message": "={{ $('Information Extractor').item.json.output['email body'] }}",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{
"property": "output.pdf"
}
]
},
"appendAttribution": false
},
"subject": "={{ $('Information Extractor').item.json.output['email subject'] }}",
"emailType": "text"
},
"typeVersion": 2.1
},
{
"id": "d2249aba-b9ef-451b-9646-e529836c38aa",
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
-608,
448
],
"parameters": {
"columns": {
"value": {
"Status": "Completed",
"Due Date": "={{ $('Edit Fields').item.json['Due Date'] }}",
"\tInvoice ID": "={{ $('Edit Fields').item.json['\tInvoice ID'] }}",
"Invoice Date": "={{ $('Edit Fields').item.json['Invoice Date'] }}"
},
"schema": [
{
"id": "\tInvoice ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "\tInvoice ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Client Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Client Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Client Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Name\t",
"type": "string",
"display": true,
"required": false,
"displayName": "Project Name\t",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Amount (USD)",
"type": "string",
"display": true,
"required": false,
"displayName": "Amount (USD)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Invoice Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Invoice Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Due Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Due Date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"\tInvoice ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1d7CWcM_Ge6s2iaoGXOsxykLQFsDa_iyEFyP0qxJ9Qbs/edit?usp=drivesdk",
"cachedResultName": "Client Invoices"
}
},
"typeVersion": 4.6
},
{
"id": "499dbf0b-3c1a-4a86-930e-d792834635d2",
"name": "GPT - 4.1 mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1584,
480
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "YmJZYHbn92LbB3C0",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "81872408-4ad6-4bf7-8f45-aecfd9dadddd",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4000,
-320
],
"parameters": {
"color": 2,
"width": 912,
"height": 1152,
"content": "✅ Make sure **CraftMyPDF** node is installed in your n8n otherwise it will show error. If first time it doesn't shows the **CraftMyPDF** node then install it then delete the complete workflow and reuse/reupload the workflow again:\n\n---\n\n# 🛠 Setup Guide\n\nFollow these steps to get started:\n\n1. **Prepare your Google Sheet**\n\n * Connect your **Client Invoices** sheet in the **Google Sheets** node.\n * Make sure the sheet has columns like: *Invoice ID, Client Name, Client Email, Client Address, Project Name, Amount (USD), Status, Invoice Date, Due Date*.\n * This sheet will store invoice data and track payment status.\n\n2. **Filter pending invoices**\n\n * The **Filter** node only processes rows where `Status = Pending`.\n * Update invoice data accordingly before running the workflow.\n\n3. **Edit invoice fields**\n\n * The **Edit Fields** node automatically sets the `Invoice Date` to today and calculates a `Due Date` (7 days later).\n * It also maps client info and project details from the sheet.\n\n4. **Generate the client email draft**\n\n * The **AI Agent** creates a polite, professional email using your invoice details.\n * The **Information Extractor** separates the subject and body for structured email sending.\n\n5. **Create the invoice PDF**\n\n * Connect your [CraftMyPDF](https://craftmypdf.com/) account and replace `YOUR_TEMPLATE_ID` with your template.\n * The invoice includes company info, client details, project name, invoice amount, and payment due date.\n\n6. **Send the invoice email**\n\n * Connect your **Gmail** account in the **Gmail** node.\n * It sends the AI-generated email with the invoice PDF attached to the client’s email.\n\n7. **Update invoice status in Google Sheets**\n\n * After sending, the **Google Sheets1** node updates the row by marking the invoice `Status` as **Completed** along with invoice and due dates.\n\nOnce set up, this workflow will **automatically generate invoices, send them via email with PDFs attached, and update your sheet** 📩📊\n\n---\n"
},
"typeVersion": 1
},
{
"id": "a036c3db-df20-49a6-a42d-93559a8f245a",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2992,
-304
],
"parameters": {
"color": 2,
"width": 480,
"height": 448,
"content": "## Start here: Step-by Step Youtube Tutorial :star:\n[](https://youtu.be/r8Cg7hTMFdg)"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "71a433b1-d1c0-432b-942d-a7c45cf021e4",
"connections": {
"8f9cbcf4-0162-41ba-8934-3a2490e213bb": {
"main": [
[
{
"node": "d2249aba-b9ef-451b-9646-e529836c38aa",
"type": "main",
"index": 0
}
]
]
},
"95b66133-04fe-42fd-b906-8e742efa1b27": {
"main": [
[
{
"node": "2ab041df-a151-4eb7-b38d-b75b4c76fa91",
"type": "main",
"index": 0
}
]
]
},
"fe9ce649-2590-4569-879e-1933f32ddf57": {
"main": [
[
{
"node": "f6d889e9-5bf0-48a7-8562-bd45ced618fc",
"type": "main",
"index": 0
}
]
]
},
"012075eb-1e97-4d49-9b36-2a2e22ccdbdc": {
"main": [
[
{
"node": "8f9cbcf4-0162-41ba-8934-3a2490e213bb",
"type": "main",
"index": 0
}
]
]
},
"2ab041df-a151-4eb7-b38d-b75b4c76fa91": {
"main": [
[
{
"node": "bab29942-290c-43f0-940f-0a6a2553ba97",
"type": "main",
"index": 0
}
]
]
},
"89a82cb6-c972-4a06-9f7e-29e3f322ad89": {
"main": [
[
{
"node": "95b66133-04fe-42fd-b906-8e742efa1b27",
"type": "main",
"index": 0
}
]
]
},
"499dbf0b-3c1a-4a86-930e-d792834635d2": {
"ai_languageModel": [
[
{
"node": "fe9ce649-2590-4569-879e-1933f32ddf57",
"type": "ai_languageModel",
"index": 0
},
{
"node": "f6d889e9-5bf0-48a7-8562-bd45ced618fc",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"d2249aba-b9ef-451b-9646-e529836c38aa": {
"main": [
[
{
"node": "bab29942-290c-43f0-940f-0a6a2553ba97",
"type": "main",
"index": 0
}
]
]
},
"bab29942-290c-43f0-940f-0a6a2553ba97": {
"main": [
[],
[
{
"node": "fe9ce649-2590-4569-879e-1933f32ddf57",
"type": "main",
"index": 0
}
]
]
},
"f6d889e9-5bf0-48a7-8562-bd45ced618fc": {
"main": [
[
{
"node": "012075eb-1e97-4d49-9b36-2a2e22ccdbdc",
"type": "main",
"index": 0
}
]
]
},
"a3c4602c-fde7-4fed-9f6b-71a08a51f9ce": {
"main": [
[
{
"node": "89a82cb6-c972-4a06-9f7e-29e3f322ad89",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 請求書処理, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AIリードミニングエージェント
Apify、AI、Gmail を使用した自動リード生成とアウトバウンド送信
If
Set
Wait
+
If
Set
Wait
20 ノードRakin Jakaria
リード獲得
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
OpenAI、ElevenLabs、Fal.ai を使用した動画・パ odcast・ASM R向けのウイルス性コンテンツ自動作成
OpenAI、ElevenLabs、そして Fal.ai を使って動画、ポッドキャスト、ASMR に向けたウイルスのコンテンツ作成を自動化
Set
Code
Wait
+
Set
Code
Wait
97 ノードAdam Crafts
コンテンツ作成
ローカルなリード検索とコールドメール送信の自動化
Apify、AI、Gmail を使って地元のリードを自動検出してブルーノートを送信する
If
Set
Wait
+
If
Set
Wait
18 ノードMeak
コンテンツ作成
YouTube 動画に基づく自律ブログ公開
YouTube 動画から ChatGPT、Sheets、Apify、Pexels、WordPress を使用してブログの自主公開
If
Set
Code
+
If
Set
Code
80 ノードOriol Seguí
コンテンツ作成
毎日のニュース要約:RSSフィードをScrapeGraphAIで集めてメール/テレグラムに送信
GPTとGeminiを用いてRSSフィードからパーソナライズされたニュースサマリー作成し、メール/Telegramへ送信
Set
Gmail
Limit
+
Set
Gmail
Limit
22 ノードDavide
コンテンツ作成