Google 캘린더와 스프레드시트를 사용하여 AI 기반 가상 레세ption어 생성
중급
이것은Miscellaneous, AI Chatbot, Multimodal AI분야의자동화 워크플로우로, 12개의 노드를 포함합니다.주로 GoogleSheets, Agent, GoogleSheetsTool, GoogleCalendarTool, ChatTrigger 등의 노드를 사용하며. Google 일정과 테이블을 사용하여 AI로운 가상 대리인을 만듭니다.
사전 요구사항
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (12)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "a2decaa80798f56a13dbca1aa742181dfea463e822cc650b5a716ef8b115667a"
},
"nodes": [
{
"id": "e38100f0-54dd-4a75-a3bd-3b6295ca96d0",
"name": "대화 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
336,
16
],
"parameters": {
"contextWindowLength": 15
},
"typeVersion": 1.3
},
{
"id": "22a387d3-ffdd-4221-b27d-dde8711c1186",
"name": "캘린더 가용성 확인",
"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": "캘린더 약속 예약",
"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": "약속 기록 저장",
"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": "구조화된 출력 파서",
"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": "채팅 메시지 수신 시",
"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 채팅 모델",
"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 채팅 모델1",
"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": "비즈니스 세부 정보 가져오기",
"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": "스티키 노트1",
"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": "스티키 노트",
"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": "AI 리셉셔니스트",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 기타, AI 챗봇, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
💥 ChatGPT-5를 사용하여 첫 번째 AI 대리인을 구축하세요
GPT-5, Google 캘린더와 스프레드시트를 사용하여 지식庫와 일정 계획 AI 어시스턴트를 생성합니다.
Gmail Tool
Agent
Google Sheets Tool
+
Gmail Tool
Agent
Google Sheets Tool
14 노드Dr. Firas
기타
드림 100 연구 에이전트
사용하여 Perplexity AI 연구와 Google Sheets를 통해 Dream 100 잠재 고객 목록 생성
If
Set
Slack
+
If
Set
Slack
29 노드Brandon True
기타
펫 그루밍 게시 및 예약 자동화
AI, Facebook 및 Telegram 봇을 사용한 펫 그루밍 게시 및 예약 자동화
If
Set
Switch
+
If
Set
Switch
36 노드Christian Moises
AI 챗봇
🚀 Shopify 브랜드를 위한 AI 기반 WhatsApp 고객 지원
Shopify 브랜드용 AI 기반 WhatsApp 고객 지원(LLM 에이전트)
Set
Slack
Switch
+
Set
Slack
Switch
30 노드Ruthwik
기타
음성 녹취, FAQ 및 예약安排를 포함한 WhatsApp 고객 지원 자동화
음성 전사, FAQ, 예약安排이 포함된 WhatsApp 고객 지원 자동화
If
Set
Switch
+
If
Set
Switch
23 노드AureusR
기타
지능형 챗봇
GPT-5-nano, 네트워크 검색, 대화 기억을 사용하여 지능형 챗봇을 구축합니다.
Chat
Agent
Http Request Tool
+
Chat
Agent
Http Request Tool
13 노드Oriol Seguí
기타