WhatsApp AI 어시스턴트 및 Google 문서, Gemini를 사용한 고객 지원 자동 처리
중급
이것은Support Chatbot, AI Chatbot분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 If, Code, Webhook, DateTime, GoogleDocs 등의 노드를 사용하며. WhatsApp AI 어시스턴트, Google 문서 및 Gemini를 사용한 고객 지원 자동 처리
사전 요구사항
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •Google Sheets API 인증 정보
- •Google Gemini API Key
사용된 노드 (14)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "e42ff03bc515cd7f9edc081a89072ca1985132e0d4a1cdabe6c26855a252768f",
"templateId": "4966"
},
"nodes": [
{
"id": "02f761e2-83c4-488b-91f4-f4ae11b15c00",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"maxTries": 5,
"position": [
1420,
680
],
"parameters": {
"text": "={{ $json.finalPrompt }}\n\n\n",
"options": {
"systemMessage": "You are [Company]’s support assistant for Black Ball Sporting Club.\n• Do NOT include any preamble such as “Based on the document you provided” or “Okay, [Name].” Just jump straight to the answer.\n* don't ever start your response with\"based on the document you provided\" , or \"According to the document\", don't mention any documents at all , also don't mention today's date unless you asked\n"
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": false,
"typeVersion": 1.7,
"alwaysOutputData": true,
"waitBetweenTries": null
},
{
"id": "57ecb397-5772-4db3-8a5a-ce28a4e01e63",
"name": "답변 정리",
"type": "n8n-nodes-base.code",
"position": [
2680,
580
],
"parameters": {
"jsCode": "// cleanAnswer – run once per item\nlet txt = $('AI Agent').first().json.output || '';\n\n// 1. Remove bold / italic / strike markers\ntxt = txt.replace(/[*_~]+/g, '');\n\n// 2. Convert [Texto](https://url) → Texto https://url\ntxt = txt.replace(/\\[([^\\]]+)\\]\\((https?:\\/\\/[^\\s)]+)\\)/g, '$1 $2');\n\n// 3. Collapse 3+ blank lines\ntxt = txt.replace(/\\n{3,}/g, '\\n\\n').trim();\n\n// 4. Remove the unwanted source-reference preamble\ntxt = txt.replace(/^.*?based on the document you provided[,:]?\\s*/i, '');\n\nreturn [{ json: { answer: txt } }];\n"
},
"typeVersion": 2
},
{
"id": "d70cf8b1-8c24-44f2-9b37-5205b130cff2",
"name": "24시간 시간대 확인",
"type": "n8n-nodes-base.code",
"position": [
2240,
680
],
"parameters": {
"jsCode": "// within24h? – run once per item\n// Meta (WhatsApp) timestamp arrives as seconds since epoch\nconst lastTs = Number($('when message received').first().json.messages[0].timestamp) * 1000; // → ms\nconst withinWindow = Date.now() - lastTs < 24 * 60 * 60 * 1000;\n\nreturn [{ json: { withinWindow, answer: $json.answer, userId: $json.userId } }];"
},
"typeVersion": 2
},
{
"id": "66c83de5-413a-440f-804e-15b137beb873",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
2460,
680
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d33e218e-a49a-49ed-9c6b-55b9ea0b0dbb",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.withinWindow }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c9d931c3-d88c-4d15-b8fe-787327c0200a",
"name": "Google Gemini 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1380,
900
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-flash-preview-04-17-thinking"
},
"typeVersion": 1
},
{
"id": "df46b528-cbbd-49c2-9b83-4402ef0c8ac7",
"name": "프롬프트 준비",
"type": "n8n-nodes-base.aiTransform",
"position": [
1200,
680
],
"parameters": {
"jsCode": "const googleDocs = $input.all().map((item) => item.json);\nconst whatsappMessages = $(\"when message received\")\n .all()\n .map((item) => item.json);\n\nconst date = new Date();\nconst formattedDate = `${date.getMonth() + 1} ${date.getDate()}, ${date.getFullYear()}`;\n\nconst docText = googleDocs[0].content.split(\"\\n\").join(\" \");\n\nconst body = whatsappMessages[0].messages[0].text.body;\n\nconst finalPrompt = `Today's date is: ${formattedDate}\\n\\n${docText}\\n\\nUser's question:\\n${body}`;\n\nreturn { finalPrompt };\n",
"instructions": "Write code to:\n• Get today’s date formatted “Month Day, Year”\n• Extract the Google Doc’s plain text by joining its body.content textRuns\n• Extract the WhatsApp message from messages[0].text.body\n• Build a field finalPrompt exactly as:\n\nvbnet\nCopy\nEdit\nToday's date is: [date]\n\n[doc text]\n\nUser's question:\n[body]\n• Return finalPrompt only.",
"codeGeneratedForPrompt": "Write code to:\n• Get today’s date formatted “Month Day, Year”\n• Extract the Google Doc’s plain text by joining its body.content textRuns\n• Extract the WhatsApp message from messages[0].text.body\n• Build a field finalPrompt exactly as:\n\nvbnet\nCopy\nEdit\nToday's date is: [date]\n\n[doc text]\n\nUser's question:\n[body]\n• Return finalPrompt only."
},
"typeVersion": 1
},
{
"id": "19de46dc-add8-4cad-81a9-6e5b341f1f33",
"name": "Google 스프레드시트",
"type": "n8n-nodes-base.googleSheets",
"position": [
2020,
680
],
"parameters": {},
"credentials": {},
"typeVersion": 4.6
},
{
"id": "b622392e-65dc-4d27-a5f9-d27ea57aae61",
"name": "날짜 및 시간",
"type": "n8n-nodes-base.dateTime",
"position": [
1800,
680
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "a6ae2118-9d68-4fb0-b975-b9c6d4170e00",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
240
],
"parameters": {
"height": 1520,
"content": "# WhatsApp AI Assistant \n\n**No Business Verification Required\nInstant activation with full WhatsApp Group support.**\n\n**Instantly answer WhatsApp questions using your internal documents. No AI training required.**\n\n*Skip the complex WhatsApp Business Cloud API setup - WhapAround solve that problem for you.*\n\n## How It Works\nYour assistant reads a live Google Doc, processes incoming WhatsApp messages, generates AI responses using OpenAI/Gemini, and sends replies automatically.\n\n## Requirements\n- **WhapAround Account**: https://whaparound.pro/ (eliminates need for WhatsApp Business Cloud API configuration)\n- **Google Doc** with your business content\n- **API Key**: OpenAI or Gemini\n- **Database** (optional): PostgreSQL memory setup - https://www.youtube.com/watch?v=JjBofKJnYIU\n\n## Quick Setup\n1. Add your Google Doc ID to the Docs node\n2. Connect WhatsApp webhook (follow provided guidance)\n3. Map the message field\n4. Connect your AI provider (OpenAI/Gemini)\n5. Test with a live message\n\n## Professional Setup Services\nNeed help with implementation? We provide:\n- **Easy WhatsApp connection** (bypass WhatsApp Business Cloud API complexity entirely)\n- Google OAuth & document structure\n- AI model configuration\n- Custom branding & tone\n- Logging & escalation systems\n\n**Contact**: andrea@jamot.pro | WhatsApp: +16508665016"
},
"typeVersion": 1
},
{
"id": "8f4a786b-fc6d-4e2f-b8df-c605475afc81",
"name": "회사 지식",
"type": "n8n-nodes-base.googleDocs",
"position": [
980,
680
],
"parameters": {
"operation": "get",
"documentURL": "=1Uv1WYCcXNlp-jaeJ7-3MNxWYfPj-wcYnJv4_colXSvk"
},
"typeVersion": 2
},
{
"id": "a6de89dd-ada0-432c-9f8e-ece38264ad81",
"name": "단순 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
1500,
900
],
"parameters": {
"sessionKey": "={{ $('when message received').item.json.contacts[0].wa_id }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "bc950073-fd3c-45e6-bb14-d2d361418725",
"name": "WhapAround - 수신 대기",
"type": "n8n-nodes-base.webhook",
"position": [
720,
680
],
"webhookId": "30720c7c-18f4-4815-be3b-03343d53ee45",
"parameters": {
"path": "30720c7c-18f4-4815-be3b-03343d53ee45",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "ce59dedc-9e76-4d68-a3d7-721a58593c92",
"name": "WhapAround - 메시지 응답",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2920,
580
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "b88bce3f-8aa1-4cc1-9d0f-31f229cc19de",
"name": "WhapAround - 템플릿 응답",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2700,
800
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"66c83de5-413a-440f-804e-15b137beb873": {
"main": [
[
{
"node": "57ecb397-5772-4db3-8a5a-ce28a4e01e63",
"type": "main",
"index": 0
}
],
[
{
"node": "b88bce3f-8aa1-4cc1-9d0f-31f229cc19de",
"type": "main",
"index": 0
}
]
]
},
"02f761e2-83c4-488b-91f4-f4ae11b15c00": {
"main": [
[
{
"node": "b622392e-65dc-4d27-a5f9-d27ea57aae61",
"type": "main",
"index": 0
}
]
]
},
"b622392e-65dc-4d27-a5f9-d27ea57aae61": {
"main": [
[
{
"node": "19de46dc-add8-4cad-81a9-6e5b341f1f33",
"type": "main",
"index": 0
}
]
]
},
"57ecb397-5772-4db3-8a5a-ce28a4e01e63": {
"main": [
[
{
"node": "ce59dedc-9e76-4d68-a3d7-721a58593c92",
"type": "main",
"index": 0
}
]
]
},
"19de46dc-add8-4cad-81a9-6e5b341f1f33": {
"main": [
[
{
"node": "d70cf8b1-8c24-44f2-9b37-5205b130cff2",
"type": "main",
"index": 0
}
]
]
},
"a6de89dd-ada0-432c-9f8e-ece38264ad81": {
"ai_memory": [
[
{
"node": "02f761e2-83c4-488b-91f4-f4ae11b15c00",
"type": "ai_memory",
"index": 0
}
]
]
},
"df46b528-cbbd-49c2-9b83-4402ef0c8ac7": {
"main": [
[
{
"node": "02f761e2-83c4-488b-91f4-f4ae11b15c00",
"type": "main",
"index": 0
}
]
]
},
"8f4a786b-fc6d-4e2f-b8df-c605475afc81": {
"main": [
[
{
"node": "df46b528-cbbd-49c2-9b83-4402ef0c8ac7",
"type": "main",
"index": 0
}
]
]
},
"d70cf8b1-8c24-44f2-9b37-5205b130cff2": {
"main": [
[
{
"node": "66c83de5-413a-440f-804e-15b137beb873",
"type": "main",
"index": 0
}
]
]
},
"bc950073-fd3c-45e6-bb14-d2d361418725": {
"main": [
[
{
"node": "8f4a786b-fc6d-4e2f-b8df-c605475afc81",
"type": "main",
"index": 0
}
]
]
},
"c9d931c3-d88c-4d15-b8fe-787327c0200a": {
"ai_languageModel": [
[
{
"node": "02f761e2-83c4-488b-91f4-f4ae11b15c00",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 지원 챗봇, AI 챗봇
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
기술 레이더
사용SQL데이터库、RAG및路由에이전트构建AI驱动의技术雷达顾问
If
Code
Cron
+
If
Code
Cron
53 노드Sean Lon
엔지니어링
WhatsApp 대리인 커뮤니티
Google Docs 지식庫와 Gemini AI를 사용한 고객 지원 WhatsApp 로봇
If
Code
Date Time
+
If
Code
Date Time
14 노드Tharwat Mohamed
지원
AI 기반 음식 주문 처리 시스템, Facebook Messenger, Google 스프레드시트 및 캘린더 통합
AI 기반 음식 주문 처리 시스템, Facebook Messenger, Google 스프레드시트 및 캘린더 통합
If
Code
Webhook
+
If
Code
Webhook
26 노드Hans Wilhelm Radam
리드 육성
통용 AI 어시스턴트
Webhook 지원 대화 어시스턴트를 만듭니다. (Google Gemini와 세션 기억)
Webhook
Agent
Respond To Webhook
+
Webhook
Agent
Respond To Webhook
10 노드David Olusola
지원 챗봇
AI 추동 페이스북 페이지 지원 챗봇: 자동 응답 및 지능형 고객 처리
GPT-4.1의 Facebook 메신저 채팅 로봇을 사용하여 인공지능 업그레이드 지원
If
Set
Wait
+
If
Set
Wait
32 노드SpaGreen Creative
지원 챗봇