使用 Gmail、Groq AI 和 Google Sheets 自动化邮件过滤与 AI 摘要
中级
这是一个Ticket Management, AI Summarization领域的自动化工作流,包含 14 个节点。主要使用 If, Code, GmailTrigger, GoogleSheets, Agent 等节点。 使用 Gmail、Groq AI 和 Google Sheets 自动化邮件过滤与 AI 摘要
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "a62a87f42cfae9ad2ff7f238a8854ab1946946f1bd38cb9d8b7442e62435a1d5"
},
"nodes": [
{
"id": "39b2d4bd-b29b-4e52-864e-0090e8f8e56f",
"name": "测试注释",
"type": "n8n-nodes-base.stickyNote",
"position": [
1360,
1460
],
"parameters": {
"color": 6,
"width": 300,
"height": 220,
"content": "## 🧪 部署前测试"
},
"typeVersion": 1
},
{
"id": "75cc1f51-da2d-411a-bd64-7c574c5d5d11",
"name": "记录到 Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
980,
1560
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('info1').item.json.Date }}",
"summary": "={{ $json.output }}",
"subject ": "={{ $('info1').item.json.Subject }}",
"sender name": "={{ $('info1').item.json[\"Sender Name\"] }}",
"sender email": "={{ $('info1').item.json[\"Sender Email\"] }}"
},
"schema": [
{
"id": "sender name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "sender name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "sender email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "sender email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "subject ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "subject ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"sender name"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "YOUR_GOOGLE_SHEETS_URL",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "YOUR_GOOGLE_SHEETS_DOCUMENT_ID"
}
},
"typeVersion": 4
},
{
"id": "b5d3d06e-116f-4c40-bbd0-c22cd622af96",
"name": "AI Agent1",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
400,
1500
],
"parameters": {
"text": "=Please read this email \"{{ $json.Content }}\" and provide a very short, concise summary containing only the most important information. Keep the summary as brief as possible without losing essential details. ",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "a69f2251-947b-444c-b314-d510870b6583",
"name": "Gmail 触发器",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-600,
1600
],
"parameters": {
"simple": false,
"filters": {
"labelIds": [
"CATEGORY_PERSONAL"
]
},
"options": {
"downloadAttachments": false
},
"pollTimes": {
"item": [
{
"mode": "=everyHour",
"minute": 59
}
]
}
},
"typeVersion": 1
},
{
"id": "a7024314-9303-42f3-a854-dcb385c991f7",
"name": "检查有效邮箱",
"type": "n8n-nodes-base.if",
"position": [
60,
1600
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c1d2e3f4-g5h6-i7j8-k9l0-m1n2o3p4q5r6",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json[\"Sender Name\"] }}",
"rightValue": "YOUR_SENDER_NAME_FILTER"
}
]
}
},
"typeVersion": 2
},
{
"id": "eab995bb-43bf-4c23-9cc1-41b80a9deb0a",
"name": "Groq 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"position": [
260,
2000
],
"parameters": {
"model": "llama-3.1-8b-instant",
"options": {}
},
"typeVersion": 1
},
{
"id": "d408d58f-c818-4601-8109-f90bb152e381",
"name": "信息1",
"type": "n8n-nodes-base.code",
"position": [
-260,
1600
],
"parameters": {
"jsCode": "const items = [];\n\nfor (const item of $input.all()) {\n const emailData = item.json;\n \n // Handle sender information (unchanged)\n let senderEmail = '';\n let senderName = '';\n\n if (emailData.from?.value?.[0]) {\n senderEmail = emailData.from.value[0].address || '';\n senderName = emailData.from.value[0].name || senderEmail;\n } else if (emailData.from?.text) {\n const emailMatch = emailData.from.text.match(/<([^>]+)>/) || \n emailData.from.text.match(/([^\\s]+@[^\\s]+)/);\n senderEmail = emailMatch ? emailMatch[1] : emailData.from.text;\n \n const nameMatch = emailData.from.text.match(/^([^<]+)/);\n senderName = nameMatch ? nameMatch[1].trim().replace(/\\\"/g, '') : senderEmail;\n }\n\n // Format date (unchanged)\n const receivedDate = new Date(emailData.date || emailData.receivedTime);\n const formattedDate = receivedDate.toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n\n // FIXED CONTENT EXTRACTION\n let emailContent = '';\n \n // 1. First priority: Plain text version\n if (emailData.text) {\n emailContent = emailData.text;\n } \n // 2. Second priority: HTML version (convert to plain text)\n else if (emailData.html) {\n emailContent = emailData.html\n .replace(/<style[^>]*>.*?<\\/style>/gs, '') // Remove CSS\n .replace(/<[^>]*>/g, ' ') // Strip HTML tags\n .replace(/\\s+/g, ' ') // Collapse whitespace\n .trim();\n }\n // 3. Fallback to other possible fields\n else if (emailData.body || emailData.textPlain || emailData.textHtml) {\n emailContent = emailData.body || emailData.textPlain || emailData.textHtml;\n }\n\n // Truncate content if too long\n const maxContentLength = 5000;\n if (emailContent.length > maxContentLength) {\n emailContent = emailContent.substring(0, maxContentLength) + '... [truncated]';\n }\n\n // Create row data\n const rowData = {\n 'Date': formattedDate,\n 'Sender Name': senderName,\n 'Sender Email': senderEmail,\n 'Subject': emailData.subject || 'No Subject',\n 'Content': emailContent,\n //'Message ID': emailData.messageId || '',\n 'Has Attachments': emailData.attachments?.length > 0 ? 'Yes' : 'No'\n };\n \n items.push({ json: rowData });\n}\n\nreturn items;"
},
"typeVersion": 2
},
{
"id": "2bb19466-2a13-48d1-8f9c-be3db440c061",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-680,
1380
],
"parameters": {
"color": 5,
"width": 260,
"height": 400,
"content": "## 🔑 步骤 1:添加 Gmail 凭据 👇"
},
"typeVersion": 1
},
{
"id": "5fef7b17-cca7-4f06-99c0-efe6944b6a48",
"name": "便签8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
1380
],
"parameters": {
"color": 5,
"width": 260,
"height": 400,
"content": "## 📧 步骤 2:邮件处理节点"
},
"typeVersion": 1
},
{
"id": "bf269863-ccaa-4a22-aff2-a98305d8c354",
"name": "便签9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-20,
1380
],
"parameters": {
"color": 5,
"width": 260,
"height": 400,
"content": "## ⚙️ 步骤 3:发件人过滤器"
},
"typeVersion": 1
},
{
"id": "2ea54fa1-fd79-48ca-854c-14b706cf3315",
"name": "便签 10",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
1360
],
"parameters": {
"color": 5,
"width": 360,
"height": 420,
"content": "## ✍️ 步骤 4:自定义 AI 提示"
},
"typeVersion": 1
},
{
"id": "92c18c6f-3c83-41e0-8757-67455aff44da",
"name": "便签 11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
1900
],
"parameters": {
"color": 5,
"width": 260,
"height": 220,
"content": "## 🤖 步骤 5:AI 配置"
},
"typeVersion": 1
},
{
"id": "56894a8f-5340-43a3-a852-7d4dadbdd376",
"name": "便签12",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
1380
],
"parameters": {
"color": 4,
"width": 500,
"height": 400,
"content": "## 📊 步骤 6:Google Sheets 设置"
},
"typeVersion": 1
},
{
"id": "bb07639e-3edb-4be1-8554-cd6df8ebb22c",
"name": "便签13",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
1840
],
"parameters": {
"color": 4,
"width": 700,
"height": 420,
"content": "## ✅ 预期输出格式"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"info1": {
"main": [
[
{
"node": "Check Valid Email",
"type": "main",
"index": 0
}
]
]
},
"AI Agent1": {
"main": [
[
{
"node": "Log to Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "info1",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Check Valid Email": {
"main": [
[
{
"node": "AI Agent1",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 工单管理, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
从播放列表中获取播客所有重要信息 100%免费✅
从播放列表中获取播客所有重要信息 100%免费✅
Code
You Tube
Function
+8
23 节点ARRE
内容创作
支持收件箱到常见问题解答回填(Gmail/Outlook)
使用GPT-4o、Gmail、Notion和Slack将支持邮件转换为常见问题解答
If
Code
Gmail
+7
21 节点Rahul Joshi
工单管理
AI 客户支持分流与摘要系统
使用GPT-4o、Slack和CRM集成自动处理客户支持
If
Set
Code
+10
32 节点NodeAlchemy
工单管理
Intercom对话评论
使用Intercom、GPT和Google Sheets自动化支持质量评估
If
Code
Merge
+7
22 节点Saleshandy
工单管理
主动智能客户支持中心
使用GPT-4、Gmail和Trello的自动邮件支持分诊
If
Code
Gmail
+6
14 节点Marth
工单管理
15 - LeadFlow 自动化
使用OpenAI GPT-4O、HubSpot、Slack和Google Sheets自动化Gmail潜在客户跟进
If
Set
Code
+7
14 节点Avkash Kakdiya
AI 摘要总结
工作流信息
难度等级
中级
节点数量14
分类2
节点类型7
作者
ARRE
@arreAutomation Architect | I transform complexity into simplicity Building intelligent n8n workflows that do your heavy lifting in minutes, not hours. My mission: Eliminate repetitive tasks, streamline your operations, and give you back the most valuable resource – your time. Let’s make work feel lighter together.
外部链接
在 n8n.io 查看 →
分享此工作流