演示 - WhatsApp 음성 대리인
고급
이것은Miscellaneous, AI Chatbot, Multimodal AI분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 Webhook, GmailTool, RespondToWebhook, GoogleCalendarTool, McpTrigger 등의 노드를 사용하며. Twilio, VAPI, Google 일정 및 OpenAI를 사용하여 WhatsApp 오디오 어시스턴트를 만듭니다.
사전 요구사항
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •Google 계정 및 Gmail API 인증 정보
- •OpenAI API Key
- •Supabase URL과 API Key
사용된 노드 (18)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "hSC68gkBlh2XuLpG",
"meta": {
"instanceId": "b8a5093b5456db9e25d3dfee5ac3b3b01627b82a51b5b4c92c46527b44088cc7"
},
"name": "Demo- Whatsapp Voice Agent",
"tags": [],
"nodes": [
{
"id": "43b9c5a5-4d0b-4713-a9c5-ea00e24cc320",
"name": "Supabase 벡터 스토어",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"position": [
1216,
-32
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {},
"tableName": {
"__rl": true,
"mode": "list",
"value": "documents",
"cachedResultName": "documents"
},
"toolDescription": "Retrieve this tool to get pricing Informatio or any other General Inquiry."
},
"credentials": {
"supabaseApi": {
"id": "Q4GZ3W6mxCehoH23",
"name": "Supabase account"
}
},
"typeVersion": 1.3
},
{
"id": "07c67c64-9390-472d-807c-3c0c4a0405a7",
"name": "임베딩 OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1216,
112
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "I91cpgp1xdieYw6j",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "15ee6172-40e2-439b-bfce-a64850fdf4d1",
"name": "캘린더 이벤트 생성",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-240,
32
],
"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": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "e5a95d98-88ee-4557-84f7-ee3a4bf56ad1",
"name": "캘린더 이벤트 가져오기",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-96,
32
],
"parameters": {
"options": {},
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "getAll"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "f22f3c2d-1e22-45d8-9cfd-8895733b862b",
"name": "캘린더 이벤트 업데이트",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
48,
48
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "update",
"updateFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "d56e75ab-7086-45cb-bf2c-dca53cfbbe8d",
"name": "캘린더 이벤트 삭제",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
176,
80
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"options": {},
"calendar": {
"__rl": true,
"mode": "list",
"value": "nabin.busines@gmail.com",
"cachedResultName": "nabin.busines@gmail.com"
},
"operation": "delete"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ctueqxNJZ9Heg0WW",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "d8c9f9d7-1fb2-4293-b411-1d72afd03c63",
"name": "이메일 알림 전송",
"type": "n8n-nodes-base.gmailTool",
"position": [
720,
352
],
"webhookId": "028d9f35-e95f-48db-98cd-d5fbe5e5ddef",
"parameters": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "n8VNOucmPCeP3LOO",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"name": "MCP 서버 – 캘린더",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-240,
-240
],
"webhookId": "1902a1d2-f8a8-4601-b20c-90e824fe478d",
"parameters": {
"path": "1902a1d2-f8a8-4601-b20c-90e824fe478d"
},
"typeVersion": 2
},
{
"id": "9ebb9d32-59ea-4f52-ba5a-f6a57356ac8d",
"name": "MCP 서버 – Gmail",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
576,
160
],
"webhookId": "41a2ab5f-1a7d-440b-a1e3-1b2308dee744",
"parameters": {
"path": "41a2ab5f-1a7d-440b-a1e3-1b2308dee744"
},
"typeVersion": 2
},
{
"id": "566c8afb-cb1b-4216-a543-5b26cb5182e8",
"name": "MCP 서버 – 지식 베이스",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
1152,
-240
],
"webhookId": "3643c062-c554-43d8-84d1-692b886b780f",
"parameters": {
"path": "3643c062-c554-43d8-84d1-692b886b780f"
},
"typeVersion": 2
},
{
"id": "61ded9b5-737a-42bf-956e-60614c87fbe2",
"name": "수신 Webhook (VAPI)",
"type": "n8n-nodes-base.webhook",
"position": [
480,
-112
],
"webhookId": "81e240fc-d3fb-4ccd-b91a-0aacbf2d8f2a",
"parameters": {
"path": "81e240fc-d3fb-4ccd-b91a-0aacbf2d8f2a",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "fe90d72c-fef0-4646-8d07-f90851015ed0",
"name": "Webhook 응답 (VAPI)",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
816,
-112
],
"parameters": {
"options": {
"responseHeaders": {
"entries": [
{
"name": "Content-Type",
"value": "application/xml"
}
]
}
},
"respondWith": "text",
"responseBody": "=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n <Dial>\n <Sip>sip:15795503867@sip.vapi.ai</Sip>\n </Dial>\n</Response>\n"
},
"typeVersion": 1.4
},
{
"id": "2000941e-5340-4f44-91a2-4068a172f316",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-432
],
"parameters": {
"color": 4,
"width": 592,
"height": 768,
"content": "📅 Calendar MCP\nHandles Calendar actions:\n- Create\n- Fetch\n- Update\n- Delete\n"
},
"typeVersion": 1
},
{
"id": "e2af4a5c-aaac-4458-a26e-fda5db9c4fa5",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
64
],
"parameters": {
"color": 5,
"width": 496,
"height": 448,
"content": "📧 Gmail MCP\nSends confirmation/reminder emails\nbased on voice commands.\n"
},
"typeVersion": 1
},
{
"id": "68569b1b-a853-47f2-90b3-284594f44c53",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
-384
],
"parameters": {
"color": 6,
"width": 400,
"height": 656,
"content": "📚 Knowledge Base MCP\nOpenAI generates embeddings from content.\nSupabase Vector Store saves/retrieves data\nfor knowledge base queries.\n"
},
"typeVersion": 1
},
{
"id": "36ab17f2-52f8-401b-af07-419cc50ccb4e",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-592
],
"parameters": {
"color": 2,
"width": 640,
"height": 624,
"content": "## Entry Point – Incoming Webhook (VAPI)\n\nThis is the starting point of the workflow. \n- A WhatsApp message or voice input is received via Twilio. \n- Twilio routes the audio stream to VAPI through the TwiML app. \n- VAPI processes the voice command and decides which MCP Server (Calendar, Gmail, Knowledge Base) should handle the request. \n- The request is then passed into this webhook in n8n for execution. \n\n### Flow:\nWhatsApp → Twilio (TwiML app) → VAPI → n8n Incoming Webhook \n"
},
"typeVersion": 1
},
{
"id": "22d6f683-025c-4023-9151-c5ef3f9b0dc8",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-304
],
"parameters": {
"color": 3,
"width": 272,
"height": 336,
"content": "This webhook is triggered by VAPI when a WhatsApp voice command is received via Twilio. \nVAPI interprets the user’s request and forwards it here. \nFrom this point, the workflow decides which MCP server (Calendar, Gmail, Knowledge Base) should process the action.\n"
},
"typeVersion": 1
},
{
"id": "74243893-60e4-4289-a9d5-8c9f363b897d",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
-304
],
"parameters": {
"color": 3,
"width": 272,
"height": 336,
"content": "This node sends the processed response back to VAPI. \nIt ensures that the result of the MCP server execution (e.g., calendar update, email confirmation, knowledge base query) \nis returned to the user via WhatsApp.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "09fcb8e2-ec67-4f88-a908-d558030605fe",
"connections": {
"07c67c64-9390-472d-807c-3c0c4a0405a7": {
"ai_embedding": [
[
{
"node": "43b9c5a5-4d0b-4713-a9c5-ea00e24cc320",
"type": "ai_embedding",
"index": 0
}
]
]
},
"15ee6172-40e2-439b-bfce-a64850fdf4d1": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"d56e75ab-7086-45cb-bf2c-dca53cfbbe8d": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"e5a95d98-88ee-4557-84f7-ee3a4bf56ad1": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"43b9c5a5-4d0b-4713-a9c5-ea00e24cc320": {
"ai_tool": [
[
{
"node": "566c8afb-cb1b-4216-a543-5b26cb5182e8",
"type": "ai_tool",
"index": 0
}
]
]
},
"f22f3c2d-1e22-45d8-9cfd-8895733b862b": {
"ai_tool": [
[
{
"node": "45496f90-c8a7-40a5-bbe3-2f0b183828e4",
"type": "ai_tool",
"index": 0
}
]
]
},
"61ded9b5-737a-42bf-956e-60614c87fbe2": {
"main": [
[
{
"node": "fe90d72c-fef0-4646-8d07-f90851015ed0",
"type": "main",
"index": 0
}
]
]
},
"d8c9f9d7-1fb2-4293-b411-1d72afd03c63": {
"ai_tool": [
[
{
"node": "9ebb9d32-59ea-4f52-ba5a-f6a57356ac8d",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 기타, AI 챗봇, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
WhatsApp 텍스트 어시스턴트
OpenAI, 일정 및 이메일 통합을 사용하여 WhatsApp 고객 지원 로봇을 만듭니다.
Set
Twilio
Gmail Tool
+
Set
Twilio
Gmail Tool
27 노드Nabin Bhandari
기타
챗봇 웹훅
Gemini 채팅 인터페이스를 통합한 AI 기반 Gmail 및 캘린더 어시스턴트
Set
Webhook
Gmail Tool
+
Set
Webhook
Gmail Tool
19 노드Praneel S
기타
💥GPT-5와 ElevenLabs를 사용하여 고객 지원 AI 음성 어시스턴트 _ 비디오 구축
GPT-5, ElevenLabs과 캘린더 예약으로 고객 지원 음성 에이전트 생성
Webhook
Gmail Tool
Agent
+
Webhook
Gmail Tool
Agent
12 노드Dr. Firas
AI 챗봇
💥 ChatGPT-5를 사용하여 첫 번째 AI 대리인을 구축하세요
GPT-5, Google 캘린더와 스프레드시트를 사용하여 지식庫와 일정 계획 AI 어시스턴트를 생성합니다.
Gmail Tool
Agent
Google Sheets Tool
+
Gmail Tool
Agent
Google Sheets Tool
14 노드Dr. Firas
기타
음성 예약 도구
사용VAPI및Cal.com进行语音预约
Set
Switch
Webhook
+
Set
Switch
Webhook
18 노드Nabin Bhandari
지원 챗봇
기억, Google 스위트, 다양한 AI 연구 이미징을 통합한 WhatsApp 어시스턴트
기억, Google 패키지 및 다양한 AI 연구 이미징을 포함한 WhatsApp 어시스턴트 구축
If
Set
Code
+
If
Set
Code
71 노드Iniyavan JC
AI 챗봇