使用GoHighLevel、Gmail、Slack和Sheets的每周客户互动自动化
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 23 个节点。主要使用 If, Code, Gmail, Slack, SplitOut 等节点。 每周客户再互动系统(GoHighLevel、Gmail、Sheets和Slack)
前置要求
- •Google 账号和 Gmail API 凭证
- •Slack Bot Token 或 Webhook URL
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "W1BO1coWaTTtuCrC",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "使用 GoHighLevel、Gmail、Slack 和 Sheets 的每周客户互动自动化",
"tags": [],
"nodes": [
{
"id": "5152120f-eb1c-4741-a0c4-c6073fb3403c",
"name": "工作流概览",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-256
],
"parameters": {
"color": 4,
"width": 387,
"height": 609,
"content": "## 📋 每周客户互动动态"
},
"typeVersion": 1
},
{
"id": "adf66a9e-7cb9-4fef-b345-4c13abcbaa9e",
"name": "注意:计划触发器",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
-400
],
"parameters": {
"color": 5,
"width": 340,
"height": 380,
"content": "## ⏰ 计划触发器节点"
},
"typeVersion": 1
},
{
"id": "7c5340fa-e80a-4db7-953e-8b3b31b2536f",
"name": "注意:HighLevel 获取",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
-384
],
"parameters": {
"color": 5,
"width": 340,
"height": 380,
"content": "## 🔗 HighLevel CRM 节点"
},
"typeVersion": 1
},
{
"id": "6037ea36-f052-483b-b6e9-ec4e8399c64c",
"name": "注意:筛选逻辑",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-416
],
"parameters": {
"color": 5,
"width": 340,
"height": 380,
"content": "## 🔍 筛选非活跃联系人"
},
"typeVersion": 1
},
{
"id": "94f2604f-359d-4b62-9d12-3c11cfe3dfe6",
"name": "注意:拆分数组",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
320
],
"parameters": {
"color": 5,
"width": 340,
"height": 572,
"content": "## 📤 拆分输出节点"
},
"typeVersion": 1
},
{
"id": "f09969ea-72a8-4651-bcf9-4a57a1ca404a",
"name": "注意:条件检查",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
384
],
"parameters": {
"color": 5,
"width": 340,
"height": 572,
"content": "## ❓ IF 条件节点"
},
"typeVersion": 1
},
{
"id": "661b394d-2dc8-4ff9-8d4d-eff137b18c4f",
"name": "注意:邮件发送器",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
-464
],
"parameters": {
"color": 5,
"width": 340,
"height": 412,
"content": "## 📧 Gmail 发送邮件节点"
},
"typeVersion": 1
},
{
"id": "2e2f7125-ae70-49a3-815e-cf332e9cc468",
"name": "注意:Google Sheets 记录器",
"type": "n8n-nodes-base.stickyNote",
"position": [
1216,
-176
],
"parameters": {
"color": 5,
"width": 340,
"height": 420,
"content": "## 📊 Google Sheets 日志节点"
},
"typeVersion": 1
},
{
"id": "187ea926-1dc1-4a44-b200-59242193544d",
"name": "注意:消息格式化器",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
432
],
"parameters": {
"color": 5,
"width": 340,
"height": 676,
"content": "## 🔄 格式化 Slack 消息"
},
"typeVersion": 1
},
{
"id": "67e28ac0-5c86-4f24-8cba-e7dca6b353a8",
"name": "注意:Slack 通知器",
"type": "n8n-nodes-base.stickyNote",
"position": [
1440,
336
],
"parameters": {
"color": 5,
"width": 340,
"height": 676,
"content": "## 💬 Slack 通知节点"
},
"typeVersion": 1
},
{
"id": "10d80719-f5c3-46e0-adff-f932f9a7eb98",
"name": "注意:错误触发器",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
560
],
"parameters": {
"color": 5,
"width": 340,
"height": 420,
"content": "## 🚨 错误触发器节点"
},
"typeVersion": 1
},
{
"id": "0f7d2301-2dd7-4f24-8580-38b7e5c19ccc",
"name": "注意:错误警报",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
608
],
"parameters": {
"color": 5,
"width": 340,
"height": 420,
"content": "## 📢 错误警报到 Slack"
},
"typeVersion": 1
},
{
"id": "5b9c5442-0ba8-4501-9adb-701b4166863d",
"name": "触发器:每周调度器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-240,
144
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * 1"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "8dd6f18c-dff9-409b-b83d-336722d28b2d",
"name": "获取 HighLevel 联系人",
"type": "n8n-nodes-base.highLevel",
"position": [
-16,
144
],
"parameters": {
"filters": {},
"options": {
"sortBy": "date_updated"
},
"operation": "getAll",
"requestOptions": {}
},
"credentials": {
"highLevelOAuth2Api": {
"id": "N9Q1X1RWUjvRIRbt",
"name": "HighLevel account 2"
}
},
"typeVersion": 2
},
{
"id": "1bd6795e-3915-420a-9f72-c05b0c788e89",
"name": "筛选非活跃联系人(14 天以上)",
"type": "n8n-nodes-base.code",
"position": [
208,
144
],
"parameters": {
"jsCode": "const fourteenDaysAgo = new Date();\nfourteenDaysAgo.setDate(fourteenDaysAgo.getDate() - 14);\n\nconst inactiveContacts = [];\n\nfor (const item of $input.all()) {\n const contact = item.json;\n const lastActivity = contact.dateUpdated || contact.dateAdded;\n const lastActivityDate = new Date(lastActivity);\n \n if (lastActivityDate < fourteenDaysAgo) {\n inactiveContacts.push({\n json: {\n ...contact,\n daysSinceContact: Math.floor((new Date() - lastActivityDate) / (1000 * 60 * 60 * 24)),\n lastContactDate: lastActivity,\n needsAttention: true\n }\n });\n }\n}\n\nreturn inactiveContacts;"
},
"typeVersion": 2
},
{
"id": "bc7bab6f-c83f-4bfa-878c-0beea381686e",
"name": "拆分客户数组",
"type": "n8n-nodes-base.splitOut",
"position": [
432,
144
],
"parameters": {
"options": {},
"fieldToSplitOut": "contactName, firstName, lastName, companyName, email, phone, address1, dateUpdated, dateAdded, id, tags, lastContactDate, needsAttention"
},
"typeVersion": 1
},
{
"id": "24b870ce-2065-4719-bc24-8c37be738046",
"name": "IF:需要关注",
"type": "n8n-nodes-base.if",
"position": [
656,
144
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.needsAttention }}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"id": "65a984e9-6140-4c5e-8411-4081e3207684",
"name": "发送重新互动邮件",
"type": "n8n-nodes-base.gmail",
"position": [
880,
48
],
"webhookId": "8e7e1939-4230-442a-8161-f98cc273c644",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Check-in Email</title>\n</head>\n<body style=\"margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f4f4f4;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color: #f4f4f4; padding: 40px 0;\">\n <tr>\n <td align=\"center\">\n <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); overflow: hidden;\">\n <tr>\n <td style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 30px; text-align: center;\">\n <h1 style=\"margin: 0; color: #ffffff; font-size: 24px; font-weight: 600;\">We're Thinking of You! 💭</h1>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 40px 30px;\">\n <p style=\"margin: 0 0 20px 0; font-size: 16px; color: #333333; line-height: 1.6;\">\n Hi <strong>{{ $json.firstName || 'there' }}</strong>,\n </p>\n <p style=\"margin: 0 0 20px 0; font-size: 16px; color: #555555; line-height: 1.6;\">\n Hope everything's going well! We noticed it's been a while since we last connected.\n </p>\n <p style=\"margin: 0 0 20px 0; font-size: 16px; color: #555555; line-height: 1.6;\">\n Is there anything we can help you with? We're always here to support you.\n </p>\n <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"margin: 30px 0;\">\n <tr>\n <td align=\"center\" style=\"border-radius: 4px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\">\n <a href=\"mailto:support@yourcompany.com\" style=\"display: inline-block; padding: 14px 32px; color: #ffffff; text-decoration: none; font-size: 16px; font-weight: 600;\">Get in Touch</a>\n </td>\n </tr>\n </table>\n <p style=\"margin: 0; font-size: 16px; color: #555555; line-height: 1.6;\">\n Looking forward to hearing from you!\n </p>\n <p style=\"margin: 20px 0 0 0; font-size: 16px; color: #555555; line-height: 1.6;\">\n Best regards,<br>\n <strong>Your Team</strong>\n </p>\n </td>\n </tr>\n <tr>\n <td style=\"background-color: #f8f9fa; padding: 20px 30px; text-align: center; border-top: 1px solid #e9ecef;\">\n <p style=\"margin: 0; font-size: 14px; color: #6c757d;\">\n © 2025 Your Company. All rights reserved.\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>",
"options": {},
"subject": "Just Checking In!"
},
"credentials": {
"gmailOAuth2": {
"id": "70f5n8rPahCANHs7",
"name": "jyothi"
}
},
"typeVersion": 2.1
},
{
"id": "22c49b1c-b43a-4a34-99c0-0e93e2f3df7a",
"name": "在 Google Sheets 中记录非活跃客户",
"type": "n8n-nodes-base.googleSheets",
"position": [
880,
240
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "contactName",
"type": "string",
"display": true,
"required": false,
"displayName": "contactName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "firstName",
"type": "string",
"display": true,
"required": false,
"displayName": "firstName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "lastName",
"type": "string",
"display": true,
"required": false,
"displayName": "lastName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyName",
"type": "string",
"display": true,
"required": false,
"displayName": "companyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone",
"type": "string",
"display": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "address1",
"type": "string",
"display": true,
"required": false,
"displayName": "address1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "dateUpdated",
"type": "string",
"display": true,
"required": false,
"displayName": "dateUpdated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "dateAdded",
"type": "string",
"display": true,
"required": false,
"displayName": "dateAdded",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "id",
"type": "string",
"display": true,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "lastContactDate",
"type": "string",
"display": true,
"required": false,
"displayName": "lastContactDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "needsAttention",
"type": "string",
"display": true,
"required": false,
"displayName": "needsAttention",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tags",
"type": "string",
"display": true,
"required": false,
"displayName": "tags",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"id"
]
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "Sheet1",
"cachedResultName": "Client Engagement"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultName": "Client Engagement Tracking"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "sOplQNr4zvwQul4A",
"name": "jyothi"
}
},
"typeVersion": 4
},
{
"id": "a1ba79ab-323f-4710-bfce-22ec818e568f",
"name": "格式化 Slack 消息",
"type": "n8n-nodes-base.code",
"position": [
1104,
240
],
"parameters": {
"jsCode": "const clients = $input.all().map(item => {\n const data = item.json;\n const fullName = data.lastName ? `${data.firstName} ${data.lastName}` : data.firstName || data.contactName;\n const lastContact = new Date(data.lastContactDate);\n const today = new Date();\n const daysSinceContact = Math.floor((today - lastContact) / (1000 * 60 * 60 * 24));\n return {\n name: fullName,\n email: data.email || 'No email',\n company: data.companyName || 'No company',\n phone: data.phone || 'No phone',\n daysSinceContact: daysSinceContact\n };\n});\n\nconst clientList = clients.map(c => `• ${c.name} (${c.email}) - ${c.daysSinceContact} days since last contact`).join('\\n');\n\nreturn {\n json: {\n count: clients.length,\n clientList: clientList,\n clients: clients\n }\n};"
},
"typeVersion": 2
},
{
"id": "7d64a0f4-6c39-4ce1-bd23-ca1d4706effe",
"name": "向客户经理发送 Slack 通知",
"type": "n8n-nodes-base.slack",
"position": [
1328,
240
],
"webhookId": "f89596e6-8d25-44aa-95b1-9e2ae926bb83",
"parameters": {
"text": "=🚨 *Weekly Client Engagement Pulse*\n\n*{{ $json.count }}* clients need attention (no contact in 14+ days):\n\n{{ $json.clientList }}\n\nPlease review and follow up accordingly.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "client-engagement"
},
"otherOptions": {
"mrkdwn": true
}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.1
},
{
"id": "13d74e9a-9687-4d20-bbf4-e6df8d3f2744",
"name": "错误触发器",
"type": "n8n-nodes-base.errorTrigger",
"position": [
-240,
464
],
"parameters": {},
"typeVersion": 1
},
{
"id": "26fe07d2-e839-406c-b2b7-cf85dde3a998",
"name": "发送错误警报到 Slack",
"type": "n8n-nodes-base.slack",
"position": [
-16,
464
],
"webhookId": "02437799-8c69-43ea-8d54-81a16c4349e8",
"parameters": {
"text": "=❌ *Workflow Error: Weekly Client Engagement Pulse*\n\n*Node:* {{ $json.node.name }}\n*Error:* {{ $json.error.message }}\n*Time:* {{ $now.format('yyyy-MM-dd HH:mm:ss') }}\n\nPlease investigate immediately.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "errors"
},
"otherOptions": {}
},
"typeVersion": 2.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "53e0ed29-a751-4a7e-a92a-5414ebac3321",
"connections": {
"Error Trigger": {
"main": [
[
{
"node": "Send Error Alert to Slack",
"type": "main",
"index": 0
}
]
]
},
"IF: Needs Attention": {
"main": [
[
{
"node": "Send Re-engagement Email",
"type": "main",
"index": 0
},
{
"node": "Log Inactive Client in Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Split Clients Array": {
"main": [
[
{
"node": "IF: Needs Attention",
"type": "main",
"index": 0
}
]
]
},
"Format Slack Message": {
"main": [
[
{
"node": "Send Slack Notification to Account Manager",
"type": "main",
"index": 0
}
]
]
},
"Fetch HighLevel Contacts": {
"main": [
[
{
"node": "Filter Inactive Contacts (14+ days)",
"type": "main",
"index": 0
}
]
]
},
"Trigger: Weekly Scheduler": {
"main": [
[
{
"node": "Fetch HighLevel Contacts",
"type": "main",
"index": 0
}
]
]
},
"Filter Inactive Contacts (14+ days)": {
"main": [
[
{
"node": "Split Clients Array",
"type": "main",
"index": 0
}
]
]
},
"Log Inactive Client in Google Sheets": {
"main": [
[
{
"node": "Format Slack Message",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
GoHighLevel管道速度跟踪器和自动化停滞交易提醒
使用GoHighLevel、Gmail和Slack分析管道速度并提醒停滞交易
If
Code
Gmail
+5
25 节点Rahul Joshi
内容创作
使用 Google Drive、Gmail 和 Slack 的 GoHighLevel 客户入职流程
使用Google Drive、Gmail、Calendar和Slack自动化GoHighLevel客户入职
If
Code
Gmail
+6
23 节点Rahul Joshi
内容创作
使用 GoHighLevel、Gmail 和 Notion 自动化 NPS 调查收集与响应处理
使用GoHighLevel、Gmail和Notion自动化NPS调查收集与响应处理
If
Code
Gmail
+5
27 节点Rahul Joshi
内容创作
客户入职帮助请求(Typeform 到 Gmail 和 Sheets)
客户入职帮助请求(Typeform 到 Gmail 和 Sheets)
If
Code
Gmail
+10
28 节点Rahul Joshi
内容创作
Stripe 税务摘要到 Google Sheets 并附带 Slack 提醒
从 Stripe 生成税务摘要,存储到 Google Sheets,并发送 Slack 提醒
If
Set
Code
+5
17 节点Rahul Joshi
内容创作
监控Zendesk流失风险信号并在Slack中通知CS团队
监控Zendesk流失风险信号,记录到表格,并在Slack中通知团队
If
Code
Slack
+4
12 节点Rahul Joshi
内容创作
工作流信息
难度等级
高级
节点数量23
分类2
节点类型10
作者
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
外部链接
在 n8n.io 查看 →
分享此工作流