WhatsApp顧客支援を自動化:音声文字起こし、FAQ、予約スケジュールも含む
これはMiscellaneous, AI Chatbot, Multimodal AI分野の自動化ワークフローで、23個のノードを含みます。主にIf, Set, Switch, WhatsApp, HttpRequestなどのノードを使用。 WhatsApp カスタマーサポートを自動化(音声文字起こし、FAQ、予約調整込み)
- •ターゲットAPIの認証情報が必要な場合あり
- •OpenAI API Key
- •Google Sheets API認証情報
- •Google Gemini API Key
使用ノード (23)
{
"meta": {
"instanceId": "04c7c3f1743831184e4a6edaf1f906dbab0c745cc98b8af3ef7660bbefe74cb4",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "93118333-81b4-48a6-b5e4-ccc1eb2915df",
"name": "WhatsApp Message Received",
"type": "n8n-nodes-base.whatsAppTrigger",
"position": [
-592,
0
],
"webhookId": "190af2b7-6938-422f-8c6b-2e13e421b3e6",
"parameters": {
"options": {
"messageStatusUpdates": [
"all"
]
},
"updates": [
"messages"
]
},
"credentials": {
"whatsAppTriggerApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"id": "c2db53c3-7a90-444a-a785-a439ef835434",
"name": "操作なし, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-416,
144
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c528b6af-a39d-4e86-9542-1c1dd066af22",
"name": "Is Message?",
"type": "n8n-nodes-base.if",
"position": [
-416,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0655157c-cac4-4993-af22-d167b2343297",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ !!$json.messages?.[0]?.from }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4c6e405c-53f8-477d-a55a-9fdc3ae7fbaf",
"name": "Transcribe audio",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
320,
-32
],
"parameters": {
"options": {},
"resource": "audio",
"operation": "transcribe"
},
"credentials": {
"openAiApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1.8
},
{
"id": "df6ac069-fe1e-41d3-a872-571bae411220",
"name": "Download Voice",
"type": "n8n-nodes-base.whatsApp",
"position": [
0,
-32
],
"webhookId": "8b4c0792-1956-4cf3-b6fb-390606d3e028",
"parameters": {
"resource": "media",
"operation": "mediaUrlGet",
"mediaGetId": "={{ $json.messages[0].audio.id }}"
},
"credentials": {
"whatsAppApi": {
"id": " ",
"name": " "
}
},
"typeVersion": 1
},
{
"id": "8f30d58e-2eb3-47d7-b39f-92b85678b962",
"name": "Get Audio",
"type": "n8n-nodes-base.httpRequest",
"position": [
160,
-32
],
"parameters": {
"url": "={{ $json.url }}",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "whatsAppApi"
},
"credentials": {
"whatsAppApi": {
"id": " ",
"name": " "
}
},
"typeVersion": 4.2
},
{
"id": "4090b5c6-fa50-4350-8f29-c18be5aea6f0",
"name": "get_schedule",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
1168,
224
],
"parameters": {
"limit": 3,
"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": "your.email@gmail.com",
"cachedResultName": "your.email@gmail.com"
},
"operation": "getAll"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "",
"name": ""
}
},
"typeVersion": 1.3
},
{
"id": "85f332ff-cda7-43c1-9042-3a601d96075d",
"name": "ai_memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
720,
32
],
"parameters": {
"sessionKey": "={{ $json.chat_id }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "dc0b8085-4b5b-4ff9-aaf2-99c291caa1d4",
"name": "set_appointment",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
1408,
224
],
"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": "your.email@gmail.com",
"cachedResultName": "your.email@gmail.com"
},
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "",
"name": ""
}
},
"typeVersion": 1.3
},
{
"id": "0efd193c-a796-4ca1-905b-a3bdd6aac5e2",
"name": "Customer Service エージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
720,
-160
],
"parameters": {
"text": "={{ $json.text }}",
"options": {
"systemMessage": "=**System Prompt for WhatsApp Customer Service Bot**\n\nYou are a helpful and professional **WhatsApp customer service assistant**.\nYou always respond politely, concisely, and in a friendly tone.\nYou can answer FAQs, provide service information, and schedule appointments.\nYou must always use the provided tools to complete tasks. Do not invent answers.\n\n### Tools you must use:\n\n1. **faq_base**\n * Retrieves FAQs from a Google Sheet.\n * Returns a table with: `id | question | answer`.\n * Use when the user asks a general or frequently asked question.\n * Your job: search for the closest matching question and return the most relevant answer.\n\n2. **get_services**\n * Retrieves service information from a Google Sheet.\n * Returns a table with: `id | service_name | service_description | price`.\n * Use when the user asks about services, details, or prices.\n\n3. **get_schedule**\n * Checks Google Calendar for available time slots.\n * Input: service type, preferred day/time.\n * Returns 3 available slot options.\n * Ask the user to choose one.\n\n4. **set_appointment**\n * Books the confirmed appointment in Google Calendar.\n * Input: chosen service, date/time, and customer details (name, email, phone).\n\n5. **agent_reply**\n * Sends messages back to the user on WhatsApp.\n * Always use this tool to answer back to the user.\n\n### Rules of Behavior\n\n* Always use `agent_reply` to send every response.\n* Never make up answers — always rely on the tools.\n* If the user’s request is unclear, ask clarifying questions.\n* For FAQs: query `faq_base`.\n* For service details: query `get_services`.\n* For scheduling:\n\n 1. Ask the user which service they want.\n 2. Ask for preferred day and time.\n 3. Call `get_schedule` and show 3 options.\n 4. Collect name, email, phone number.\n 5. Call `set_appointment`.\n 6. Confirm booking with the user.\n"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "3d698916-6647-4f37-8d25-14d5f6b8ef51",
"name": "faq_base",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
672,
224
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "FAQ"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1YEf9xuQGoOFKOxiTHDCJSz-m-Oke-SPj8dY6Nd4Np4c",
"cachedResultUrl": "",
"cachedResultName": "Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": ""
}
},
"typeVersion": 4.7
},
{
"id": "24d7069b-7738-47cd-8932-c557676fc9c2",
"name": "エージェント Context",
"type": "n8n-nodes-base.set",
"position": [
544,
-160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7182b6f8-b1b2-4dd8-a5a0-d0c820816767",
"name": "chat_id",
"type": "string",
"value": "={{ $('WhatsApp Message Received').item.json.metadata.phone_number_id }}"
},
{
"id": "433cf6ab-8939-412b-aa92-6fca6af534e9",
"name": "from",
"type": "string",
"value": "={{ $('WhatsApp Message Received').item.json.messages[0].from }}"
},
{
"id": "f19e6d2a-6ffa-41e3-8ff3-44b70976d0d4",
"name": "text",
"type": "string",
"value": "={{ $json.text || $('WhatsApp Message Received').item.json.messages[0]?.text?.body || ''}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9e7842c0-de0f-4aac-a830-bc70a4e4b614",
"name": "Chat Router",
"type": "n8n-nodes-base.switch",
"position": [
-208,
-144
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a561aab7-4c3b-4c96-9bb7-078281b5c7d5",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.messages[0].type }}",
"rightValue": "text"
}
]
},
"renameOutput": true
},
{
"outputKey": "voice",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b7f1055d-6651-416f-b0cd-c46e003d4f3a",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.messages[0].type }}",
"rightValue": "audio"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "8fb27413-ab5f-4757-afe8-1df81dcf578d",
"name": "get_services",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
928,
224
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1356596420,
"cachedResultUrl": "",
"cachedResultName": "SERVICES"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1YEf9xuQGoOFKOxiTHDCJSz-m-Oke-SPj8dY6Nd4Np4c",
"cachedResultUrl": "",
"cachedResultName": "Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": ""
}
},
"typeVersion": 4.7
},
{
"id": "b83be440-9e12-44fd-b003-7526dd835905",
"name": "ai_chat",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
608,
32
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"id": "ef0a1451-f68b-40f5-a7d6-c0a0fa4ea87d",
"name": "Send message",
"type": "n8n-nodes-base.whatsApp",
"position": [
1360,
-160
],
"webhookId": "9a7a2303-94a0-41d3-bd40-5bfb3dfa3080",
"parameters": {
"textBody": "={{ $json.output }}",
"operation": "send",
"phoneNumberId": "={{ $('Agent Context').item.json.chat_id }}",
"additionalFields": {},
"recipientPhoneNumber": "={{ $('Agent Context').item.json.from }}"
},
"credentials": {
"whatsAppApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"id": "cb3bc335-7def-4ed5-962d-8dcd33e383f6",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-640
],
"parameters": {
"width": 864,
"height": 608,
"content": "## WhatsApp customer service bot with FAQ and appointment scheduling\n\n### Who’s it for\nThis template is designed for businesses that provide customer support and appointment-based services over WhatsApp. It’s ideal for service providers (e.g., clinics, salons, repair shops, consultants) that want to automate FAQs, share service information, and schedule appointments without manual effort.\n\n### How it works\n- Answers FAQs by querying a Google Sheet knowledge base.\n- Provides service information (name, description, price) from a Google Sheet.\n- Schedules appointments by:\n 1. Asking which service the customer wants.\n 2. Collecting preferred day and time.\n 3. Checking Google Calendar for availability.\n 4. Offering 3 slots and letting the customer choose.\n 5. Collecting name, email, and phone.\n 6. Creating the appointment in Google Calendar.\n- Sends all replies through WhatsApp.\n\n### Requirements\n- Google Sheets (for FAQs and Services)\n- Google Calendar\n- WhatsApp integration in n8n\n"
},
"typeVersion": 1
},
{
"id": "cbd8557c-b7cf-4c3b-819f-185627c444c9",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
256
],
"parameters": {
"color": 5,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n## FAQ Handling\nThis step checks the FAQ Google Sheet (columns: id | question | answer). \nIt retrieves the closest match to the customer’s question and returns the answer.\n"
},
"typeVersion": 1
},
{
"id": "1f6d9f0f-6bfb-4b4d-ae94-5af40e4c395e",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
256
],
"parameters": {
"color": 5,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n## Service Information\nThis step looks up the Services Google Sheet (columns: id | service_name | service_description | price). \nIt provides details about available services and pricing.\n"
},
"typeVersion": 1
},
{
"id": "2738b689-a5ab-4e15-bf33-c133cc07dc98",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
256
],
"parameters": {
"color": 6,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n## Schedule Availability\nThis step asks the customer for their preferred service, day, and time. \nIt then queries Google Calendar for available slots and returns 3 options.\n"
},
"typeVersion": 1
},
{
"id": "796d6a12-5046-4d6a-aae2-b659d7bebe30",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1360,
256
],
"parameters": {
"color": 6,
"width": 224,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n## Appointment Confirmation\nOnce the customer selects a slot, we collect their name, email, and phone number. \nThen, we create a Google Calendar event with this info using the set_appointment node.\n"
},
"typeVersion": 1
},
{
"id": "a795a3d0-5f77-46ed-af14-8c68c057c88c",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1248,
-336
],
"parameters": {
"color": 4,
"width": 320,
"height": 336,
"content": "## WhatsApp Replies\nAll communication with the user is done through the agent_reply node (WhatsApp integration). \nThis ensures the customer gets confirmations, slot options, and service details directly in chat.\n"
},
"typeVersion": 1
},
{
"id": "beef1f37-e019-49f3-a64b-944b3a448fe0",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-48
],
"parameters": {
"color": 2,
"width": 512,
"height": 288,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n## Voice note transcribe\n** Voice Notes sent by customers are transformed into text for further processing by the AI Agent,"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"b83be440-9e12-44fd-b003-7526dd835905": {
"ai_languageModel": [
[
{
"node": "Customer Service Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3d698916-6647-4f37-8d25-14d5f6b8ef51": {
"ai_tool": [
[
{
"node": "Customer Service Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"8f30d58e-2eb3-47d7-b39f-92b85678b962": {
"main": [
[
{
"node": "4c6e405c-53f8-477d-a55a-9fdc3ae7fbaf",
"type": "main",
"index": 0
}
]
]
},
"85f332ff-cda7-43c1-9042-3a601d96075d": {
"ai_memory": [
[
{
"node": "Customer Service Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"9e7842c0-de0f-4aac-a830-bc70a4e4b614": {
"main": [
[
{
"node": "Agent Context",
"type": "main",
"index": 0
}
],
[
{
"node": "df6ac069-fe1e-41d3-a872-571bae411220",
"type": "main",
"index": 0
}
]
]
},
"c528b6af-a39d-4e86-9542-1c1dd066af22": {
"main": [
[
{
"node": "9e7842c0-de0f-4aac-a830-bc70a4e4b614",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"4090b5c6-fa50-4350-8f29-c18be5aea6f0": {
"ai_tool": [
[
{
"node": "Customer Service Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"8fb27413-ab5f-4757-afe8-1df81dcf578d": {
"ai_tool": [
[
{
"node": "Customer Service Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Agent Context": {
"main": [
[
{
"node": "Customer Service Agent",
"type": "main",
"index": 0
}
]
]
},
"df6ac069-fe1e-41d3-a872-571bae411220": {
"main": [
[
{
"node": "8f30d58e-2eb3-47d7-b39f-92b85678b962",
"type": "main",
"index": 0
}
]
]
},
"dc0b8085-4b5b-4ff9-aaf2-99c291caa1d4": {
"ai_tool": [
[
{
"node": "Customer Service Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"4c6e405c-53f8-477d-a55a-9fdc3ae7fbaf": {
"main": [
[
{
"node": "Agent Context",
"type": "main",
"index": 0
}
]
]
},
"Customer Service Agent": {
"main": [
[
{
"node": "ef0a1451-f68b-40f5-a7d6-c0a0fa4ea87d",
"type": "main",
"index": 0
}
]
]
},
"93118333-81b4-48a6-b5e4-ccc1eb2915df": {
"main": [
[
{
"node": "c528b6af-a39d-4e86-9542-1c1dd066af22",
"type": "main",
"index": 0
}
]
]
}
}
}このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - その他, AIチャットボット, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AureusR
@aureusrExperienced Operations and Workflow Manager with a Master’s degree in Electronics and Software Development. I specialize in designing and implementing efficient, automated systems that help teams save time, reduce errors, and scale with confidence. My expertise spans across business process optimization, automation platforms, and custom workflow solutions. Looking to streamline your operations? Book a consultation with me to explore tailored automation strategies and n8n-powered workflows.
このワークフローを共有