使用 Cal.com 和 Google Sheets 自动化面试安排与数据清理
中级
这是一个HR领域的自动化工作流,包含 14 个节点。主要使用 If, Set, Code, SplitOut, HttpRequest 等节点。 通过 Cal.com 和 Google Sheets 实现面试安排与数据清理的自动化
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "60098b76ad738e2ce8a403a46a5d6afed7799cdb6caa43f6858e6df2ac2bc8f5",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "da1d59c5-9f44-41b2-9239-9656a5524bc8",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
60,
60
],
"parameters": {},
"typeVersion": 1
},
{
"id": "be3c688c-ca01-42b8-8fd6-6b715a187683",
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"position": [
560,
60
],
"parameters": {
"url": "https://api.cal.com/v1/bookings",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "apiKey",
"value": "YOUR API KEY HERE"
},
{
"name": "id",
"value": "={{ $json.attendees[0].bookingId }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ba372028-e10d-46c8-bac9-eb3400e5c2f4",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
960,
60
],
"parameters": {
"include": "selected",
"options": {},
"assignments": {
"assignments": [
{
"id": "7084df2d-5689-48c1-a048-2a3861261073",
"name": "Email",
"type": "string",
"value": "={{ $json.email.toLowerCase() }}"
},
{
"id": "320d00bf-cc25-46b5-b4e9-ee4ecd45db66",
"name": "Interview Schedule",
"type": "string",
"value": "={{ $json.startFormatted }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "b9c03922-faf8-4c5c-87ba-cd44b8919aaa",
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
1440,
60
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "SUMMARY "
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit#gid=0",
"cachedResultName": "Accepted"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit?usp=drivesdk",
"cachedResultName": "Resumes"
}
},
"credentials": {},
"typeVersion": 4.6
},
{
"id": "06ea5046-9679-47d3-876c-d9963a5bd47c",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
1660,
60
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "Email"
},
"typeVersion": 1
},
{
"id": "8d2456b4-8074-4b95-9f2d-9beca4f47f3a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-260
],
"parameters": {
"content": "## 📅 Cal.com日历设置"
},
"typeVersion": 1
},
{
"id": "73f5783e-f0e4-40e8-88e2-067bc86880b3",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
-280
],
"parameters": {
"color": 3,
"width": 420,
"height": 280,
"content": "## 🔁 链接至简历筛选模板"
},
"typeVersion": 1
},
{
"id": "4c2e0432-6b9c-4142-a17f-cb65cd31697e",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1820,
-220
],
"parameters": {
"width": 460,
"height": 220,
"content": "## 🧹 数据清理逻辑"
},
"typeVersion": 1
},
{
"id": "f61ef94a-6f49-4495-aa2c-9d4e8e3c02fd",
"name": "迭代电子邮件",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1900,
60
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "e896a142-0045-4b18-bb84-23381fda6343",
"name": "检查未匹配的电子邮件",
"type": "n8n-nodes-base.if",
"position": [
2120,
160
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8aa988a0-0225-49fc-9953-e97746bc7c9b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['SUMMARY '] }}",
"rightValue": "="
}
]
}
},
"typeVersion": 2.2
},
{
"id": "231eee7f-33cc-4879-ab32-701543a83ec2",
"name": "删除中",
"type": "n8n-nodes-base.googleSheets",
"position": [
2340,
140
],
"parameters": {
"operation": "delete",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit#gid=0",
"cachedResultName": "Accepted"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit?usp=drivesdk",
"cachedResultName": "Resumes"
},
"startIndex": "={{ $json.row_number }}"
},
"credentials": {},
"typeVersion": 4.6
},
{
"id": "7fa5068c-5b7c-4bb5-bd0c-a41560221141",
"name": "添加面试时间和日期",
"type": "n8n-nodes-base.googleSheets",
"position": [
1200,
60
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "NAME",
"type": "string",
"display": true,
"required": false,
"displayName": "NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Number",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "JUSTIFICATION ",
"type": "string",
"display": true,
"required": false,
"displayName": "JUSTIFICATION ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SUMMARY ",
"type": "string",
"display": true,
"required": false,
"displayName": "SUMMARY ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Q1",
"type": "string",
"display": true,
"required": false,
"displayName": "Q1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Q2",
"type": "string",
"display": true,
"required": false,
"displayName": "Q2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Q3",
"type": "string",
"display": true,
"required": false,
"displayName": "Q3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Q4",
"type": "string",
"display": true,
"required": false,
"displayName": "Q4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Q5",
"type": "string",
"display": true,
"required": false,
"displayName": "Q5",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"handlingExtraData": "ignoreIt"
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit#gid=0",
"cachedResultName": "Accepted"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18vvSKGbAiodQvNsdNTJ1pBuhEcv2ADAmQKtDNAK7VQY/edit?usp=drivesdk",
"cachedResultName": "Resumes"
}
},
"credentials": {},
"typeVersion": 4.6
},
{
"id": "a30e3a25-b55e-41bd-bd25-ac6821bdec32",
"name": "转换为时间",
"type": "n8n-nodes-base.code",
"position": [
760,
60
],
"parameters": {
"jsCode": "return $json.bookings.map(booking => {\n const date = new Date(booking.startTime);\n const formatted = date.toLocaleString(\"en-GB\", {\n timeZone: \"Asia/Riyadh\",\n day: \"2-digit\",\n month: \"long\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: true\n });\n\n return {\n json: {\n name: booking.attendees[0].name,\n email: booking.attendees[0].email,\n startFormatted: formatted\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "365dad27-686d-4f38-9bbd-6beeb83573ca",
"name": "获取预订信息",
"type": "n8n-nodes-base.httpRequest",
"position": [
340,
60
],
"parameters": {
"url": "https://api.cal.com/v1/attendees",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "apiKey",
"value": "your API KEY HERE"
}
]
}
},
"typeVersion": 4.2
}
],
"pinData": {},
"connections": {
"Deleting": {
"main": [
[
{
"node": "Iterate over emails",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Iterate over emails",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Adding Time & Date for interview",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Converting to time",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets1": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Converting to time": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Iterate over emails": {
"main": [
[],
[
{
"node": "Check for unmatched Emails",
"type": "main",
"index": 0
}
]
]
},
"Check for unmatched Emails": {
"main": [
[
{
"node": "Deleting",
"type": "main",
"index": 0
}
],
[
{
"node": "Iterate over emails",
"type": "main",
"index": 0
}
]
]
},
"Fetching Booking Information": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"Adding Time & Date for interview": {
"main": [
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Fetching Booking Information",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 人力资源
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Browserflow 和 Google Sheets 自动化 LinkedIn 请求与破冰消息
使用 Browserflow 和 Google Sheets 自动化 LinkedIn 请求与破冰消息
If
Set
Sort
+15
44 节点PollupAI
销售
LinkedIn人才管道:AI驱动的候选人搜索与排名(GPT-4o)
LinkedIn人才管道:AI驱动的候选人搜索与排名(GPT-4o)
If
Set
Code
+14
24 节点Badr
人力资源
Facebook页面评论管理机器人:回复、删除、封禁和通知
AI驱动的Facebook评论管理:自动回复、删除、封禁和通知
If
Set
Code
+18
59 节点SpaGreen Creative
社交媒体
API架构提取器
API架构提取器
If
Set
Code
+22
88 节点Polina Medvedieva
工程
Printify自动化 - 更新标题和描述 - AlexK1919
使用GPT-4o-mini为Printify自动生成SEO产品标题和描述
If
Set
Code
+10
26 节点Amit Mehta
内容创作
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+21
141 节点Ezema Kingsley Chibuzo
潜在客户开发