Describe the problem/error/question
I’m integrating 360dialog’s WhatsApp Business API with n8n Cloud.
The goal: receive WhatsApp messages, process them, and respond back via the API.
However, I’m facing two persistent problems:
- The webhook flow is triggered multiple times, even though the user only sends one message – sometimes causing endless loops and overloads.
- Users do not receive my reply, even though the HTTP Request node returns
200 OKand a message ID.
What is the error message (if any)?
There’s no error in the execution itself. The HTTP response from the POST to 360dialog looks fine, but:
- The user never sees the message.
- n8n still receives multiple triggers per message.
In some cases, executions stack up so quickly that I can’t even open one before the next ones are triggered.
Please share your workflow
{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “incoming-whatsapp”,
“responseMode”: “onReceived”
},
“id”: “WebhookNode”
},
{
“parameters”: {
“conditions”: {
“boolean”: [
{
“value1”: “={{ !!$json.body.entry[0].changes[0].value.messages[0].text.body }}”
}
]
}
},
“id”: “IF_FilterMessageNode”,
“type”: “n8n-nodes-base.if”
},
{
“parameters”: {
“functionCode”: “return [{\n json: {\n to: $json.body.entry[0].changes[0].value.messages[0].from,\n message: "Thanks for your message!"\n }\n}];”
},
“id”: “Code_ResponsePrep”
},
{
“parameters”: {
“authentication”: “headerAuth”,
“url”: “https://waba.360dialog.io/v1/messages”,
“method”: “POST”,
“jsonParameters”: true,
“options”: {},
“bodyParametersJson”: “={\n "messaging_product": "whatsapp",\n "to": $json.to,\n "type": "text",\n "text": { "body": $json.message }\n}”
},
“id”: “HTTP_SendMessage”
},
{
“parameters”: {
“responseData”: “={{ { success: true } }}”
},
“id”: “RespondToWebhook”
}
],
“connections”: {
“WebhookNode”: {
“main”: [
[
{
“node”: “IF_FilterMessageNode”,
“type”: “main”,
“index”: 0
}
]
]
},
“IF_FilterMessageNode”: {
“main”: [
[
{
“node”: “Code_ResponsePrep”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “RespondToWebhook”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code_ResponsePrep”: {
“main”: [
[
{
“node”: “HTTP_SendMessage”,
“type”: “main”,
“index”: 0
}
]
]
},
“HTTP_SendMessage”: {
“main”: [
[
{
“node”: “RespondToWebhook”,
“type”: “main”,
“index”: 0
}
]
]
}
}
}
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
[
{
“messaging_product”: “whatsapp”,
“contacts”: [
{
“input”: “49171xxxxxxx”,
“wa_id”: “49171xxxxxxx”
}
],
“messages”: [
{
“id”: “wamid.HBgMNDkxNzE0Nzg0MjQ2FQIAERgSRjg5Mzk1NkU0QUNEMjFDNTFDAA==”
}
]
}
]
Information on your n8n setup
- n8n version: Latest (cloud)
- Database (default: SQLite): Unknown (cloud-managed)
- n8n EXECUTIONS_PROCESS setting (default: own, main): Default (cloud-managed)
- Running n8n via (Docker, npm, n8n cloud, desktop app): n8n cloud
- Operating system: Cloud instance (jeebly.app.n8n.cloud)