{
"name": "LeadBot 24h \u2014 WhatsApp AI Lead Qualification Bot",
"nodes": [
{
"parameters": {
"path": "leadbot-24h",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-incoming",
"name": "WhatsApp Webhook (WAHA)",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
260,
300
],
"webhookId": "leadbot-24h-webhook",
"notes": "Configure WAHA (WhatsApp HTTP API) to POST incoming messages here. See: https://waha.dev"
},
{
"parameters": {
"jsCode": "// Normalize incoming WhatsApp payload to standard lead format\nconst msg = $input.first().json;\nconst lead = {\n phone: msg.data?.from || msg.from || '',\n message: msg.data?.body || msg.body || msg.text || '',\n name: msg.data?.fromName || msg.data?.name || '',\n timestamp: new Date().toISOString(),\n source: 'whatsapp'};\n\n// Simple keyword-based urgency detection (no paid API required)\nconst urgentKeywords = ['pre\u00e7o', 'price', 'comprar', 'buy', 'contratar', 'urgente', 'or\u00e7amento', 'demiss\u00e3o', 'demissao', 'folha', 'payroll', 'admiss\u00e3o', 'admissao', 'f\u00e9rias'];\nconst msgLower = (lead.message || '').toLowerCase();\nlead.intent_score = urgentKeywords.some(k => msgLower.includes(k)) ? 9 : 5;\nlead.urgency = lead.intent_score >= 8 ? 'HOT' : 'WARM';\n\nreturn [{ json: lead }];"
},
"id": "normalize-lead",
"name": "Normalize & Score Lead",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
460,
300
],
"notes": "Extracts lead fields and assigns intent score. Replace keyword logic with AI node for production (OpenAI/Gemini free tier)."
},
{
"parameters": {
"jsCode": "// Route hot leads to CRM / Google Sheets\nconst lead = $input.first().json;\nif (lead.urgency === 'HOT') {\n return [{ json: lead }];\n}\nreturn [];"
},
"name": "Filter Hot Leads",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
660,
200
],
"id": "filter-hot"
},
{
"parameters": {
"operation": "append",
"sheetId": "YOUR_GOOGLE_SHEET_ID",
"range": "Sheet1!A:E",
"columns": {
"mappings": [
{
"toField": "A",
"value": "={{$json.phone}}",
"type": "string"
},
{
"toField": "B",
"value": "={{$json.name}}",
"type": "string"
},
{
"toField": "C",
"value": "={{$json.message}}",
"type": "string"
},
{
"toField": "D",
"value": "={{$json.intent_score}}",
"type": "number"
},
{
"toField": "E",
"value": "={{$json.urgency}}",
"type": "string"
}
]
},
"options": {}
},
"name": "Save Lead to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [
860,
200
],
"id": "save-sheets",
"notes": "Requires Google Sheets OAuth credential. Replace YOUR_GOOGLE_SHEET_ID with your sheet ID."
},
{
"parameters": {
"method": "POST",
"url": "https://hooks.slack.com/services/YOUR_SLACK_WEBHOOK",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"contentType": "json",
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "\ud83d\udd25 HOT LEAD from WhatsApp\\nPhone: {{$json.phone}}\nName: {{$json.name}}\nMessage: {{$json.message}}\nIntent Score: {{$json.intent_score}}/10\nUrgency: {{$json.urgency}}"
}
]
},
"options": {}
},
"name": "Notify Sales Team (Slack/Webhook)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
860,
400
],
"id": "notify-sales"
},
{
"parameters": {
"content": "Obrigado pelo contato! \ud83d\ude0a\\n\\nRecebemos sua mensagem. Nossa equipe vai retornar em breve.\\n\\nEnquanto isso, conhe\u00e7a nossas solu\u00e7\u00f5es: https://planificador7.gumroad.com/l/leadbot-24h",
"options": {
"waTemplate": {
"name": "leadbot_welcome_reply",
"namespace": "eae8f7e2_1b2c_4d3e_9f4a_5c6d7e8f9a0b"
}
}
},
"name": "Send Auto-Reply (WhatsApp)",
"type": "n8n-nodes-base.whatsApp",
"typeVersion": 1,
"position": [
1060,
300
],
"id": "auto-reply",
"notes": "Requires WhatsApp Business API or WAHA credential. Configure in n8n."
}
],
"connections": {
"WhatsApp Webhook (WAHA)": {
"main": [
[
{
"node": "Normalize & Score Lead",
"type": "main",
"index": 0
}
]
]
},
"Normalize & Score Lead": {
"main": [
[
{
"node": "Filter Hot Leads",
"type": "main",
"index": 0
}
]
]
},
"Filter Hot Leads": {
"main": [
[
{
"node": "Save Lead to Google Sheets",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Sales Team (Slack/Webhook)",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"pinData": {},
"tags": [
"whatsapp",
"lead-qualification",
"ai",
"n8n",
"sales",
"free"
]
}