减少Calendly会议缺席率(模板)
高级
这是一个Lead Nurturing, AI Summarization领域的自动化工作流,包含 22 个节点。主要使用 If, Code, Wait, Twilio, EmailSend 等节点。 通过Gemini AI、邮件和WhatsApp提醒减少Calendly会议缺席
前置要求
- •Google Gemini API Key
使用的节点 (22)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "QpilLWi7ZJID0IK3",
"meta": {
"instanceId": "e0abec5d9b13345e424c0dbbc512271f89fb17de3b268697e13a797de2271404",
"templateCredsSetupCompleted": true
},
"name": "减少 Calendly 会议缺席率(模板)",
"tags": [],
"nodes": [
{
"id": "1fb2d001-2f04-4f5e-8f93-0c7668f246e0",
"name": "发送提醒邮件",
"type": "n8n-nodes-base.emailSend",
"position": [
1680,
-80
],
"webhookId": "e971be6e-d7e5-4146-b974-93aa5491c0ac",
"parameters": {
"text": "Hi {{$json[\"invitee_name\"]}},\\n\\nJust a quick reminder about our strategy call scheduled for {{$json[\"meeting_time\"]}}, {{$json[\"meeting_date\"]}} (EET).\\n\\nWe'll discuss how to scale smarter with AI and data-driven systems.\\n\\nJoin via: {{$json[\"meeting_link\"]}}\\n\\nTalk soon,\\n[HOST_NAME]",
"options": {},
"subject": "Reminder: Your AI Strategy Call {{ $json.type === '24h' ? 'Tomorrow' : 'in 1 hour' }}",
"toEmail": "={{ $('extract from email').item.json.output.invitee_email }}",
"fromEmail": "[HOST_EMAIL]"
},
"typeVersion": 2
},
{
"id": "4ca79811-a7eb-42af-b461-f4166824172b",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
96,
160
],
"parameters": {
"jsonSchemaExample": "{\n \"invitee_name\": \"string\",\n \"invitee_email\": \"string\",\n \"phone_number\": \"string\",\n \"meeting_date\": \"date\",\n \"meeting_time\": \"time\",\n \"meeting_link\": \"string\",\n \"meeting_goal\": \"string\",\n \"needs_more_info\": \"boolean\",\n \"additional_info\": \"string\"\n}\n"
},
"typeVersion": 1.3
},
{
"id": "12c9c9e9-9d62-4f69-83fb-ad4f16947201",
"name": "计算器",
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
"position": [
-32,
160
],
"parameters": {},
"typeVersion": 1
},
{
"id": "54205d4e-0f6c-4f54-acb0-4f98a5d2b326",
"name": "收到通知",
"type": "n8n-nodes-base.emailReadImap",
"position": [
-384,
-64
],
"parameters": {
"options": {},
"postProcessAction": "nothing"
},
"typeVersion": 2.1
},
{
"id": "3a212390-ff8a-4d0b-8db1-7290a5a348fa",
"name": "LLM 模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-160,
160
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "f043a10a-ec90-4702-82fa-344ff68951be",
"name": "检查是否需要更多信息",
"type": "n8n-nodes-base.if",
"position": [
304,
-64
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.output.needs_more_info }}",
"value2": "true"
}
]
}
},
"typeVersion": 1
},
{
"id": "252ae5b4-7342-41e1-861d-d9f091e391f2",
"name": "计算等待时间",
"type": "n8n-nodes-base.code",
"position": [
800,
-64
],
"parameters": {
"jsCode": "// === Parse email received date ===\nconst emailReceivedStr = $('Notification received').first().json.date; // e.g., \"Tue, 28 Oct 2025 22:34:56 +0200\"\nconst emailReceived = new Date(emailReceivedStr);\n\n// === Parse meeting date and time from Output Parser ===\nconst meetingDateStr = $input.first().json.output.meeting_date; // e.g., \"2025-10-29\"\nconst meetingTimeStr = $input.first().json.output.meeting_time; // e.g., \"16:00\"\n\n// === Combine meeting date and time with EET offset (+02:00) ===\nconst meetingDateTime = new Date(`${meetingDateStr}T${meetingTimeStr}:00+02:00`);\n\n// === Calculate difference in hours between meeting and email received ===\nconst diffHrs = (meetingDateTime - emailReceived) / (1000 * 60 * 60);\n\n// === Prepare wait times for reminders ===\nconst waitOutput = {\n wait_24h: 0, // Reminder 24h before meeting\n wait_1h: 0 // Reminder 1h before meeting\n};\n\n// If the difference is more than 24h, calculate 24h reminder\nif (diffHrs > 24) {\n waitOutput.wait_24h = Math.floor(diffHrs - 24);\n}\n\n// If the difference is less than 24h, calculate 1h reminder\nif (diffHrs < 24) {\n waitOutput.wait_1h = Math.floor(diffHrs - 1);\n}\n\n// Ensure both fields are numbers (null replaced with 0)\nwaitOutput.wait_24h = waitOutput.wait_24h || 0;\nwaitOutput.wait_1h = waitOutput.wait_1h || 0;\n\n// === Return JSON object ===\nreturn [\n {\n json: waitOutput\n }\n];\n"
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "edb48348-1a46-4486-8a2c-188bb8971b00",
"name": "发送时间",
"type": "n8n-nodes-base.if",
"position": [
1056,
-64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5029e2f0-c526-4ff9-8b51-ce763c11bcba",
"operator": {
"type": "number",
"operation": "equals"
},
"leftValue": "={{ $json.wait_24h }}",
"rightValue": 0
}
]
}
},
"typeVersion": 2.2
},
{
"id": "902b64a0-ba2b-429e-af79-38327a4c6d7a",
"name": "等待会议前1小时发送",
"type": "n8n-nodes-base.wait",
"position": [
1296,
-256
],
"webhookId": "45f9ddd0-f1a2-470e-b5fb-5cee857d81f6",
"parameters": {
"amount": "={{ $json.wait_24h }}"
},
"typeVersion": 1
},
{
"id": "841cafba-7dba-4fe7-adf3-57d68f00f51c",
"name": "等待会议前24小时发送",
"type": "n8n-nodes-base.wait",
"position": [
1296,
-16
],
"webhookId": "588ef178-4da2-4808-91d3-7c02aa5f7a54",
"parameters": {
"amount": "={{ $('Calculate Waiting Time').item.json.wait_24h }}"
},
"typeVersion": 1
},
{
"id": "bcf10853-cb1b-43d7-b7b5-1a09ff272c08",
"name": "等待24小时后会议前1小时发送",
"type": "n8n-nodes-base.wait",
"position": [
1296,
224
],
"webhookId": "f62dfee2-8297-431e-8c39-a6585b2bb7a5",
"parameters": {
"amount": "={{ $('Calculate Waiting Time').item.json.wait_1h }}+{{ $('Calculate Waiting Time').item.json.wait_24h }}"
},
"typeVersion": 1
},
{
"id": "8b82159a-c4ca-4efb-adc6-86b2df259d57",
"name": "发送澄清请求",
"type": "n8n-nodes-base.emailSend",
"position": [
528,
-80
],
"webhookId": "74415f90-ca61-4aef-9a48-60ab3437519d",
"parameters": {
"text": "Hi {{$json[\"invitee_name\"]}},\\n\\nI noticed you mentioned '{{$json[\"additional_info\"]}}'. Could you please share more details before our call? This will help me tailor our session to your goals.\\n\\nLooking forward to our meeting,\\n\\n[HOST_NAME]",
"options": {},
"subject": "Quick question before our strategy call",
"toEmail": "={{$json[\"invitee_email\"]}}",
"fromEmail": "[HOST_EMAIL]"
},
"typeVersion": 2
},
{
"id": "cff10792-a670-4e93-983e-ecc3a5e4e664",
"name": "发送 WhatsApp 提醒",
"type": "n8n-nodes-base.twilio",
"position": [
1680,
112
],
"parameters": {
"to": "=whatsapp:={{ $('extract from email').item.json.output.phone_number.replace(/\\s+/g,'').replace('+','') }}",
"from": "whatsapp:[TWILIO_WHATSAPP_FROM]",
"message": "Hi {{ $('analyze email').item.json.output.invitee_name }}, just a reminder that your AI strategy call is {{ $('analyze email').item.json.output.meeting_date }} @ {{ $('analyze email').item.json.output.meeting_time }} (EET).\\nJoin via: {{ $('analyze email').item.json.output.meeting_link }}\\nLooking forward! - [HOST_NAME]",
"options": {}
},
"typeVersion": 1
},
{
"id": "3701bdb4-d51e-4e4c-b252-c8f6b1abfde6",
"name": "从邮件中提取",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-112,
-64
],
"parameters": {
"text": "=You are an AI assistant that extracts meeting information from Calendly booking emails.\nRead the email and return a structured JSON with the following fields:\n- invitee_name\n- invitee_email\n- phone_number\n- meeting_date (format YYYY-MM-DD)\n- meeting_time (HH:mm)\n- meeting_link\n- meeting_goal\n- needs_more_info (true/false)\n- additional_info (brief summary if attendee provided extra notes)\n\nTime zone is always Eastern European Time (EET).\nKeep the output strictly in JSON format, no additional text.\nemail: {{ $json.textPlain }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "8493d399-3f6e-45ae-9968-45489bdb8765",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-608
],
"parameters": {
"color": 6,
"width": 464,
"height": 912,
"content": "## 通过可定制的提醒和跟进减少缺席率"
},
"typeVersion": 1
},
{
"id": "f5806527-1eff-4634-b287-4d78959054fd",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
-336
],
"parameters": {
"width": 224,
"height": 432,
"content": "## 收到通知"
},
"typeVersion": 1
},
{
"id": "f0a2b1b2-7c64-469d-953a-cb1d8e79da65",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-608
],
"parameters": {
"width": 336,
"height": 704,
"content": "## 数据提取"
},
"typeVersion": 1
},
{
"id": "a5323425-53b1-470d-b14a-5d6585b437a2",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
256,
-400
],
"parameters": {
"width": 432,
"height": 496,
"content": "## 是否需要更多信息?"
},
"typeVersion": 1
},
{
"id": "0e523bfa-76e5-4c6c-a190-78621e4bc791",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
-400
],
"parameters": {
"height": 496,
"content": "## 计算等待时间:"
},
"typeVersion": 1
},
{
"id": "c8d6b1ac-4606-4186-8621-d964e4342fa4",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
992,
-672
],
"parameters": {
"width": 464,
"height": 1072,
"content": "## 何时发送?"
},
"typeVersion": 1
},
{
"id": "074fc85b-63a4-464a-98f9-d02121c40396",
"name": "### 需要帮助?",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
-672
],
"parameters": {
"width": 352,
"height": 976,
"content": "## 发送提醒"
},
"typeVersion": 1
},
{
"id": "06d9170c-a147-4f43-be32-c3dd4a927a57",
"name": "## 试试看!",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
400
],
"parameters": {
"color": 3,
"width": 1072,
"height": 224,
"content": "## 要求和自定义"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"availableInMCP": false,
"executionOrder": "v1",
"saveExecutionProgress": true,
"timeSavedPerExecution": 4
},
"versionId": "c7304cad-6675-47fd-b991-2ec8ce6de7ca",
"connections": {
"LLM model": {
"ai_languageModel": [
[
{
"node": "extract from email",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Calculator": {
"ai_tool": [
[
{
"node": "extract from email",
"type": "ai_tool",
"index": 0
}
]
]
},
"When to send": {
"main": [
[
{
"node": "Wait to send 1h before meeting",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait to send 24h before meeting",
"type": "main",
"index": 0
},
{
"node": "Wait to send 1h before meeting after 24h",
"type": "main",
"index": 0
}
]
]
},
"extract from email": {
"main": [
[
{
"node": "Check if More Info is Needed",
"type": "main",
"index": 0
},
{
"node": "Calculate Waiting Time",
"type": "main",
"index": 0
}
]
]
},
"Notification received": {
"main": [
[
{
"node": "extract from email",
"type": "main",
"index": 0
}
]
]
},
"Calculate Waiting Time": {
"main": [
[
{
"node": "When to send",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "extract from email",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Check if More Info is Needed": {
"main": [
[
{
"node": "Send Clarification request",
"type": "main",
"index": 0
}
],
[]
]
},
"Wait to send 1h before meeting": {
"main": [
[
{
"node": "Send Reminder Email",
"type": "main",
"index": 0
},
{
"node": "Send WhatsApp Reminder",
"type": "main",
"index": 0
}
]
]
},
"Wait to send 24h before meeting": {
"main": [
[
{
"node": "Send Reminder Email",
"type": "main",
"index": 0
},
{
"node": "Send WhatsApp Reminder",
"type": "main",
"index": 0
}
]
]
},
"Wait to send 1h before meeting after 24h": {
"main": [
[
{
"node": "Send Reminder Email",
"type": "main",
"index": 0
},
{
"node": "Send WhatsApp Reminder",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 客户培育, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
第一轮 Telegram 和 LinkedIn 快速通道 AI 招聘助手
AI候选人筛选流程:LinkedIn到Telegram,集成Gemini与Apify
If
Set
Code
+15
55 节点Dean Pike
人力资源
使用 Gemini 和 Jina AI 自动化供应商尽职调查研究
使用 Gemini 和 Jina AI 自动化供应商尽职调查研究
If
Set
Code
+12
27 节点Adnan
文档提取
使用Apollo.io和Google表格的自动化LinkedIn潜在客户丰富管道
使用Apollo.io和Google表格的自动化LinkedIn潜在客户丰富管道
If
Code
Wait
+10
33 节点Rahi Uppal
潜在客户开发
灵活新闻聚合器 - 多源集成、AI分析和可设置频道
多源新闻策展系统,集成Mistral AI分析、摘要和自定义频道
If
Set
Xml
+32
120 节点Hybroht
内容创作
室内设计客户评估模板
使用AI和人工审批自动化室内设计潜在客户评估至Notion
If
Set
Gmail
+9
28 节点Jameson Kanakulya
客户培育
工作流信息
难度等级
高级
节点数量22
分类2
节点类型11
作者
Razvan Bara
@amzneerWhether you're launching your first product or scaling, I'll help you build an AI-powered, data-driven system that runs your business while you focus on strategic growth. Let's discuss how strategic optimization combined with business intelligence and custom AI agents can transform your operations and accelerate your success. Ready to scale smarter with AI and data? Let's talk.
外部链接
在 n8n.io 查看 →
分享此工作流