첫 번째 WhatsApp 채팅 로봇 구축
고급
이것은Sales, Building Blocks, AI분야의자동화 워크플로우로, 28개의 노드를 포함합니다.주로 Switch, WhatsApp, HttpRequest, ManualTrigger, Agent 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. WhatsApp 채팅 로봇을 최초로 구축
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (28)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9"
},
"nodes": [
{
"id": "77ee6494-4898-47dc-81d9-35daf6f0beea",
"name": "WhatsApp 트리거",
"type": "n8n-nodes-base.whatsAppTrigger",
"position": [
1360,
-280
],
"webhookId": "aaa71f03-f7af-4d18-8d9a-0afb86f1b554",
"parameters": {
"updates": [
"messages"
]
},
"credentials": {
"whatsAppTriggerApi": {
"id": "H3uYNtpeczKMqtYm",
"name": "WhatsApp OAuth account"
}
},
"typeVersion": 1
},
{
"id": "57210e27-1f89-465a-98cc-43f890a4bf58",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1960,
-200
],
"parameters": {
"model": "gpt-4o-2024-08-06",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "e1053235-0ade-4e36-9ad2-8b29c78fced8",
"name": "윈도우 버퍼 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
2080,
-200
],
"parameters": {
"sessionKey": "=whatsapp-75-{{ $json.messages[0].from }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.2
},
{
"id": "69f1b78b-7c93-4713-863a-27e04809996f",
"name": "벡터 저장소 도구",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
2200,
-200
],
"parameters": {
"name": "query_product_brochure",
"description": "Call this tool to query the product brochure. Valid for the year 2024."
},
"typeVersion": 1
},
{
"id": "170e8f7d-7e14-48dd-9f80-5352cc411fc1",
"name": "OpenAI 임베딩",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
2200,
80
],
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "ee78320b-d407-49e8-b4b8-417582a44709",
"name": "OpenAI 채팅 모델1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2440,
-60
],
"parameters": {
"model": "gpt-4o-2024-08-06",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "9dd89378-5acf-4ca6-8d84-e6e64254ed02",
"name": "'워크플로 테스트' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
-240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e68fc137-1bcb-43f0-b597-3ae07f380c15",
"name": "OpenAI1 임베딩",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
760,
-20
],
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "2d31e92b-18d4-4f6b-8cdb-bed0056d50d7",
"name": "기본 데이터 로더",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
900,
-20
],
"parameters": {
"options": {},
"jsonData": "={{ $('Extract from File').item.json.text }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "ca0c015e-fba2-4dca-b0fe-bac66681725a",
"name": "재귀 문자 텍스트 분할기",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
900,
100
],
"parameters": {
"options": {},
"chunkSize": 2000,
"chunkOverlap": {}
},
"typeVersion": 1
},
{
"id": "63abb6b2-b955-4e65-9c63-3211dca65613",
"name": "파일에서 추출",
"type": "n8n-nodes-base.extractFromFile",
"position": [
360,
-240
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "be2add9c-3670-4196-8c38-82742bf4f283",
"name": "제품 브로슈어 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
180,
-240
],
"parameters": {
"url": "https://usa.yamaha.com/files/download/brochure/1/1474881/Yamaha-Powered-Loudspeakers-brochure-2024-en-web.pdf",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "1ae5a311-36d7-4454-ab14-6788d1331780",
"name": "사용자에게 답장",
"type": "n8n-nodes-base.whatsApp",
"position": [
2820,
-280
],
"parameters": {
"textBody": "={{ $json.output }}",
"operation": "send",
"phoneNumberId": "477115632141067",
"requestOptions": {},
"additionalFields": {
"previewUrl": false
},
"recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}"
},
"credentials": {
"whatsAppApi": {
"id": "9SFJPeqrpChOkAmw",
"name": "WhatsApp account"
}
},
"typeVersion": 1
},
{
"id": "b6efba81-18b0-4378-bb91-51f39ca57f3e",
"name": "사용자에게 답장1",
"type": "n8n-nodes-base.whatsApp",
"position": [
1760,
80
],
"parameters": {
"textBody": "=I'm unable to process non-text messages. Please send only text messages. Thanks!",
"operation": "send",
"phoneNumberId": "477115632141067",
"requestOptions": {},
"additionalFields": {
"previewUrl": false
},
"recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}"
},
"credentials": {
"whatsAppApi": {
"id": "9SFJPeqrpChOkAmw",
"name": "WhatsApp account"
}
},
"typeVersion": 1
},
{
"id": "52decd86-ac6c-4d91-a938-86f93ec5f822",
"name": "제품 카탈로그",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
2200,
-60
],
"parameters": {
"memoryKey": "whatsapp-75"
},
"typeVersion": 1
},
{
"id": "6dd5a652-2464-4ab8-8e5f-568529299523",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-88.75,
-473.4375
],
"parameters": {
"color": 7,
"width": 640.4375,
"height": 434.6875,
"content": "## 1. Download Product Brochure PDF\n[Read more about the HTTP Request Tool](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest)\n\nImport your marketing PDF document to build your vector store. This will be used as the knowledgebase by the Sales AI Agent.\n\nFor this demonstration, we'll use the HTTP request node to import the YAMAHA POWERED LOUDSPEAKERS 2024 brochure ([Source](https://usa.yamaha.com/files/download/brochure/1/1474881/Yamaha-Powered-Loudspeakers-brochure-2024-en-web.pdf)) and an Extract from File node to extract the text contents. "
},
"typeVersion": 1
},
{
"id": "116663bc-d8d6-41a5-93dc-b219adbb2235",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
580,
-476
],
"parameters": {
"color": 7,
"width": 614.6875,
"height": 731.1875,
"content": "## 2. Create Product Brochure Vector Store\n[Read more about the In-Memory Vector Store](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n\nVector stores are powerful databases which serve the purpose of matching a user's questions to relevant parts of a document. By creating a vector store of our product catalog, we'll allow users to query using natural language.\n\nTo keep things simple, we'll use the **In-memory Vector Store** which comes built-in to n8n and doesn't require a separate service. For production deployments, I'd recommend replacing the in-memory vector store with either [Qdrant](https://qdrant.tech) or [Pinecone](https://pinecone.io)."
},
"typeVersion": 1
},
{
"id": "86bd5334-d735-4650-aeff-06230119d705",
"name": "제품 카탈로그 생성",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
760,
-200
],
"parameters": {
"mode": "insert",
"memoryKey": "whatsapp-75",
"clearStore": true
},
"typeVersion": 1
},
{
"id": "b8078b0d-cbd7-423f-bb30-13902988be38",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1254,
-552
],
"parameters": {
"color": 7,
"width": 546.6875,
"height": 484.1875,
"content": "## 3. Use the WhatsApp Trigger\n[Learn more about the WhatsApp Trigger](https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.whatsapptrigger/)\n\nThe WhatsApp Trigger allows you to receive incoming WhatsApp messages from customers. It requires a bit of setup so remember to follow the documentation carefully! Once ready however, it's quite easy to build powerful workflows which are easily accessible to users.\n\nNote that WhatsApp can send many message types such as audio and video so in this demonstration, we'll filter them out and just accept the text messages."
},
"typeVersion": 1
},
{
"id": "5bf7ed07-282b-4198-aa90-3e5ae5180404",
"name": "스티커 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1640,
280
],
"parameters": {
"width": 338,
"height": 92,
"content": "### Want to handle all message types?\nCheck out my other WhatsApp template in my creator page! https://n8n.io/creators/jimleuk/"
},
"typeVersion": 1
},
{
"id": "a3661b59-25d2-446e-8462-32b4d692b69d",
"name": "스티커 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1640,
-40
],
"parameters": {
"color": 7,
"width": 337.6875,
"height": 311.1875,
"content": "### 3a. Handle Unsupported Message Types\nFor non-text messages, we'll just reply with a simple message to inform the sender."
},
"typeVersion": 1
},
{
"id": "ea3c9ee1-505a-40e7-82fe-9169bdbb80af",
"name": "스티커 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
-682.5
],
"parameters": {
"color": 7,
"width": 746.6875,
"height": 929.1875,
"content": "## 4. Sales AI Agent Responds To Customers\n[Learn more about using AI Agents](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nn8n's AI agents are powerful nodes which make it incredibly easy to use state-of-the-art AI in your workflows. Not only do they have the ability to remember conversations per individual customer but also tap into resources such as our product catalogue vector store to pull factual information and data for every question.\n\nIn this demonstration, we use an AI agent which is directed to help the user navigate the product brochure. A Chat memory subnode is attached to identify and keep track of the customer session. A Vector store tool is added to allow the Agent to tap into the product catalogue knowledgebase we built earlier."
},
"typeVersion": 1
},
{
"id": "5c72df8d-bca1-4634-b1ed-61ffec8bd103",
"name": "스티커 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2620,
-560
],
"parameters": {
"color": 7,
"width": 495.4375,
"height": 484.1875,
"content": "## 5. Repond to WhatsApp User\n[Learn more about the WhatsApp Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.whatsapp/)\n\nThe WhatsApp node is the go-to if you want to interact with WhatsApp users. With this node, you can send text, images, audio and video messages as well as use your WhatsApp message templates.\n\nHere, we'll keep it simple by replying with a text message which is the output of the AI agent."
},
"typeVersion": 1
},
{
"id": "48ec809f-ca0e-4052-b403-9ad7077b3fff",
"name": "스티커 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-620
],
"parameters": {
"width": 401.25,
"height": 582.6283033962263,
"content": "## Try It Out!\n\n### This n8n template builds a simple WhatsApp chabot acting as a Sales Agent. The Agent is backed by a product catalog vector store to better answer user's questions.\n\n* This template is in 2 parts: creating the product catalog vector store and building the WhatsApp AI chatbot.\n* A product brochure is imported via HTTP request node and its text contents extracted.\n* The text contents are then uploaded to the in-memory vector store to build a knowledgebase for the chatbot.\n* A WhatsApp trigger is used to capture messages from customers where non-text messages are filtered out.\n* The customer's message is sent to the AI Agent which queries the product catalogue using the vector store tool.\n* The Agent's response is sent back to the user via the WhatsApp node.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!"
},
"typeVersion": 1
},
{
"id": "87cf9b41-66de-49a7-aeb0-c8809191b5a0",
"name": "메시지 유형 처리",
"type": "n8n-nodes-base.switch",
"position": [
1560,
-280
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Supported",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.messages[0].type }}",
"rightValue": "text"
}
]
},
"renameOutput": true
},
{
"outputKey": "Not Supported",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "89971d8c-a386-4e77-8f6c-f491a8e84cb6",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.messages[0].type }}",
"rightValue": "text"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "e52f0a50-0c34-4c4a-b493-4c42ba112277",
"name": "스티커 노트8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-20
],
"parameters": {
"color": 5,
"width": 345.10906976744184,
"height": 114.53583720930231,
"content": "### You only have to run this part once!\nRun this step to populate our product catalogue vector. Run again if you want to update the vector store with a new version."
},
"typeVersion": 1
},
{
"id": "c1a7d6d1-191e-4343-af9f-f2c9eb4ecf49",
"name": "스티커 노트9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
-40
],
"parameters": {
"color": 5,
"width": 364.6293255813954,
"height": 107.02804651162779,
"content": "### Activate your workflow to use!\nTo start using the WhatsApp chatbot, you'll need to activate the workflow. If you are self-hosting ensure WhatsApp is able to connect to your server."
},
"typeVersion": 1
},
{
"id": "a36524d0-22a6-48cc-93fe-b4571cec428a",
"name": "AI 영업 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1960,
-400
],
"parameters": {
"text": "={{ $json.messages[0].text.body }}",
"options": {
"systemMessage": "You are an assistant working for a company who sells Yamaha Powered Loudspeakers and helping the user navigate the product catalog for the year 2024. Your goal is not to facilitate a sale but if the user enquires, direct them to the appropriate website, url or contact information.\n\nDo your best to answer any questions factually. If you don't know the answer or unable to obtain the information from the datastore, then tell the user so."
},
"promptType": "define"
},
"typeVersion": 1.6
}
],
"pinData": {},
"connections": {
"a36524d0-22a6-48cc-93fe-b4571cec428a": {
"main": [
[
{
"node": "1ae5a311-36d7-4454-ab14-6788d1331780",
"type": "main",
"index": 0
}
]
]
},
"77ee6494-4898-47dc-81d9-35daf6f0beea": {
"main": [
[
{
"node": "87cf9b41-66de-49a7-aeb0-c8809191b5a0",
"type": "main",
"index": 0
}
]
]
},
"170e8f7d-7e14-48dd-9f80-5352cc411fc1": {
"ai_embedding": [
[
{
"node": "52decd86-ac6c-4d91-a938-86f93ec5f822",
"type": "ai_embedding",
"index": 0
}
]
]
},
"63abb6b2-b955-4e65-9c63-3211dca65613": {
"main": [
[
{
"node": "86bd5334-d735-4650-aeff-06230119d705",
"type": "main",
"index": 0
}
]
]
},
"57210e27-1f89-465a-98cc-43f890a4bf58": {
"ai_languageModel": [
[
{
"node": "a36524d0-22a6-48cc-93fe-b4571cec428a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"52decd86-ac6c-4d91-a938-86f93ec5f822": {
"ai_vectorStore": [
[
{
"node": "69f1b78b-7c93-4713-863a-27e04809996f",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"69f1b78b-7c93-4713-863a-27e04809996f": {
"ai_tool": [
[
{
"node": "a36524d0-22a6-48cc-93fe-b4571cec428a",
"type": "ai_tool",
"index": 0
}
]
]
},
"e68fc137-1bcb-43f0-b597-3ae07f380c15": {
"ai_embedding": [
[
{
"node": "86bd5334-d735-4650-aeff-06230119d705",
"type": "ai_embedding",
"index": 0
}
]
]
},
"ee78320b-d407-49e8-b4b8-417582a44709": {
"ai_languageModel": [
[
{
"node": "69f1b78b-7c93-4713-863a-27e04809996f",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2d31e92b-18d4-4f6b-8cdb-bed0056d50d7": {
"ai_document": [
[
{
"node": "86bd5334-d735-4650-aeff-06230119d705",
"type": "ai_document",
"index": 0
}
]
]
},
"87cf9b41-66de-49a7-aeb0-c8809191b5a0": {
"main": [
[
{
"node": "a36524d0-22a6-48cc-93fe-b4571cec428a",
"type": "main",
"index": 0
}
],
[
{
"node": "b6efba81-18b0-4378-bb91-51f39ca57f3e",
"type": "main",
"index": 0
}
]
]
},
"e1053235-0ade-4e36-9ad2-8b29c78fced8": {
"ai_memory": [
[
{
"node": "a36524d0-22a6-48cc-93fe-b4571cec428a",
"type": "ai_memory",
"index": 0
}
]
]
},
"be2add9c-3670-4196-8c38-82742bf4f283": {
"main": [
[
{
"node": "63abb6b2-b955-4e65-9c63-3211dca65613",
"type": "main",
"index": 0
}
]
]
},
"ca0c015e-fba2-4dca-b0fe-bac66681725a": {
"ai_textSplitter": [
[
{
"node": "2d31e92b-18d4-4f6b-8cdb-bed0056d50d7",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"9dd89378-5acf-4ca6-8d84-e6e64254ed02": {
"main": [
[
{
"node": "be2add9c-3670-4196-8c38-82742bf4f283",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 영업, 빌딩 블록, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
텍스트, 음성, 이미지 및 PDF를 지원하는 AI 기반 WhatsApp 챗봇(RAG)
텍스트, 음성, 이미지 및 PDF 지원 AI 기반 WhatsApp 챗봇(RAG)
Set
Code
Switch
+
Set
Code
Switch
35 노드NovaNode
엔지니어링
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
Qdrant, Mistral.ai, OpenAI를 사용하여 세금 법률 어시스턴트를 구축합니다.
Qdrant, Mistral.ai, OpenAI를 사용하여 세금 법률 어시스턴트를 구축합니다.
Set
Wait
Filter
+
Set
Wait
Filter
38 노드Jimleuk
금융
AI 기반 WhatsApp 채팅 로봇
사용법 GPT-4o-mini와 MongoDB를 사용하여 문서에 대한 RAG 추동 WhatsApp 채팅 로봇 구축
Set
Code
Switch
+
Set
Code
Switch
35 노드Muhammad Shahzaib Shahid
지원 챗봇
OpenAI를 사용하여 RAG 응답 정확성을 평가합니다:문서 기본 지표
OpenAI를 사용하여 RAG 응답 정확성을 평가: 문서 기본 지표
Set
Evaluation
Http Request
+
Set
Evaluation
Http Request
25 노드Jimleuk
엔지니어링
Supabase 스토리지 내 파일과 대화하는 AI 에이전트
与Supabase存储中文件对话의AI스마트体
If
Merge
Switch
+
If
Merge
Switch
33 노드Mark Shcherbakov
엔지니어링
워크플로우 정보
난이도
고급
노드 수28
카테고리3
노드 유형15
저자
Jimleuk
@jimleukFreelance consultant based in the UK specialising in AI-powered automations. I work with select clients tackling their most challenging projects. For business enquiries, send me an email at hello@jimle.uk LinkedIn: https://www.linkedin.com/in/jimleuk/ X/Twitter: https://x.com/jimle_uk
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유