AI 自动保存 Gmail 收据
中级
这是一个Invoice Processing, AI Summarization领域的自动化工作流,包含 14 个节点。主要使用 Set, Gmail, Merge, GoogleDrive, GoogleSheets 等节点。 AI自动保存Gmail收据到Google表格和Google云端硬盘
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Drive API 凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (14)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "nd9yWEb16mznm5tg",
"meta": {
"instanceId": "a51f0c866a8392141497eefec55e5e9a9643a767ce369c214fb54b78c285cd5a",
"templateCredsSetupCompleted": true
},
"name": "AI 自动保存 Gmail 收据",
"tags": [],
"nodes": [
{
"id": "8fdd8f41-acfd-4430-bdfe-b9a43ea81dcc",
"name": "定时触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
-640
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a8c74ce2-0665-4c34-8e06-1a412f249be4",
"name": "AI 代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1100,
-640
],
"parameters": {
"text": "=You are an expert assistant that extracts receipt fields for tax tracking.\n\nHere is the full receipt text:\n{{ $json.text }}\n\nExtract and return a single JSON object with the following fields:\n- \"date\": Format as YYYY-MM-DD.\n- \"merchant\": Name of business or company issuing the receipt. If a value is missing, return `null`.\n- \"category\": Infer based on context (e.g. Meals, Software, Travel, Office Supplies).\n- \"description\": A short summary of the service or item purchased (e.g. “Domain name renewal for 2 years”). If a value is missing, return `null`.\n- \"subtotal\": Value before GST. Extract only if clearly labeled.If a value is missing, return 0.\n- \"tax\": The Goods and Services Tax amount (labelled as GST or Tax). Return 0 if not present.If a value is missing, return 0.\n- \"total\": Final amount paid (after tax). If a value is missing, return 0.\n- \"id\": {{ $json.id }}\n- \"threadId\": {{ $json.threadId }}\n\n\n\nRespond ONLY with a JSON object, like this:\n{\n \"date\": \"2025-03-12\",\n \"merchant\": \"Vendor\",\n \"category\": \"Software\",\n \"description\": \"Subscribe for 2 years\",\n \"subtotal\": 45.32,\n \"tax\": 4.53,\n \"total\": 49.85\n}\n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 2
},
{
"id": "1b97d088-fcaf-45dd-9d86-acb381984cc0",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1128,
-420
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4",
"cachedResultName": "gpt-4"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "__PLACEHOLDER__",
"name": "openAiApi Account"
}
},
"typeVersion": 1.2
},
{
"id": "5084e1bc-349b-4806-8954-c97a3d26d333",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1248,
-420
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"date\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"merchant\": {\n \"type\": \"string\"\n },\n \"category\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"subtotal\": {\n \"type\": \"number\"\n },\n \"tax\": {\n \"type\": \"number\"\n },\n \"total\": {\n \"type\": \"number\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n ,\n \"threadId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"date\", \"merchant\", \"category\", \"description\", \"subtotal\", \"tax\", \"total\", \"id\", \"threadId\"]\n}\n"
},
"typeVersion": 1.3
},
{
"id": "174f31ac-0849-47aa-8ff1-751d74e952e1",
"name": "获取含收据的邮件",
"type": "n8n-nodes-base.gmail",
"position": [
220,
-640
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"simple": false,
"filters": {
"q": "has:attachment",
"labelIds": [
"Label_3361902760602362460"
],
"readStatus": "unread"
},
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "8fcc7b91-267b-4572-9948-b7a4215cbf44",
"name": "获取必填字段",
"type": "n8n-nodes-base.set",
"position": [
660,
-440
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d9d2348c-eca4-4255-a6a9-de29ca06f2c6",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "8685f151-93c4-4eca-8378-ea6ec7b03631",
"name": "threadId",
"type": "string",
"value": "={{ $json.threadId }}"
},
{
"id": "695604d2-438d-4168-9747-f46a84f289ad",
"name": "textAsHtml",
"type": "string",
"value": "={{ $json.textAsHtml }}"
},
{
"id": "4fe59ba7-e736-4911-8080-f0cbb94db73d",
"name": "subject",
"type": "string",
"value": "={{ $json.subject }}"
},
{
"id": "288351d6-9248-4e84-b96d-006f14d0f6c3",
"name": "date",
"type": "string",
"value": "={{ $json.date }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "04b2b190-b370-411c-844c-2d8275aa1579",
"name": "下载附件",
"type": "n8n-nodes-base.gmail",
"position": [
440,
-640
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"simple": false,
"options": {
"downloadAttachments": true
},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "34256129-d04a-4e01-86cc-6a5b2108b954",
"name": "追加到 Google 表格",
"type": "n8n-nodes-base.googleSheets",
"position": [
1476,
-740
],
"parameters": {
"columns": {
"value": {
"Tax": "{{ $json.output.tax}}",
"Date": "={{ $json.output.date }}",
"Total": "={{ $json.output.total }}",
"Merchant": "={{ $json.output.merchant }}",
"Subtotal": "={{ $json.output.subtotal }}",
"Category ": "={{ $json.output.category }}",
"Description": "={{ $json.output.description }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Merchant",
"type": "string",
"display": true,
"required": false,
"displayName": "Merchant",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category ",
"type": "string",
"display": true,
"required": false,
"displayName": "Category ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Subtotal",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Subtotal",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Total",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Total",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tax",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Tax",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "__YOUR_SHEETNAME__",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "__YOUR_DOCUMENTID__",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "Receipts"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "__PLACEHOLDER__",
"name": "googleSheetsOAuth2Api Account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "1288f2c7-732b-4e35-9d4d-4b20c5f61171",
"name": "合并数据",
"type": "n8n-nodes-base.merge",
"position": [
880,
-640
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition",
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "e67ccaae-5bbc-4023-abbc-c9733d11198c",
"name": "上传文件",
"type": "n8n-nodes-base.googleDrive",
"position": [
660,
-840
],
"parameters": {
"name": "={{ \n (() => {\n const date = $json.date.slice(0, 10).replace(/-/g, '');\n const sender = ($json.from?.value?.[0]?.name || 'Unknown').trim();\n const cleanSender = sender\n .replace(/[^a-zA-Z0-9]/g, '_') // replace non-alphanumeric\n .replace(/_+/g, '_') // collapse repeated _\n .replace(/^_+|_+$/g, ''); // trim leading/trailing _\n return `${date}_${cleanSender}`;\n })()\n}}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "url",
"value": "__YOUR_FOLDERID__"
},
"inputDataFieldName": "attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "__PLACEHOLDER__",
"name": "googleDriveOAuth2Api Account"
}
},
"typeVersion": 3
},
{
"id": "36288b85-6591-4f4a-8637-bf21c8aea23e",
"name": "从发票中提取数据",
"type": "n8n-nodes-base.extractFromFile",
"position": [
660,
-640
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "b9494f63-29ae-42fa-b4ce-6509119d234b",
"name": "标记邮件为已读",
"type": "n8n-nodes-base.gmail",
"position": [
1476,
-540
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"messageId": "={{ $json.output.id }}",
"operation": "markAsRead"
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "c482e032-f3f4-49d5-81b0-c2ef7f191b13",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
-1000
],
"parameters": {
"width": 380,
"height": 320,
"content": "### 📤 上传收据到 Google Drive"
},
"typeVersion": 1
},
{
"id": "f724e9e1-0de2-4db8-b221-ed5692dc0ab4",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-840
],
"parameters": {
"width": 320,
"height": 400,
"content": "### 🕒 入口点 – 自动运行此流程"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "0ebecebd-a40a-4c41-bba3-12866c150052",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Append to Google Sheet",
"type": "main",
"index": 0
},
{
"node": "Mark Email as Read",
"type": "main",
"index": 0
}
]
]
},
"Merge Data": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Upload File": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get Emails with Receipts",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Download Attachment": {
"main": [
[
{
"node": "Upload File",
"type": "main",
"index": 0
},
{
"node": "Get Required Fields",
"type": "main",
"index": 0
},
{
"node": "Extract Data from Invoice",
"type": "main",
"index": 0
}
]
]
},
"Get Required Fields": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 2
}
]
]
},
"Append to Google Sheet": {
"main": [
[]
]
},
"Get Emails with Receipts": {
"main": [
[
{
"node": "Download Attachment",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Extract Data from Invoice": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 1
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 发票处理, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI重命名的 Gmail 附件保存到 Drive
使用 GPT-4o 自动重命名 Gmail 附件并保存到 Google Drive
Set
Gmail
Merge
+5
10 节点Matt Chong | n8n Creator
AI 摘要总结
使用 Mistral AI、LinkedIn 和 Google Sheets 自动化职位搜索与简历定制
使用 Mistral AI、LinkedIn 和 Google Sheets 自动化职位搜索与简历定制
Set
Code
Html
+18
46 节点Jordan Hoyle
个人效率
发票提醒:Gmail到Tasks
使用Gmail和Google Tasks自动检测发票并创建提醒
If
Gmail
Google Tasks
+6
13 节点Matt Chong
发票处理
AI Gmail:优先处理您应阅读的内容
使用Gmail和GPT-4o自动分类和标记邮件
Set
Gmail
Switch
+5
17 节点Matt Chong
个人效率
我的工作流
整理 Gmail:使用 GPT-4 分类归档非活跃邮件
If
Set
Gmail
+7
13 节点Matt Chong | n8n Creator
AI 摘要总结
GPT-4o与错误处理的自动化简历筛选 - Google表格与云端硬盘流程
GPT-4o与错误处理的自动化简历筛选 - Google表格与云端硬盘流程
If
Set
Gmail
+12
34 节点David Olusola
内容创作