最初のWhatsAppチャットボットを構築
上級
これはSales, Building Blocks, AI分野の自動化ワークフローで、28個のノードを含みます。主にSwitch, WhatsApp, HttpRequest, ManualTrigger, Agentなどのノードを使用、AI技術を活用したスマート自動化を実現。 最初のWhatsAppチャットボットを構築する
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
- •OpenAI API Key
使用ノード (28)
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9"
},
"nodes": [
{
"id": "77ee6494-4898-47dc-81d9-35daf6f0beea",
"name": "WhatsApp Trigger",
"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": "ベクトルストア Tool",
"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": "クリック時 ‘Test workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
-240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e68fc137-1bcb-43f0-b597-3ae07f380c15",
"name": "OpenAI 埋め込み1",
"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": "Default Data Loader",
"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": "get Product Brochure",
"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": "Reply To User",
"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": "Reply To User1",
"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": "Product Catalogue",
"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": "Create Product Catalogue",
"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": "Handle Message Types",
"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 Sales エージェント",
"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": {
"AI Sales Agent": {
"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
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "52decd86-ac6c-4d91-a938-86f93ec5f822",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "86bd5334-d735-4650-aeff-06230119d705",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Sales Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"52decd86-ac6c-4d91-a938-86f93ec5f822": {
"ai_vectorStore": [
[
{
"node": "Vector Store Tool",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"Vector Store Tool": {
"ai_tool": [
[
{
"node": "AI Sales Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "86bd5334-d735-4650-aeff-06230119d705",
"type": "ai_embedding",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Vector Store Tool",
"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": "AI Sales Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "b6efba81-18b0-4378-bb91-51f39ca57f3e",
"type": "main",
"index": 0
}
]
]
},
"Window Buffer Memory": {
"ai_memory": [
[
{
"node": "AI Sales Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"be2add9c-3670-4196-8c38-82742bf4f283": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Recursive Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "2d31e92b-18d4-4f6b-8cdb-bed0056d50d7",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "be2add9c-3670-4196-8c38-82742bf4f283",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - 営業, ビルディングブロック, 人工知能
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
テキスト、音声、画像、PDF をサポートする RAG を備えた AI 駆動型 WhatsApp チャットボット
テキスト、音声、画像、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チャットボット
ドキュメント用のRAG駆動 WhatsApp チャットボットを構築:GPT-4o-mini と MongoDB を使用
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で表示 →
このワークフローを共有