Erstellung eines KI-gesteuerten virtuellen Empfangsmitarbeiters mit Google Kalender und Tabellen
Dies ist ein Miscellaneous, AI Chatbot, Multimodal AI-Bereich Automatisierungsworkflow mit 12 Nodes. Hauptsächlich werden GoogleSheets, Agent, GoogleSheetsTool, GoogleCalendarTool, ChatTrigger und andere Nodes verwendet. Erstelle einen KI-angetriebenen virtuellen Empfangsdienst mit Google Kalender und Tabellen
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (12)
{
"meta": {
"instanceId": "a2decaa80798f56a13dbca1aa742181dfea463e822cc650b5a716ef8b115667a"
},
"nodes": [
{
"id": "e38100f0-54dd-4a75-a3bd-3b6295ca96d0",
"name": "Konversationsspeicher",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
336,
16
],
"parameters": {
"contextWindowLength": 15
},
"typeVersion": 1.3
},
{
"id": "22a387d3-ffdd-4221-b27d-dde8711c1186",
"name": "Kalenderverfügbarkeit prüfen",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
720,
16
],
"parameters": {
"options": {},
"timeMax": "={{ $fromAI('end_datetime', `End datetime in ISO format with timezone (YYYY-MM-DDTHH:MM:SS+TZ) for availability check`, 'string') }}",
"timeMin": "={{ $fromAI('start_datetime', `Start datetime in ISO format with timezone (YYYY-MM-DDTHH:MM:SS+TZ) for availability check`, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "ris362720@gmail.com",
"cachedResultName": "ris362720@gmail.com"
},
"resource": "calendar"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ZKFdGvnaSxLoLCiO",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "f62ef70f-6295-4a02-8342-83d3a67d5429",
"name": "Kalendertermin buchen",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
592,
16
],
"parameters": {
"end": "={{ $fromAI('end_datetime', `End datetime in ISO format with timezone (YYYY-MM-DDTHH:MM:SS+TZ)`, 'string') }}",
"start": "={{ $fromAI('start_datetime', `Start datetime in ISO format with timezone (YYYY-MM-DDTHH:MM:SS+TZ)`, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "ris362720@gmail.com",
"cachedResultName": "ris362720@gmail.com"
},
"additionalFields": {
"summary": "={{ $fromAI('event_title', `Event title with customer name and service`, 'string') }}",
"description": "={{ $fromAI('event_description', `Detailed event description including: Business name, Service type, Duration, Customer name, Phone, Special notes`, 'string') }}"
},
"useDefaultReminders": false
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ZKFdGvnaSxLoLCiO",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "ca5ad6d5-227f-4776-9f37-ed9497d838d9",
"name": "Terminaufzeichnung speichern",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
464,
16
],
"parameters": {
"columns": {
"value": {
"summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('summary', `summary conversation`, 'string') }}",
"event_id": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('event_id', ``, 'string') }}",
"services": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('services', ``, 'string') }}",
"patient name ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('patient_name_', ``, 'string') }}",
"patient number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('patient_number', ``, 'string') }}"
},
"schema": [
{
"id": "patient number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "patient number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "patient name ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "patient name ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "event_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "event_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "services",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "services",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1454968607,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8/edit#gid=1454968607",
"cachedResultName": "Sheet2"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8/edit?usp=drivesdk",
"cachedResultName": "Bussiness details"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "fGbQfgGA6gTKu9Jd",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "c519dbd4-c95e-4c12-bd46-ccb76d4301ca",
"name": "Strukturierter Ausgabeparser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"disabled": true,
"position": [
848,
16
],
"parameters": {
"autoFix": true,
"jsonSchemaExample": "{\n \"ai_reply\": \"I'd be happy to help you! What service are you interested in booking today?\"\n}"
},
"typeVersion": 1.3
},
{
"id": "ba1c4cff-5e5e-487a-952e-60c886cd0fb8",
"name": "Bei Empfang einer Chatnachricht",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-544,
-208
],
"webhookId": "73eb01dc-fa71-4f00-b3e8-17e716ef86f6",
"parameters": {
"options": {}
},
"typeVersion": 1.3
},
{
"id": "02fce16f-b548-4db3-a5c4-e6b06c4d0f55",
"name": "OpenAI Chat-Modell",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
208,
16
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "TEPbLQLrisXKXcU1",
"name": "n8n free OpenAI API credits"
}
},
"typeVersion": 1.2
},
{
"id": "52494195-7502-473f-a254-afb53bf89a74",
"name": "OpenAI Chat-Modell1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
928,
224
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "TEPbLQLrisXKXcU1",
"name": "n8n free OpenAI API credits"
}
},
"typeVersion": 1.2
},
{
"id": "44f4d1d4-6d39-45ad-ad78-a9febf0e52e2",
"name": "Geschäftsdetails abrufen",
"type": "n8n-nodes-base.googleSheets",
"position": [
-176,
-208
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sEfkvCT_4GGlleZKcQfWy1Z8V2FEg2BH2eY0LDzrnt8/edit?usp=drivesdk",
"cachedResultName": "Bussiness details"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "fGbQfgGA6gTKu9Jd",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "f0752315-6a90-48df-a8fe-9dda53d2c58d",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-336
],
"parameters": {
"color": 3,
"width": 416,
"height": 272,
"content": "## Get Business Details\nPulls service list, hours, policies, and AI personality from Google Sheets. \nProvides the AI with the business-specific context. "
},
"typeVersion": 1
},
{
"id": "b4ebcd48-a651-4bad-b7c3-dd6939bea1ed",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
144,
-320
],
"parameters": {
"color": 4,
"width": 976,
"height": 528,
"content": "## AI Receptionist Agent \nHandles customer chat with GPT + business context, \nanswers questions, books appointments via Google Calendar, \nand saves appointment records into Google Sheets. \n"
},
"typeVersion": 1
},
{
"id": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"name": "KI-Empfangsmitarbeiter",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
464,
-208
],
"parameters": {
"text": "={{ $('When chat message received').item.json.chatInput }}",
"options": {
"systemMessage": "=# {{ $json['ai_name '] }} - {{ $json.business_name }} Virtual Receptionist\n\nYou are {{ $json['ai_name '] }}, the {{ $json.ai_personality }} virtual receptionist at **{{ $json.business_name }}**. Your role is to {{ $json.ai_role }}\n\n## BUSINESS ESSENTIALS\n\n**Type**: {{ $json[' business_type'] }}\n**Location**: {{ $json[' location'] }}\n**Hours**: {{ $json[' working_hours '] }}\n**Currency**: {{ $json.currency }}\n\n### Services & Pricing\n{{ $json.services }}\n\n## COMMUNICATION STYLE\n- **Tone**: {{ $json.ai_personality }}\n- **Length**: 2-3 sentences per response\n- **Approach**: Natural conversation, not robotic\n- **Use names**: Once provided, use customer's name\n\n## BOOKING WORKFLOW\n1. **Understand need**: Service type, timing preference\n2. **Check availability**: Use checkAvailability tool with business calendar\n3. **Gather details**: Name, phone number, email (optional)\n4. **Confirm booking**: Use bookAppointment tool\n5. **Save data**: Use captureCustomerData and saveAppointment tools\ntime now: {{ $now }}\n\n## KEY GUIDELINES\n\n### ✅ DO\n- Welcome warmly: \"Hello! I'm {{ $json['ai_name '] }} from {{ $json.business_name }}\"\n- Offer alternatives if requested time unavailable\n- Prioritize emergencies if emergency services available\n- Explain pricing clearly when asked\n- Use all available tools for complete booking process\n\n### ❌ DON'T\n- Give medical/professional advice outside your scope\n- Book outside business hours\n- Repeat questions already answered\n- Ask for unnecessary personal information\n- Provide vague responses about availability\n\n## EMERGENCY PROTOCOL\n{% if $('Select Business Context').item.json.emergency_available %}\nEmergencies are available. Prioritize urgent requests and offer same-day slots when possible.\n{% endif %}\n\n## BUSINESS CONTEXT\n\n- Timezone: {{ $json['timezone '] }}\n- Advance booking limit:{{ $json[' booking_advance_days '] }} days\n- Cancellation policy: {{ $json['cancellation_hours '] }} hours notice\n\n---\nProvide responses in this JSON format:\n{\n \"ai_reply\": \"Your helpful and personalized response here\"\n}\n\n**Remember**: You're representing {{ $json.business_name }}. Be helpful, accurate, and maintain the professional standard they expect."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
}
],
"pinData": {},
"connections": {
"02fce16f-b548-4db3-a5c4-e6b06c4d0f55": {
"ai_languageModel": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"52494195-7502-473f-a254-afb53bf89a74": {
"ai_languageModel": [
[
{
"node": "c519dbd4-c95e-4c12-bd46-ccb76d4301ca",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"e38100f0-54dd-4a75-a3bd-3b6295ca96d0": {
"ai_memory": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_memory",
"index": 0
}
]
]
},
"44f4d1d4-6d39-45ad-ad78-a9febf0e52e2": {
"main": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "main",
"index": 0
}
]
]
},
"ca5ad6d5-227f-4776-9f37-ed9497d838d9": {
"ai_tool": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_tool",
"index": 0
}
]
]
},
"c519dbd4-c95e-4c12-bd46-ccb76d4301ca": {
"ai_outputParser": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"f62ef70f-6295-4a02-8342-83d3a67d5429": {
"ai_tool": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_tool",
"index": 0
}
]
]
},
"ba1c4cff-5e5e-487a-952e-60c886cd0fb8": {
"main": [
[
{
"node": "44f4d1d4-6d39-45ad-ad78-a9febf0e52e2",
"type": "main",
"index": 0
}
]
]
},
"22a387d3-ffdd-4221-b27d-dde8711c1186": {
"ai_tool": [
[
{
"node": "4c6250f1-093a-49c1-a496-b8b883ca4787",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Verschiedenes, KI-Chatbot, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Risper
@risper254Diesen Workflow teilen