Goal: when I receive a message, the workflow sends the same text back.
What I see:
In practice, WhatsApp replies correctly (e.g., I send “hola” and I receive “hola” back).
However, in Executions the run appears as an error, or the graph says the flow never reached the “Send message” node—as if the reply was never sent.
The Trigger input changes between runs: on the first run I can see the user message in the JSON (message/messages). On the next run that field is missing, which seems to be why Executions shows that the message wasn’t sent.
Because of this, Executions doesn’t reflect what’s actually happening, and I can’t reliably validate mappings or debug.
Questions:
Is this a known issue with the WhatsApp nodes or the Executions view, or is it a configuration error on my side?
Why would the WhatsApp Trigger input structure change between consecutive runs in such a simple echo test?
Is there a recommended way to ensure the execution always records the actual inbound data?
I can provide screenshots, logs, or a minimal workflow export if needed.
Thanks for your help!
Hi there, i think this issue happens because the way of how the whatsapp Trigger gets triggered
By default,the whatsapp triggerd - On Message, gets triggered for every event that is happening on the message (message gets deleted, delivered, read, failed,sent], so most likely, the whatsapp trigger got triggered for one of those event where they do not provide the json message text body, which what you are looking on ur filter node
if you only want it to be triggered on a certain event only, like lets say only when its delivered, then you can set it up here
there is not the bodymessage but i mean it not make sense. in the whatsapp chat the “bot” send to me the message so in the excutions must show me that everything is fine but this is not the case.
Hi there @Eliot ,
then let’s dive in a little deeper, can you give me a screenshot of the failed executions, give me the screenshot of inside the whatsapp trigger and let’s see how the data looks like and why is the message body is not there
my guess is that the whatsapp trigger is still executing on some other events
I have a similar issue. However, since I use Webhook Node, when I test the execution, the scripts are displayed with a delay. The WhatsApp message was delivered, but the n8n interface still shows the node’s execution steps.
Hi there @Eliot , you can see for yourself that the one that gets discarded on the production logs is with the event type Read, you can see that in the status.statuses[0] it says Read
As i have told you in the above, that production hears every event that happens in a message, including when a message get a read from the receiver of the message,
The only reason it’s not showing when you are testing, is because as i said, testing does not hear everything, it only hears the event when you want them to
If you want to trigger the failing on the test, make sure the webhook only receives read event and then send a message, and then execute the workflow, and read the message, that should get you your error
Thanks @fahmiiireza , I’ve noticed that each time the workflow is triggered via the WhatsApp trigger, it executes four times. In one of those executions, the message is actually present. So, while this might not technically be a bug, it does cause issues in other workflows.
Right now, I have a simple workflow with an AI agent that uses RAG. When I connect it to a message node triggered through the terminal, everything works perfectly — the memory works, the prompt runs as expected. I have the prompt set up so that when a question is asked, it retrieves information from its knowledge bases, and through the terminal trigger, it works exactly as intended.
The problem starts when I connect it to WhatsApp — that’s when simple memory stops working. And this also breaks the RAG functionality — the agent no longer responds as configured.
Why could this be happening?
About three months ago, I had this same workflow working perfectly. It’s only after some recent updates that it started failing.
hi there, you can just add an if node right after the whatsapp trigger to check if the data contains the message, if it is then continue the workflow, if it is not, just don’t do anything
this way, it shouldnt cause issue with your simple memory because the execution that will go through the rag agent is the data that has the message