GSheets CRM
高级
这是一个CRM, Multimodal AI领域的自动化工作流,包含 24 个节点。主要使用 If, Set, Code, Gmail, Webhook 等节点。 使用Google表格邮件通知和时间跟踪的自动化潜在客户到客户管道
前置要求
- •Google 账号和 Gmail API 凭证
- •HTTP Webhook 端点(n8n 会自动生成)
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "sbTxG7FVDyFq0sLR",
"meta": {
"instanceId": "{{INSTANCE_ID}}",
"templateCredsSetupCompleted": true
},
"name": "GSheets CRM",
"tags": [],
"nodes": [
{
"id": "c0760f3c-0feb-43bb-9b52-cc9307e0b98f",
"name": "Webhook:潜在客户阶段已更改",
"type": "n8n-nodes-base.webhook",
"notes": "Receives JSON when a lead's Stage (Leads!E) changes.\nExpected body keys:\n- name (Leads!A)\n- email (Leads!C)\n- source_id (for mapping 1=Instagram,2=Facebook) OR source_text\n- stage (new stage text)\n- previous_stage (optional)",
"position": [
-896,
-80
],
"webhookId": "{{WEBHOOK_ID_LEAD_STAGE_CHANGED}}",
"parameters": {
"path": "lead-stage-changed",
"options": {
"responseData": "OK"
},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "a91971ec-9414-4d0d-98d9-273761071c30",
"name": "准备邮件字段",
"type": "n8n-nodes-base.set",
"notes": "Derives firstName and sourcePlatform for the email body.",
"position": [
-672,
-80
],
"parameters": {
"fields": {
"values": [
{
"name": "firstName",
"stringValue": "=={{ $json.body.name ? $json.body.name.trim().split(' ')[0] : 'there' }}"
},
{
"name": "sourcePlatform ",
"stringValue": "={{ $json.body.source_text || 'Unknown' }}"
},
{
"name": "stage",
"stringValue": "={{ $json.body.stage }}"
},
{
"name": "previousStage",
"stringValue": "={{ $json.body.previous_stage || '' }}"
}
]
},
"options": {
"includeBinary": false
}
},
"typeVersion": 3
},
{
"id": "00ef748d-22e8-4436-a0e7-7ef1ed9017fe",
"name": "Gmail:发送阶段变更邮件",
"type": "n8n-nodes-base.gmail",
"notes": "Sends the templated email on any Stage change.",
"position": [
-224,
-176
],
"webhookId": "{{GMAIL_NODE_WEBHOOK_ID_STAGE_CHANGE}}",
"parameters": {
"sendTo": "={{ $('Prepare Email Fields').item.json.body.email }}",
"message": "=Hi {{ $('Prepare Email Fields').item.json.body.name }},<br><br>Thanks for the call earlier & happy I was able to meet you. Just letting you know that I'll work on a proposal immediately and have something over to you in the next 2-3 hours.<br><br>Stay tuned & let me know if you have any questions.<br><br>Thanks,<br>{{SENDER_NAME}}",
"options": {},
"subject": "Next Steps"
},
"credentials": {
"gmailOAuth2": {
"id": "{{GMAIL_CREDENTIAL_ID}}",
"name": "{{GMAIL_CREDENTIAL_NAME}}"
}
},
"typeVersion": 2
},
{
"id": "baa49e6a-3c2e-4c42-ae96-9b2f0e5a0db3",
"name": "IF:阶段 == 已赢得",
"type": "n8n-nodes-base.if",
"notes": "Branch for when the lead has been marked Won.",
"position": [
-224,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5feb2d51-b3ba-4b5e-9064-4735e10d5a38",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.stage }}",
"rightValue": "Won"
}
]
}
},
"typeVersion": 2
},
{
"id": "855b796a-8588-4f43-8b39-48406c37c67d",
"name": "格式化开始时间戳",
"type": "n8n-nodes-base.dateTime",
"notes": "Produces Start Date & Time as: dd/mm/yyyy at HH:MM",
"position": [
0,
16
],
"parameters": {
"value": "={{ $now }}",
"custom": true,
"options": {},
"toFormat": "DD/MM/YYYY 'at' HH:mm"
},
"typeVersion": 1
},
{
"id": "25f0b4f3-0305-4ce6-83f8-e37fc90d51ca",
"name": "GS:客户追加(赢得时)",
"type": "n8n-nodes-base.googleSheets",
"notes": "Appends the new client with Project Status=In Progress and Start Date & Time.",
"position": [
224,
16
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.body.name }}",
"Client Email": "={{ $json.body.email }}",
"Start Date & Time": "={{ $json.data }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Client Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Client Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Project Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tenure",
"type": "string",
"display": true,
"required": false,
"displayName": "Tenure",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Start Date & Time",
"type": "string",
"display": true,
"required": false,
"displayName": "Start Date & Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "End Date & Time",
"type": "string",
"display": true,
"required": false,
"displayName": "End Date & Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time to Deliver",
"type": "string",
"display": true,
"required": false,
"displayName": "Time to Deliver",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true,
"cellFormat": "USER_ENTERED"
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "{{CLIENTS_GID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit#gid={{CLIENTS_GID}}",
"cachedResultName": "Clients"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "{{GOOGLE_SHEETS_DOC_ID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit",
"cachedResultName": "{{SHEET_NAME}}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "{{GSHEETS_CREDENTIAL_ID}}",
"name": "{{GSHEETS_CREDENTIAL_NAME}}"
}
},
"typeVersion": 4
},
{
"id": "100c9018-23b7-4724-93ef-373566ae9c42",
"name": "Webhook:潜在客户是否合格?",
"type": "n8n-nodes-base.webhook",
"notes": "Receives JSON when Leads!H (Qualified?) is checked.\nExpected body keys:\n- name (A)\n- email (C)\n- qualified (boolean or 'TRUE'/1)",
"position": [
-896,
-624
],
"webhookId": "{{WEBHOOK_ID_LEAD_QUALIFIED}}",
"parameters": {
"path": "lead-qualified",
"options": {
"responseData": "OK"
},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "e5fe57ce-c457-4f03-9c96-7ac385b2a42f",
"name": "IF:是否合格",
"type": "n8n-nodes-base.if",
"position": [
-672,
-624
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "285b4bc9-5a4b-4f6b-bd55-eb54d6a6fcc1",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.body.qualified }}",
"rightValue": "=\"true\""
}
]
}
},
"typeVersion": 2
},
{
"id": "04851d87-b2c6-4383-9687-382f3bee1e7b",
"name": "Gmail:发送 Cal.com 邀请",
"type": "n8n-nodes-base.gmail",
"notes": "Sends the booking link when Qualified? is checked.",
"position": [
-448,
-624
],
"webhookId": "{{GMAIL_NODE_WEBHOOK_ID_CAL_INVITE}}",
"parameters": {
"sendTo": "={{ $json.body.email }}",
"message": "=Hi {{$json.body.name ? $json.body.name.split(' ')[0] : 'there'}},<br><br>Congrats — you’re qualified and we are super excited to know more from you! Please book your discovery call here: <a href=\"{{CAL_COM_BOOKING_URL}}\" target=\"_blank\">Schedule on Cal.com</a>.<br><br>Thanks,<br>{{SENDER_NAME}}",
"options": {},
"subject": "Book Your Discovery Call"
},
"credentials": {
"gmailOAuth2": {
"id": "{{GMAIL_CREDENTIAL_ID}}",
"name": "{{GMAIL_CREDENTIAL_NAME}}"
}
},
"typeVersion": 2
},
{
"id": "99f6f896-ac20-454b-a480-88a71aabe0b0",
"name": "GS:潜在客户更新阶段为会议已预订",
"type": "n8n-nodes-base.googleSheets",
"notes": "Uses Email (Column C) as key to update Stage (E) to 'Meeting Booked'.",
"position": [
-672,
-368
],
"parameters": {
"columns": {
"value": {
"Stage": "Meeting Booked",
"Client Email": "={{ $json.body.payload.attendees[0].email }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Updated",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Date Updated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Client Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Lead Source",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Lead Source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Stage",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Stage",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Asignee",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Asignee",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Discovery Call URL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Discovery Call URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Qualitfied?",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Qualitfied?",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Client Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"cellFormat": "USER_ENTERED"
},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid={{LEADS_GID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit#gid={{LEADS_GID}}",
"cachedResultName": "Leads"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "{{GOOGLE_SHEETS_DOC_ID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit",
"cachedResultName": "{{SHEET_NAME}}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "{{GSHEETS_CREDENTIAL_ID}}",
"name": "{{GSHEETS_CREDENTIAL_NAME}}"
}
},
"typeVersion": 4
},
{
"id": "b2acf148-b6bc-49d3-8e76-fe890459c1dc",
"name": "Webhook:客户状态已更改",
"type": "n8n-nodes-base.webhook",
"notes": "Receives JSON when Clients!D (Project Status) changes.\nExpected body keys:\n- email (Clients!C)\n- project_status (Clients!D new value)",
"position": [
-880,
304
],
"webhookId": "{{WEBHOOK_ID_CLIENT_STATUS_CHANGED}}",
"parameters": {
"path": "client-status-changed",
"options": {
"responseData": "OK"
},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "01223e18-22c3-4622-ba66-0425aad4bcd6",
"name": "IF:已交付?",
"type": "n8n-nodes-base.if",
"position": [
-656,
304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8be5b372-0114-4595-ab9a-d7903d63a716",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.project_status }}",
"rightValue": "Delivered"
}
]
}
},
"typeVersion": 2
},
{
"id": "438ffb35-490f-49d1-9031-c32447b59992",
"name": "GS:按邮箱查找客户",
"type": "n8n-nodes-base.googleSheets",
"notes": "Fetches the row to read Start Date & Time (F) for duration calc.",
"position": [
-432,
304
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.body.email }}",
"lookupColumn": "Client Email"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "{{CLIENTS_GID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit#gid={{CLIENTS_GID}}",
"cachedResultName": "Clients"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "{{GOOGLE_SHEETS_DOC_ID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit",
"cachedResultName": "{{SHEET_NAME}}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "{{GSHEETS_CREDENTIAL_ID}}",
"name": "{{GSHEETS_CREDENTIAL_NAME}}"
}
},
"typeVersion": 4
},
{
"id": "1579d825-5a67-4e52-b7d5-f4dc493cf790",
"name": "格式化结束时间戳",
"type": "n8n-nodes-base.dateTime",
"notes": "End Date & Time formatted as dd/mm/yyyy at HH:MM",
"position": [
-208,
304
],
"parameters": {
"value": "={{ $now }}",
"custom": true,
"options": {},
"toFormat": "DD/MM/YYYY 'at' HH:mm"
},
"typeVersion": 1
},
{
"id": "1aec66f5-ce82-4375-9202-a3ba2a5ad118",
"name": "GS:客户更新结束时间和持续时间",
"type": "n8n-nodes-base.googleSheets",
"notes": "Sets End Date & Time (G) and Time To Deliver (H).",
"position": [
240,
304
],
"parameters": {
"columns": {
"value": {
"Client Email": "={{ $json[\"Client Email\"] }}",
"End Date & Time": "={{ $json.endStr }}",
"Time to Deliver": "={{ $json.duration }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Type",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Client Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Client Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Client Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Project Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tenure",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Tenure",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Start Date & Time",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Start Date & Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "End Date & Time",
"type": "string",
"display": true,
"required": false,
"displayName": "End Date & Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time to Deliver",
"type": "string",
"display": true,
"required": false,
"displayName": "Time to Deliver",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Client Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"cellFormat": "USER_ENTERED"
},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "{{CLIENTS_GID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit#gid={{CLIENTS_GID}}",
"cachedResultName": "Clients"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "{{GOOGLE_SHEETS_DOC_ID}}",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEETS_DOC_ID}}/edit",
"cachedResultName": "{{SHEET_NAME}}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "{{GSHEETS_CREDENTIAL_ID}}",
"name": "{{GSHEETS_CREDENTIAL_NAME}}"
}
},
"typeVersion": 4
},
{
"id": "1f2a3e16-70c7-402f-ace7-782f9de34fd3",
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
16,
304
],
"parameters": {
"jsCode": "// Compute delivery duration from \"Start Date & Time\" (F) and formatted \"End\" from previous node\n// Expects this node to run AFTER \"Format End Timestamp\" and AFTER the Clients row lookup\n\nconst items = $input.all();\n\n// Helper: parse \"dd/mm/yyyy at HH:MM\"\nfunction parseDT(s) {\n if (!s) return null;\n const m = String(s).match(/(\\d{2})\\/(\\d{2})\\/(\\d{4}).*?(\\d{2}):(\\d{2})/);\n if (!m) return null;\n const [, d, M, y, h, min] = m;\n return new Date(Number(y), Number(M) - 1, Number(d), Number(h), Number(min), 0);\n}\n\n// Get the formatted end timestamp from the Date & Time node\nconst endStrFromNode = $node[\"Format End Timestamp\"]?.json?.data || \"\";\n\nfor (const item of items) {\n const row = item.json || {};\n\n // Try several keys for Start column F (depending on how Google Sheets node labeled it)\n const startStr =\n row[\"Start Date & Time\"] ??\n row[\"F\"] ??\n row[\"Start\"] ??\n \"\";\n\n // Prefer the value from Date & Time node; fall back to any end value already present\n const endStr = endStrFromNode || row[\"End Date & Time\"] || \"\";\n\n const start = parseDT(startStr);\n const end = parseDT(endStr);\n\n let duration = \"N/A\";\n if (start && end) {\n const ms = end - start;\n const days = Math.floor(ms / 86_400_000);\n const hrs = Math.floor((ms % 86_400_000) / 3_600_000);\n const mins = Math.floor((ms % 3_600_000) / 60_000);\n duration = `${days}d ${hrs}h ${mins}m`;\n }\n\n // Attach results to the item\n item.json.endStr = endStr;\n item.json.duration = duration;\n}\n\nreturn items;\n"
},
"typeVersion": 2
},
{
"id": "12c036dc-4e13-4bfd-95d2-48da0e8337b6",
"name": "条件判断",
"type": "n8n-nodes-base.if",
"position": [
-448,
-80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "37fbb2ef-5861-4fc8-ab06-71fe4364be63",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.stage }}",
"rightValue": "Awaiting Proposal"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ec815439-bfb1-4edb-8a70-9db1c167a868",
"name": "Webhook:会议已预订",
"type": "n8n-nodes-base.webhook",
"position": [
-896,
-368
],
"webhookId": "{{WEBHOOK_ID_MEETING_BOOKED}}",
"parameters": {
"path": "cal-booked",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "26784981-b9f6-44ca-8329-62072dd4fd0f",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
-848
],
"parameters": {
"width": 1968,
"height": 1408,
"content": "# Google Sheets 自动化 CRM"
},
"typeVersion": 1
},
{
"id": "815c2626-dd90-4976-92d7-ce93bad40e1e",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2080,
-848
],
"parameters": {
"color": 6,
"width": 816,
"height": 4128,
"content": "# 所需的 App Script(将此用于您的 Google 工作表 App Script)"
},
"typeVersion": 1
},
{
"id": "7b60fbcd-c39a-4313-967a-e7b8310286c1",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-688
],
"parameters": {
"color": 4,
"width": 848,
"height": 240,
"content": "# 潜在客户资格认定"
},
"typeVersion": 1
},
{
"id": "bff994fa-80d2-4ccd-8964-72fc8a694cc3",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-448
],
"parameters": {
"color": 4,
"width": 848,
"height": 256,
"content": "# 将阶段更改为会议已预订"
},
"typeVersion": 1
},
{
"id": "ea32e27d-3fc6-4bed-a61d-57ec7aa24fc0",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-192
],
"parameters": {
"color": 4,
"width": 1440,
"height": 384,
"content": "# 提案跟进 / 客户赢得流程"
},
"typeVersion": 1
},
{
"id": "5eb61a5b-b07c-42a7-9ff4-d178985e04b2",
"name": "便利贴5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
192
],
"parameters": {
"color": 4,
"width": 1440,
"height": 304,
"content": "# 项目完成持续时间"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "{{ERROR_WORKFLOW_ID}}",
"executionOrder": "v1"
},
"versionId": "fbf5f5f3-e31e-4f4d-a480-f8c382bdfe04",
"connections": {
"If": {
"main": [
[
{
"node": "Gmail: Send Stage-Change Email",
"type": "main",
"index": 0
}
],
[
{
"node": "IF: Stage == Won",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "GS: Clients Update End & Duration",
"type": "main",
"index": 0
}
]
]
},
"IF: Delivered?": {
"main": [
[
{
"node": "GS: Clients Lookup by Email",
"type": "main",
"index": 0
}
]
]
},
"IF: Is Qualified": {
"main": [
[
{
"node": "Gmail: Send Cal.com Invite",
"type": "main",
"index": 0
}
]
]
},
"IF: Stage == Won": {
"main": [
[
{
"node": "Format Start Timestamp",
"type": "main",
"index": 0
}
],
[]
]
},
"Format End Timestamp": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Prepare Email Fields": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Format Start Timestamp": {
"main": [
[
{
"node": "GS: Clients Append (On Won)",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Meeting Booked": {
"main": [
[
{
"node": "GS: Leads Update Stage to Meeting Booked",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Lead Qualified?": {
"main": [
[
{
"node": "IF: Is Qualified",
"type": "main",
"index": 0
}
]
]
},
"GS: Clients Lookup by Email": {
"main": [
[
{
"node": "Format End Timestamp",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Lead Stage Changed": {
"main": [
[
{
"node": "Prepare Email Fields",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Client Status Changed": {
"main": [
[
{
"node": "IF: Delivered?",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 客户关系管理, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
竞争对手内容差距分析器:自动化网站主题映射
使用Gemini AI、Apify和Google Sheets分析竞争对手内容差距
If
Set
Code
+10
30 节点Mychel Garzon
杂项
来自多个招聘网站的求职自动化
使用 5 个招聘平台和 AI 简历生成器自动化求职与申请
If
Set
Code
+14
34 节点Gerald Denor
个人效率
09 - 潜在客户档案增强器
自动化潜在客户信息丰富与个性化外联:HubSpot、Phantombuster和GPT
If
Set
Code
+11
30 节点Avkash Kakdiya
客户培育
GRC - 安全问卷自动填写
自动化安全问卷回复:GPT-4o和Google Sheets
If
Set
Code
+7
11 节点Adnan Tariq
安全运维
自动化潜在客户捕获、AI资质鉴定及ElevenLabs个性化语音跟进
基于 OpenAI 和 ElevenLabs 的自动化线索捕获与 AI 个性化语音跟进
If
Set
Code
+10
22 节点Marth
客户培育
防欺诈潜在客户捕获与培育系统
通过AI评分、表格跟踪和多渠道提醒捕获和培育防欺诈潜在客户
If
Set
Code
+11
28 节点Jitesh Dugar
内容创作
工作流信息
难度等级
高级
节点数量24
分类2
节点类型8
作者
Ziad Adel
@ziadadelAI Automation Growth Partner with 5 years of experience in the tech and hyper growing startups industry
外部链接
在 n8n.io 查看 →
分享此工作流