Bots de support
Ceci est unSupport Chatbot, AI Chatbotworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Set, Switch, WhatsApp, WhatsAppTrigger. Automatisation des réponses aux FAQ avec un bot de détection de mots-clés WhatsApp
- •Aucun prérequis spécial, prêt à l'emploi après importation
Nœuds utilisés (19)
Catégorie
{
"id": "AJtSW2QeCg45qtIh",
"meta": {
"instanceId": "922f87b0adfedb3ae09541ddf50e19d9af2c8cfac1d8da5d9cd4cdfe64d30bee",
"templateCredsSetupCompleted": true
},
"name": "Support bot",
"tags": [],
"nodes": [
{
"id": "c9cbc315-75dd-4ca4-875c-b9a22fba03d7",
"name": "Messages WhatsApp entrants",
"type": "n8n-nodes-base.whatsAppTrigger",
"position": [
-1820,
120
],
"webhookId": "whatsapp-support-webhook",
"parameters": {
"options": {},
"updates": [
"messages"
]
},
"typeVersion": 1
},
{
"id": "b1a466e1-3d1b-4494-a7d9-0cc2ee1e8202",
"name": "Filtrer uniquement les messages texte",
"type": "n8n-nodes-base.if",
"position": [
-1520,
120
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.messages[0].type }}",
"rightValue": "text"
}
]
}
},
"typeVersion": 2
},
{
"id": "298eccc9-0b1a-477f-a153-074972098072",
"name": "Extraire le contenu du message",
"type": "n8n-nodes-base.set",
"position": [
-1260,
20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "message-text",
"name": "message_text",
"type": "string",
"value": "={{ $json.messages[0].text.body.toLowerCase().trim() }}"
},
{
"id": "sender-phone",
"name": "sender_phone",
"type": "string",
"value": "={{ $json.messages[0].from }}"
},
{
"id": "message-id",
"name": "message_id",
"type": "string",
"value": "={{ $json.messages[0].id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8ac8d5d8-d328-4809-b85e-dd954a1bf307",
"name": "Détection de mots-clés FAQ",
"type": "n8n-nodes-base.switch",
"position": [
-1020,
20
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Business Hours",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "hours"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "open"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "close"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "time"
}
]
},
"renameOutput": true
},
{
"outputKey": "Pricing",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "price"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "cost"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "fee"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "money"
}
]
},
"renameOutput": true
},
{
"outputKey": "Location",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "address"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "location"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "where"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "find"
}
]
},
"renameOutput": true
},
{
"outputKey": "Contact",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "contact"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "phone"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "email"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "support"
}
]
},
"renameOutput": true
},
{
"outputKey": "Greeting",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "hello"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "hi"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "hey"
},
{
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message_text }}",
"rightValue": "start"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "2463ba09-2047-4f09-bd95-9fd22e18d6c6",
"name": "Réponse sur les heures d'ouverture",
"type": "n8n-nodes-base.set",
"position": [
-720,
-200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "🕐 *Business Hours*\n\nMonday - Friday: 9:00 AM - 6:00 PM\nSaturday: 10:00 AM - 4:00 PM\nSunday: Closed\n\nWe're currently {{ new Date().getHours() >= 9 && new Date().getHours() < 18 ? 'OPEN' : 'CLOSED' }} 🟢\n\nNeed immediate help? Type 'contact' for our support details!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a6d20145-ed74-40b4-bb4d-f51c1d9e8d79",
"name": "Réponse sur les informations tarifaires",
"type": "n8n-nodes-base.set",
"position": [
-720,
-100
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "💰 *Our Pricing Plans*\n\n• **Basic Package**: $29/month\n• **Pro Package**: $59/month \n• **Enterprise**: $99/month\n\n✨ All packages include:\n✅ 24/7 support\n✅ Free setup\n✅ 30-day money-back guarantee\n\nWant a custom quote? Type 'contact' to speak with our team!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "44f08566-7f73-4596-b51e-4b877a18b283",
"name": "Réponse sur les informations de localisation",
"type": "n8n-nodes-base.set",
"position": [
-720,
20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "📍 *Find Our Office*\n\n🏢 **Main Office:**\n123 Business Street\nNew York, NY 10001\nUSA\n\n🚇 Nearest Metro: Times Square\n🅿️ Parking: Available on-site\n\n📱 Want directions? \nGoogle Maps: bit.ly/ouroffice\n\nPlanning a visit? Type 'hours' to check if we're open!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ab28d851-6e0f-482b-8588-ddebddc232d7",
"name": "Réponse sur les informations de contact",
"type": "n8n-nodes-base.set",
"position": [
-720,
120
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "📞 *Contact Information*\n\n🔥 **Priority Support:**\n• Phone: +1 (555) 123-4567\n• Email: support@company.com\n• Live Chat: Available on our website\n\n💬 **Social Media:**\n• Twitter: @company\n• LinkedIn: /company/ourcompany\n\n⚡ **Response Times:**\n• Phone: Immediate\n• Email: Within 2 hours\n• WhatsApp: You're already here! 😊"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d0544cdd-210a-4041-9955-cfb421e80a8b",
"name": "Réponse du menu d'accueil",
"type": "n8n-nodes-base.set",
"position": [
-720,
220
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "👋 *Welcome to our support!*\n\nI'm here to help you 24/7. What can I assist you with today?\n\n📋 **Quick Menu:**\n• Type 'hours' - Business hours\n• Type 'pricing' - Our packages\n• Type 'location' - Find our office\n• Type 'contact' - Support details\n\n💡 **Pro tip:** Just type what you need, and I'll understand! \n\nExample: \"What are your prices?\" or \"When are you open?\""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e08b7a63-c334-44cb-bf93-f876fe0dfe2e",
"name": "Réponse de secours utile",
"type": "n8n-nodes-base.set",
"position": [
-720,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "response-text",
"name": "response_text",
"type": "string",
"value": "🤔 *I didn't quite understand that...*\n\nNo worries! Here's what I can help you with:\n\n📋 **Available Commands:**\n• 'hours' - Business hours\n• 'pricing' - Package information \n• 'location' - Office address\n• 'contact' - Support details\n• 'hello' - Show main menu\n\n🔍 **Or simply ask:**\n• \"When are you open?\"\n• \"How much does it cost?\"\n• \"Where are you located?\"\n\n👨💼 Need to speak with a human? Type 'contact' for our support team!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"name": "Envoyer une réponse WhatsApp",
"type": "n8n-nodes-base.whatsApp",
"position": [
-420,
60
],
"webhookId": "fc8d4c8b-8738-4323-8c5f-928ee49a59a5",
"parameters": {
"textBody": "={{ $json.response_text }}",
"operation": "send",
"phoneNumberId": "REPLACE_WITH_YOUR_PHONE_NUMBER_ID",
"additionalFields": {
"previewUrl": false
},
"recipientPhoneNumber": "={{ $('Extract Message Content').item.json.sender_phone }}"
},
"typeVersion": 1
},
{
"id": "240af2fb-c864-4d2e-883b-57a5a04c9589",
"name": "Gérer les types de messages non pris en charge",
"type": "n8n-nodes-base.whatsApp",
"position": [
-1260,
220
],
"webhookId": "8ea475e8-eb38-4fa9-a979-5dc6051c401e",
"parameters": {
"textBody": "📝 I can only process text messages at the moment.\n\nPlease send your question as a text message, and I'll be happy to help! 😊\n\nType 'hello' to see what I can help you with.",
"operation": "send",
"phoneNumberId": "REPLACE_WITH_YOUR_PHONE_NUMBER_ID",
"additionalFields": {
"previewUrl": false
},
"recipientPhoneNumber": "={{ $json.messages[0].from }}"
},
"typeVersion": 1
},
{
"id": "ce073ef5-4d57-4601-863a-542f489da17e",
"name": "Explication du workflow principal",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2320,
-160
],
"parameters": {
"color": 4,
"width": 450,
"height": 1140,
"content": "# 📱 WhatsApp Customer Support Bot\n\n## What This Workflow Does\nAutomated WhatsApp chatbot that provides instant customer support by responding to common questions with pre-defined answers based on keyword detection.\n\n## How It Works\n1. **WhatsApp Listener**: Receives incoming messages 24/7\n2. **Message Filtering**: Processes only text messages\n3. **Keyword Detection**: Analyzes message content for FAQ topics\n4. **Smart Responses**: Sends appropriate pre-written responses\n5. **Fallback Handling**: Provides helpful guidance for unknown queries\n\n## Supported Topics\n🕐 **Business Hours** - Hours, open/close times\n💰 **Pricing** - Packages, costs, fees\n📍 **Location** - Address, directions, office info\n📞 **Contact** - Phone, email, support details\n👋 **Greetings** - Welcome message with menu\n\n## Smart Features\n✅ Case-insensitive keyword matching\n✅ Natural language understanding\n✅ Professional formatted responses\n✅ Menu-driven navigation\n✅ Graceful fallback for unknown queries\n\n## Setup Required\n1. WhatsApp Business API account\n2. Phone Number ID from Meta\n3. Configure webhook URLs\n4. Customize responses for your business\n5. Activate workflow\n\n## Perfect For\n• Small businesses needing 24/7 support\n• FAQ automation\n• Reducing support team workload\n• Instant customer responses\n\n**Handles 80% of common customer questions automatically.**"
},
"typeVersion": 1
},
{
"id": "00ea9ba6-8b6e-4535-bc96-3d4900849a36",
"name": "Étape 1 - Réception du message",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2120,
-500
],
"parameters": {
"color": 7,
"width": 300,
"height": 300,
"content": "## Step 1: Message Reception\n\n**WhatsApp Trigger** receives all incoming messages from customers 24/7\n\n**Setup**: Requires WhatsApp Business API\n**Webhook**: Automatically configured\n\n*Listens constantly for customer messages*"
},
"typeVersion": 1
},
{
"id": "cac18dfa-16c6-4db6-996c-c0823981d15a",
"name": "Étape 2 - Filtrage du type de message",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1740,
-500
],
"parameters": {
"color": 7,
"width": 300,
"height": 300,
"content": "## Step 2: Message Type Filter\n\n**IF Node** ensures we only process text messages\n\n✅ **Text Messages**: Continue to processing\n❌ **Other Types**: Send friendly error message\n\n*Keeps bot focused and reliable*"
},
"typeVersion": 1
},
{
"id": "ffc8672d-1bb8-445b-9a45-6f856a0e532b",
"name": "Étape 3 - Extraction des données",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
-480
],
"parameters": {
"color": 7,
"width": 300,
"height": 240,
"content": "## Step 3: Data Extraction\n\n**Set Node** extracts and cleans message data:\n• Message text (lowercase, trimmed)\n• Sender phone number\n• Message ID\n\n*Prepares data for keyword matching*"
},
"typeVersion": 1
},
{
"id": "1aedc060-7858-4a40-910e-c779c6cd9363",
"name": "Étape 4 - Détection des mots-clés",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1020,
-480
],
"parameters": {
"color": 7,
"width": 300,
"height": 260,
"content": "## Step 4: Keyword Detection\n\n**Switch Node** analyzes message content:\n• Multiple keywords per category\n• Case-insensitive matching\n• Natural language friendly\n• Fallback for unknown queries\n\n*Intelligent message routing*"
},
"typeVersion": 1
},
{
"id": "4a0bd23c-4e6d-4bda-b985-86e970107632",
"name": "Étape 5 - Génération de la réponse",
"type": "n8n-nodes-base.stickyNote",
"position": [
-600,
-480
],
"parameters": {
"color": 7,
"width": 350,
"height": 300,
"content": "## Step 5: Response Generation\n\n**Set Nodes** create professional responses:\n• Business hours with real-time status\n• Detailed pricing information\n• Complete location details\n• Contact information\n• Welcome menu for navigation\n• Helpful fallback messages\n\n*Consistent, professional communication*"
},
"typeVersion": 1
},
{
"id": "01fe32eb-6a51-4837-9323-9ec4d86579e5",
"name": "Étape 6 - Livraison du message",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
-120
],
"parameters": {
"color": 7,
"width": 300,
"height": 280,
"content": "## Step 6: Message Delivery\n\n**WhatsApp Node** sends formatted response back to customer\n\n• Instant delivery\n• Professional formatting\n• Emoji enhancement\n\n*Complete the customer service loop*"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f1942fbc-84ed-45d8-b613-147cb9c87a05",
"connections": {
"8ac8d5d8-d328-4809-b85e-dd954a1bf307": {
"main": [
[
{
"node": "2463ba09-2047-4f09-bd95-9fd22e18d6c6",
"type": "main",
"index": 0
}
],
[
{
"node": "a6d20145-ed74-40b4-bb4d-f51c1d9e8d79",
"type": "main",
"index": 0
}
],
[
{
"node": "44f08566-7f73-4596-b51e-4b877a18b283",
"type": "main",
"index": 0
}
],
[
{
"node": "ab28d851-6e0f-482b-8588-ddebddc232d7",
"type": "main",
"index": 0
}
],
[
{
"node": "d0544cdd-210a-4041-9955-cfb421e80a8b",
"type": "main",
"index": 0
}
]
]
},
"d0544cdd-210a-4041-9955-cfb421e80a8b": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
},
"2463ba09-2047-4f09-bd95-9fd22e18d6c6": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
},
"298eccc9-0b1a-477f-a153-074972098072": {
"main": [
[
{
"node": "8ac8d5d8-d328-4809-b85e-dd954a1bf307",
"type": "main",
"index": 0
}
]
]
},
"b1a466e1-3d1b-4494-a7d9-0cc2ee1e8202": {
"main": [
[
{
"node": "298eccc9-0b1a-477f-a153-074972098072",
"type": "main",
"index": 0
}
],
[
{
"node": "240af2fb-c864-4d2e-883b-57a5a04c9589",
"type": "main",
"index": 0
}
]
]
},
"e08b7a63-c334-44cb-bf93-f876fe0dfe2e": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
},
"c9cbc315-75dd-4ca4-875c-b9a22fba03d7": {
"main": [
[
{
"node": "b1a466e1-3d1b-4494-a7d9-0cc2ee1e8202",
"type": "main",
"index": 0
}
]
]
},
"ab28d851-6e0f-482b-8588-ddebddc232d7": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
},
"a6d20145-ed74-40b4-bb4d-f51c1d9e8d79": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
},
"44f08566-7f73-4596-b51e-4b877a18b283": {
"main": [
[
{
"node": "5c1d8fdc-df5d-4f7e-97f6-357538b6080d",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Chatbot de support, Chatbot IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Solido AI
@solidoaiPartager ce workflow