The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "whatsapp-send",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "whatsapp-send",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-trigger",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
240,
300
]
},
{
"parameters": {
"jsCode": "const data = $input.first().json;\n\n// Format phone\nlet phone = (data.phone || '').replace(/\\s+/g, '').replace(/^0+/, '');\nif (!phone.startsWith('+')) {\n phone = phone.startsWith('20') ? `+${phone}` : `+20${phone}`;\n}\n\nreturn [{ json: { ...data, phone } }];"
},
"id": "format-phone",
"name": "Format Phone",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
460,
300
]
},
{
"parameters": {
"resource": "message",
"operation": "send",
"phoneNumberId": "={{ $credentials.phoneNumberId }}",
"recipientPhoneNumber": "={{ $json.phone }}",
"textBody": "={{ $json.message }}"
},
"id": "whatsapp-send",
"name": "Send WhatsApp",
"type": "n8n-nodes-base.whatsApp",
"typeVersion": 1,
"position": [
680,
300
],
"credentials": {
"whatsAppApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify({ success: true, messageId: $json.messages?.[0]?.id }) }}"
},
"id": "respond",
"name": "Respond",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
900,
300
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Format Phone",
"type": "main",
"index": 0
}
]
]
},
"Format Phone": {
"main": [
[
{
"node": "Send WhatsApp",
"type": "main",
"index": 0
}
]
]
},
"Send WhatsApp": {
"main": [
[
{
"node": "Respond",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": [
{
"name": "leads-egypt"
}
]
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
whatsAppApi
About this workflow
whatsapp-send. Uses whatsApp, respondToWebhook. Webhook trigger; 4 nodes.
Source: https://github.com/khaled-bit/Realstate/blob/9c3390c0143c912787ac6ee42ab0c6bb5c59b2d9/n8n-workflows/whatsapp-send.json — original creator credit. Request a take-down →