牙科助理的聊天机器人预约系统,集成Google日历
中级
这是一个AI领域的自动化工作流,包含 12 个节点。主要使用 Agent, GoogleSheetsTool, GoogleCalendarTool, ChatTrigger, LmChatOpenAi 等节点,结合人工智能技术实现智能自动化。 牙科助理的聊天机器人预约系统,集成Google日历
前置要求
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (12)
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "my335cY3wVwMqvqy",
"meta": {
"instanceId": "2ee8293be0fa6380527ab247a1eb95264d17c994507730562aa1c31ddb264f82",
"templateCredsSetupCompleted": true
},
"name": "预约医疗",
"tags": [],
"nodes": [
{
"id": "32fe7a8b-aa1a-4517-a167-41972f77d69b",
"name": "当收到聊天消息时",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-360,
-40
],
"webhookId": "8f427031-1110-4ea3-aef7-5d06ba7d5bce",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"name": "AI 代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-20,
-60
],
"parameters": {
"options": {
"systemMessage": "=🎯 Role of the Assistant\nYou are a virtual assistant specializing in appointment management for Dr. Hakim. Your goal is to schedule consultations accurately, ensuring real availability while providing a smooth experience for patients.\n\n🕒 Office Hours\nMonday - Friday: 9:00 AM - 8:00 PM\nSaturday: 9:00 AM - 1:00 PM\nSunday: ❌ Closed\nConsultation Duration: 1 hour\nBreak Between Patients: 15 minutes\n\n📅 Booking Process\n\n1️⃣ Request Patient Information (Mandatory):\nFull Name\nPhone Number\nDesired Date and Time\n2️⃣ Availability Check:\nIf the requested time is outside office hours → offer only available slots.\nIf the requested time is available, ask for confirmation and book it.\nIf the requested time is unavailable, apologize and suggest the actual available slots on the requested day (between 9:00 AM and 8:00 PM, respecting breaks).\n\n##Example:\nIf a patient requests an appointment at 10:00 AM, check Google Calendar to confirm availability between 9:00 AM and 8:00 PM, considering the consultation duration (1 hour) and the 15-minute breaks.\n\n🚨 Do not confirm the appointment immediately—you must receive the patient's confirmation first.\n\n3️⃣ Confirmation & Updates:\nConfirm availability with the patient before finalizing.\nUpdate Google Calendar & Google Sheets after every booking.\nGoogle Calendar Event Title: \"Patient Name - Phone Number\".\nFor modifications or cancellations, free the slot and update the schedule.\n\n##Tools:\nUse \"Cheek Avilability\" to check available slots.\nUse \"Creat event\" to book the appointment.\nUse \"Add Data\" to record patient information.\n\n💬 Communication\n✅ Respond clearly, professionally, and in a friendly manner.\n✅ Always confirm the final date and time with the patient.\n✅ Ensure Google Calendar and Google Sheets are updated after every booking.\n\n📅 Today's date: {{ $now }}."
}
},
"typeVersion": 1.7
},
{
"id": "fea932f2-c99e-4e1a-83bc-b06abf6cce41",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-80,
160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "x0tQpNXNP6v5Ovtd",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "05bfbeb4-d2a4-4372-b763-6da636ed4393",
"name": "窗口缓冲内存",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
60,
160
],
"parameters": {
"sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "86899211-daf8-4fc6-a61a-98504b239d83",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
-220
],
"parameters": {
"color": 7,
"width": 194,
"height": 141,
"content": "**AI Agent 👇**"
},
"typeVersion": 1
},
{
"id": "947c5aa3-549e-49f1-b136-030cbd3ca6ff",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
300
],
"parameters": {
"color": 7,
"width": 150,
"height": 80,
"content": "**Chat Model ☝️**"
},
"typeVersion": 1
},
{
"id": "cac840df-644e-4092-b678-af2fdf3fc378",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
300
],
"parameters": {
"color": 7,
"width": 190,
"height": 80,
"content": "**Google Calendar ☝️**"
},
"typeVersion": 1
},
{
"id": "f474ee97-ba38-4100-bfc7-0d01d0a4c599",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
300
],
"parameters": {
"color": 7,
"width": 190,
"height": 80,
"content": "**Google Sheets ☝️**"
},
"typeVersion": 1
},
{
"id": "51fcd961-7b0b-4435-a315-17d4ddc1ed30",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
40,
300
],
"parameters": {
"color": 7,
"width": 150,
"height": 80,
"content": "**Memory ☝️**"
},
"typeVersion": 1
},
{
"id": "398fdf7a-508d-4a0a-8c2c-1f0075b6ad56",
"name": "检查可用性",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
200,
160
],
"parameters": {
"options": {},
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End_Time', ``, 'string') }}",
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Time', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "3009ae2f09f9ecab6eaa1d36f0b38c099f0e370759cad1c51691f9dc0fbd64fd@group.calendar.google.com",
"cachedResultName": "Prise de rendez vous pour les Medcins "
},
"resource": "calendar"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "NtT31ekfbGzWyc9k",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "43673597-ffb6-4d38-8fb0-975eb47976f6",
"name": "创建事件",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
360,
160
],
"parameters": {
"end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
"start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "3009ae2f09f9ecab6eaa1d36f0b38c099f0e370759cad1c51691f9dc0fbd64fd@group.calendar.google.com",
"cachedResultName": "Prise de rendez vous pour les Medcins "
},
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "NtT31ekfbGzWyc9k",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "650b5d36-7b52-4bb2-953a-d9ee278a35eb",
"name": "添加数据",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
500,
160
],
"parameters": {
"columns": {
"value": {
"Nom complet": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Nom_complet', ``, 'string') }}",
"Date / heure ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Date___heure_', ``, 'string') }}",
"Numéro de telephone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Num_ro_de_telephone', ``, 'string') }}"
},
"schema": [
{
"id": "Nom complet",
"type": "string",
"display": true,
"required": false,
"displayName": "Nom complet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Numéro de telephone",
"type": "string",
"display": true,
"required": false,
"displayName": "Numéro de telephone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date / heure ",
"type": "string",
"display": true,
"required": false,
"displayName": "Date / heure ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Confirmé",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Confirmé",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JAbg-TJZr7fqiRMAjQY6baDAkQoigzUd4YqbTPoQqWE/edit#gid=0",
"cachedResultName": "Feuille 1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1JAbg-TJZr7fqiRMAjQY6baDAkQoigzUd4YqbTPoQqWE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JAbg-TJZr7fqiRMAjQY6baDAkQoigzUd4YqbTPoQqWE/edit?usp=drivesdk",
"cachedResultName": "RDV Medcin"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Q4J5dsFmt1OSnjNV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "39048f71-6a4c-4181-947e-5e2545c4dc1e",
"connections": {
"3510bb5a-3c8b-4978-a6c5-5c077be74f3f": {
"main": [
[]
]
},
"650b5d36-7b52-4bb2-953a-d9ee278a35eb": {
"ai_tool": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "ai_tool",
"index": 0
}
]
]
},
"43673597-ffb6-4d38-8fb0-975eb47976f6": {
"ai_tool": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "ai_tool",
"index": 0
}
]
]
},
"fea932f2-c99e-4e1a-83bc-b06abf6cce41": {
"ai_languageModel": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"398fdf7a-508d-4a0a-8c2c-1f0075b6ad56": {
"ai_tool": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "ai_tool",
"index": 0
}
]
]
},
"05bfbeb4-d2a4-4372-b763-6da636ed4393": {
"ai_memory": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "ai_memory",
"index": 0
}
]
]
},
"32fe7a8b-aa1a-4517-a167-41972f77d69b": {
"main": [
[
{
"node": "3510bb5a-3c8b-4978-a6c5-5c077be74f3f",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI Agent:使用 OpenAI 的 Google 日历助手
AI 智能助手:基于 OpenAI 的 Google 日历助手
Agent
Google Calendar Tool
Chat Trigger
+
Agent
Google Calendar Tool
Chat Trigger
13 节点Dataki
人工智能
基于AI的MIS代理
基于AI的管理信息系统代理
If
Set
Code
+
If
Set
Code
129 节点Kumar Shivam
客户支持
ozki: OpenAI CSV分析
使用OpenAI驱动的数据代理分析Google Sheets数据
Agent
Google Sheets Tool
Chat Trigger
+
Agent
Google Sheets Tool
Chat Trigger
6 节点ozkary
工程
[AOE] 收件箱和日历管理 Agent
使用 Gmail、Google Calendar 和 GPT-4o AI 自动化邮件与日历管理
Code
Gmail
Gmail Tool
+
Code
Gmail
Gmail Tool
38 节点AOE Agent Lab
人工智能
在Braze中更新现有邮件模板
使用AI为Instagram、Facebook、LinkedIn和X自动化社交媒体内容
Set
Gmail
Merge
+
Set
Gmail
Merge
73 节点LukaszB
设计
使用OpenAI和Google表格的供应商自动邮件助手
使用OpenAI和Google表格的供应商自动邮件助手
Gmail Tool
Agent
Google Sheets Tool
+
Gmail Tool
Agent
Google Sheets Tool
11 节点Omar Hdez
客户支持
工作流信息
难度等级
中级
节点数量12
分类1
节点类型7
作者
NocodeInnovate
@nocodeinnovate🚀 Passionate about automation & AI! I explore intelligent solutions to optimize processes & boost efficiency 🤖✨ I don't code, but I leverage AI tools & strategies to drive innovation.
外部链接
在 n8n.io 查看 →
分享此工作流