使用 Google Drive、Gmail 和 Slack 的 GoHighLevel 客户入职流程
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 23 个节点。主要使用 If, Code, Gmail, Slack, Webhook 等节点。 使用Google Drive、Gmail、Calendar和Slack自动化GoHighLevel客户入职
前置要求
- •Google 账号和 Gmail API 凭证
- •Slack Bot Token 或 Webhook URL
- •HTTP Webhook 端点(n8n 会自动生成)
- •Google Drive API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "VaGKdfnWJI4gOfeu",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "使用 Google Drive、Gmail 和 Slack 的 GoHighLevel 客户入职流程",
"tags": [],
"nodes": [
{
"id": "0147f828-0a2e-4476-bff0-bde1962451d3",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"notes": "Workflow Overview",
"position": [
-1968,
-64
],
"parameters": {
"width": 420,
"height": 650,
"content": "## 🚀 GoHighLevel 自动化客户入职"
},
"typeVersion": 1
},
{
"id": "699ae091-bf52-4dd9-aaef-93d944c436c0",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"notes": "Webhook Setup Instructions",
"position": [
-1456,
368
],
"parameters": {
"width": 300,
"height": 380,
"content": "## ⚙️ 步骤 1:配置 GHL Webhook"
},
"typeVersion": 1
},
{
"id": "4a236b6d-0daf-4205-a3cc-ad3a47af43c9",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"notes": "GHL API Configuration",
"position": [
-1264,
-320
],
"parameters": {
"width": 300,
"height": 464,
"content": "## 🔐 步骤 2:连接 GHL API"
},
"typeVersion": 1
},
{
"id": "257c94f7-3f60-44a2-86f9-059bf4bc3be3",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"notes": "Validation Logic",
"position": [
-992,
368
],
"parameters": {
"width": 280,
"height": 408,
"content": "## ✅ 步骤 3:数据验证"
},
"typeVersion": 1
},
{
"id": "dcc10ae5-cd60-41a8-8d4d-c358503b547e",
"name": "便签说明4",
"type": "n8n-nodes-base.stickyNote",
"notes": "Data Formatting",
"position": [
-768,
-416
],
"parameters": {
"width": 260,
"height": 508,
"content": "## 📊 步骤 4:格式化客户数据"
},
"typeVersion": 1
},
{
"id": "ca90f717-217c-4a22-beb0-f24bc7c652a3",
"name": "便签说明5",
"type": "n8n-nodes-base.stickyNote",
"notes": "Google Drive Configuration",
"position": [
-464,
-560
],
"parameters": {
"width": 300,
"height": 540,
"content": "## 📁 步骤 5:Google Drive 设置"
},
"typeVersion": 1
},
{
"id": "149c1e02-ec1b-4b6e-bd18-1227ed34694a",
"name": "便签 6",
"type": "n8n-nodes-base.stickyNote",
"notes": "Template Setup",
"position": [
-224,
240
],
"parameters": {
"width": 320,
"height": 540,
"content": "## 📄 步骤 6:模板配置"
},
"typeVersion": 1
},
{
"id": "9da21ac9-e091-4bba-b929-657598be858e",
"name": "便签 7",
"type": "n8n-nodes-base.stickyNote",
"notes": "Slack Notifications",
"position": [
-80,
-656
],
"parameters": {
"width": 300,
"height": 636,
"content": "## 💬 步骤 7:Slack 集成"
},
"typeVersion": 1
},
{
"id": "7946e499-ceb4-47a2-ab39-3538274c706d",
"name": "## 为什么选择 4o 模型?👆",
"type": "n8n-nodes-base.stickyNote",
"notes": "Calendar & Email Setup",
"position": [
400,
-432
],
"parameters": {
"width": 340,
"height": 592,
"content": "## 📅 步骤 8:日历和邮箱设置"
},
"typeVersion": 1
},
{
"id": "814625bd-70bb-4ca0-b811-f8b1bbbbe6f9",
"name": "便签 9",
"type": "n8n-nodes-base.stickyNote",
"notes": "Task Creation Setup",
"position": [
288,
288
],
"parameters": {
"width": 300,
"height": 380,
"content": "## ✅ 步骤 9:GHL 任务创建"
},
"typeVersion": 1
},
{
"id": "da68a8dd-9e43-41e2-ab8e-2e542204821a",
"name": "便签10",
"type": "n8n-nodes-base.stickyNote",
"notes": "Error Handling",
"position": [
-624,
464
],
"parameters": {
"width": 280,
"height": 464,
"content": "## 🚨 错误处理"
},
"typeVersion": 1
},
{
"id": "e9b7c39a-b985-4281-a203-a9d01ce2283b",
"name": "GHL Webhook - 交易成交",
"type": "n8n-nodes-base.webhook",
"notes": "Webhook trigger for GHL when deal moves to Won or Completed. Configure in GHL: Automation > Workflows > Add Webhook",
"position": [
-1344,
208
],
"webhookId": "ghl-deal-webhook",
"parameters": {
"path": "ghl-deal-won",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 1
},
{
"id": "7ff6623b-85cc-40da-af0f-7040978f002b",
"name": "复制合同模板",
"type": "n8n-nodes-base.googleDrive",
"notes": "Duplicates contract template into client folder",
"position": [
-192,
16
],
"parameters": {
"name": "={{ $('Format Client Data').item.json.contractName }}",
"fileId": {
"__rl": true,
"mode": "id",
"value": "YOUR_CONTRACT_TEMPLATE_FILE_ID_HERE"
},
"options": {},
"operation": "copy"
},
"typeVersion": 3
},
{
"id": "d042203f-4455-4247-825e-8a8d1410de3a",
"name": "复制启动会议模板",
"type": "n8n-nodes-base.googleDrive",
"notes": "Duplicates kickoff deck template into client folder",
"position": [
32,
208
],
"parameters": {
"name": "={{ $('Format Client Data').item.json.contractName }}",
"fileId": {
"__rl": true,
"mode": "id",
"value": "YOUR_KICKOFF_DECK_TEMPLATE_FILE_ID_HERE"
},
"options": {},
"operation": "copy"
},
"typeVersion": 3
},
{
"id": "cf042878-b5e2-495d-9702-2b79807ff13b",
"name": "发送 Slack 欢迎消息",
"type": "n8n-nodes-base.slack",
"notes": "Posts welcome message to team Slack channel",
"position": [
32,
16
],
"webhookId": "d01feec4-3082-42cf-8aa7-9958ce39c6fc",
"parameters": {
"text": "=🎉 *New Client Onboarded!*\n\n*Client:* {{ $('Format Client Data').item.json.clientName }} \n*ClientPhone:*{{ $('Format Client Data').item.json.clientPhone }}\n*Deal Value:* {{ $('Format Client Data').item.json.dealValue }} \n*Email:* {{ $('Format Client Data').item.json.clientEmail }}\n\n📁 *Client Folder:* https://drive.google.com/drive/folders/{{ $node['Create Client File'].json.id }}\n\n✅ Onboarding task created and welcome email sent!",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID_HERE",
"cachedResultName": "Select your channel"
},
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "d539c146-6b10-4799-bc91-f41949bbee23",
"name": "发送欢迎邮件",
"type": "n8n-nodes-base.gmail",
"notes": "Sends branded welcome email with onboarding details",
"position": [
480,
112
],
"webhookId": "e12acc81-eeb7-47be-8982-74823670d163",
"parameters": {
"sendTo": "={{ $('Format Client Data').item.json.clientEmail }}",
"message": "=<html>\n<body style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333;\">\n <div style=\"max-width: 600px; margin: 0 auto; padding: 20px;\">\n <h2 style=\"color: #2563eb;\">Welcome Aboard, {{ $('Format Client Data').item.json.clientName }}! 🎉</h2>\n \n <p>We're thrilled to have you as a client! Your success is our top priority, and we're committed to delivering exceptional results.</p>\n \n <h3 style=\"color: #2563eb;\">Next Steps:</h3>\n <ol>\n <li><strong>Review Your Welcome Kit:</strong> Attached is your comprehensive onboarding guide</li>\n <li><strong>Schedule Your Kickoff Call:</strong> <a href=\"{{ $json.htmlLink }}\">Click here to book your onboarding session</a></li>\n <li><strong>Access Your Documents:</strong> <a href=\"https://drive.google.com/drive/folders/{{ $node['Create Client File'].json.id }}\">View your client folder</a></li>\n </ol>\n \n <p>Your dedicated account manager will reach out within 24 hours to answer any questions.</p>\n \n <p style=\"margin-top: 30px;\">Looking forward to an amazing partnership!</p>\n \n <p style=\"font-weight: bold;\">The [Your Company Name] Team</p>\n </div>\n</body>\n</html>",
"options": {},
"subject": "=Welcome to [Your Company Name] - Let's Get Started! 🚀"
},
"typeVersion": 2.1
},
{
"id": "600f53fb-8dbb-4ec2-81ad-19cf394191f9",
"name": "验证客户数据",
"type": "n8n-nodes-base.if",
"notes": "Ensures required fields are present before processing",
"position": [
-864,
208
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.id }}",
"operation": "isNotEmpty"
},
{
"value1": "={{ $json.name }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "2502a0c1-8d87-4296-8bea-ba63da35207f",
"name": "格式化客户数据",
"type": "n8n-nodes-base.code",
"notes": "Standardizes data format for use across workflow",
"position": [
-640,
112
],
"parameters": {
"jsCode": "// Extract and format client data from GHL opportunity\nconst opportunity = $input.item.json;\nconst contact = opportunity.contact || {};\nconst relations = opportunity.relations || [];\n\n// Get primary contact relation data as fallback\nconst primaryRelation = relations.find(r => r.primary === true) || {};\n\n// Extract client information with fallbacks\nconst clientName = contact.name || primaryRelation.contactName || primaryRelation.fullName || 'Unknown Client';\nconst clientEmail = contact.email || primaryRelation.email || '';\nconst clientPhone = contact.phone || primaryRelation.phone || '';\nconst companyName = contact.companyName || primaryRelation.companyName || '';\n\n// Format date for folder name (YYYY-MM-DD)\nconst today = new Date().toISOString().split('T')[0];\n\n// Create safe folder name (remove special characters)\nconst safeFolderName = clientName.replace(/[^a-zA-Z0-9\\s-]/g, '').trim();\n\nreturn {\n // Core client info\n clientName: clientName,\n clientEmail: clientEmail,\n clientPhone: clientPhone,\n companyName: companyName,\n \n // Deal information\n dealId: opportunity.id || '',\n dealName: opportunity.name || clientName,\n dealValue: opportunity.monetaryValue || 0,\n dealStatus: opportunity.status || 'won',\n \n // Pipeline info\n pipelineId: opportunity.pipelineId || '',\n pipelineStageId: opportunity.pipelineStageId || '',\n \n // Contact & Location IDs\n contactId: opportunity.contactId || contact.id || '',\n locationId: opportunity.locationId || '',\n assignedTo: opportunity.assignedTo || '',\n \n // Folder naming for Google Drive\n folderName: `${safeFolderName}_${today}`,\n \n // Document naming templates\n contractName: `${safeFolderName} - Service Agreement`,\n kickoffDeckName: `${safeFolderName} - Onboarding Deck`,\n \n // Timestamps\n createdAt: opportunity.createdAt || '',\n updatedAt: opportunity.updatedAt || '',\n lastStageChangeAt: opportunity.lastStageChangeAt || '',\n timestamp: new Date().toISOString(),\n \n // Additional useful data\n tags: contact.tags || [],\n source: opportunity.source || 'manual',\n \n // Validation flags\n hasEmail: !!(clientEmail && clientEmail.length > 0),\n hasPhone: !!(clientPhone && clientPhone.length > 0),\n isValid: !!(clientName && clientName !== 'Unknown Client')\n};"
},
"typeVersion": 2
},
{
"id": "10fcd2a0-fe5c-4bc4-a6a0-605cb498675a",
"name": "错误通知",
"type": "n8n-nodes-base.slack",
"notes": "Sends alert if workflow fails",
"onError": "continueErrorOutput",
"position": [
-640,
304
],
"webhookId": "aa8fad44-5063-439a-81eb-277c2c522a7d",
"parameters": {
"text": "=⚠️ *Onboarding Workflow Error*\n\n*Error Node:* {{ $json.node }}\n*Error:* {{ $json.error }}\n\n*Action Required:* Manual intervention needed for this client onboarding.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_ERROR_CHANNEL_ID_HERE",
"cachedResultName": "Select error alerts channel"
},
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "fcc8a75a-86fb-40c5-8814-52819f9a715c",
"name": "安排启动会议",
"type": "n8n-nodes-base.googleCalendar",
"notes": "Creates calendar event for client kickoff meeting",
"position": [
256,
16
],
"parameters": {
"calendar": {
"__rl": true,
"mode": "list",
"value": "YOUR_CALENDAR_EMAIL_HERE",
"cachedResultName": "Select your calendar"
},
"additionalFields": {
"description": "={{ $json.message.blocks[0].elements[0].elements[2].text }}"
}
},
"typeVersion": 1.3
},
{
"id": "d92877d4-e694-4d7e-904b-0d025d2ecbf3",
"name": "从 GHL 获取已成交交易",
"type": "n8n-nodes-base.highLevel",
"notes": "Retrieves all opportunities marked as Won from GoHighLevel",
"position": [
-1088,
208
],
"parameters": {
"filters": {
"status": "won"
},
"resource": "opportunity",
"operation": "getAll",
"returnAll": true,
"requestOptions": {}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "a30a97a4-b427-4cb4-b9f1-a686f5b97338",
"name": "创建客户文件夹",
"type": "n8n-nodes-base.googleDrive",
"notes": "Creates client folder with format: ClientName_YYYY-MM-DD",
"position": [
-416,
112
],
"parameters": {
"name": "New File",
"content": "=CLIENT ONBOARDING INFORMATION\n\nClient Name: {{ $json.clientName }}\nCompany: {{ $json.companyName }}\nEmail: {{ $json.clientEmail }}\nPhone: {{ $json.clientPhone }}\n\nDEAL DETAILS\nDeal Name: {{ $json.dealName }}\nDeal Value: ${{ $json.dealValue }}\nDeal Status: {{ $json.dealStatus }}\nDeal ID: {{ $json.dealId }}\n\nCONTACT INFORMATION\nContact ID: {{ $json.contactId }}\nLocation ID: {{ $json.locationId }}\nAssigned To: {{ $json.assignedTo }}\n\nTIMESTAMPS\nCreated: {{ $json.createdAt }}\nLast Updated: {{ $json.updatedAt }}\nStage Changed: {{ $json.lastStageChangeAt }}\n\nTAGS\n{{ $json.tags.join(', ') }}\n\n---\nThis file was automatically generated on {{ $json.timestamp }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "YOUR_PARENT_FOLDER_ID_HERE",
"cachedResultName": "Select parent folder for client folders"
},
"operation": "createFromText"
},
"typeVersion": 3
},
{
"id": "1d0da858-081c-467f-9c44-8f560eb0a6c2",
"name": "创建 GHL 入职任务",
"type": "n8n-nodes-base.highLevel",
"notes": "Creates follow-up task in GHL for account manager",
"position": [
256,
208
],
"parameters": {
"title": "=Onboard {{ $('Format Client Data').item.json.clientName }}",
"dueDate": "={{ $now.plus(7, 'days').toISO() }}",
"resource": "task",
"contactId": "={{ $('Format Client Data').item.json.contactId }}",
"requestOptions": {},
"additionalFields": {}
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7382a7aa-a661-45b9-a09e-171d52e87296",
"connections": {
"Format Client Data": {
"main": [
[
{
"node": "Create Client Folder",
"type": "main",
"index": 0
}
]
]
},
"Send Slack Welcome": {
"main": [
[
{
"node": "Schedule Kickoff Call",
"type": "main",
"index": 0
}
]
]
},
"Create Client Folder": {
"main": [
[
{
"node": "Copy Contract Template",
"type": "main",
"index": 0
},
{
"node": "Copy Kickoff Deck Template",
"type": "main",
"index": 0
}
]
]
},
"Validate Client Data": {
"main": [
[
{
"node": "Format Client Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Error Notification",
"type": "main",
"index": 0
}
]
]
},
"Schedule Kickoff Call": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
},
"Copy Contract Template": {
"main": [
[
{
"node": "Send Slack Welcome",
"type": "main",
"index": 0
}
]
]
},
"GHL Webhook - Deal Won": {
"main": [
[
{
"node": "Fetch Won Deals from GHL",
"type": "main",
"index": 0
}
]
]
},
"Fetch Won Deals from GHL": {
"main": [
[
{
"node": "Validate Client Data",
"type": "main",
"index": 0
}
]
]
},
"Copy Kickoff Deck Template": {
"main": [
[
{
"node": "Create GHL Onboarding Task",
"type": "main",
"index": 0
}
]
]
},
"Create GHL Onboarding Task": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
GoHighLevel管道速度跟踪器和自动化停滞交易提醒
使用GoHighLevel、Gmail和Slack分析管道速度并提醒停滞交易
If
Code
Gmail
+5
25 节点Rahul Joshi
内容创作
使用GoHighLevel、Gmail、Slack和Sheets的每周客户互动自动化
每周客户再互动系统(GoHighLevel、Gmail、Sheets和Slack)
If
Code
Gmail
+7
23 节点Rahul Joshi
内容创作
使用 Azure OpenAI 和 Google Workspace 自动化 DEI 资格筛选
使用Azure GPT-4o、Google云端硬盘和表格自动进行DEI资格筛选
If
Code
Gmail
+9
19 节点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
内容创作
人员流失风险预警工作流(Azure OpenAI + n8n)
员工流失风险检测与HR提醒,使用Azure OpenAI GPT-4o-mini和Gmail
If
Code
Gmail
+7
16 节点Rahul Joshi
内容创作
工作流信息
难度等级
高级
节点数量23
分类2
节点类型9
作者
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 查看 →
分享此工作流