8
n8n 中文网amn8n.com

使用 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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量23
分类2
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Rahul Joshi

Rahul Joshi

@rahul08

Rahul 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 查看

分享此工作流