How to prevent WhatsApp webhook delivery for "acknowledgment" or status messages from triggering my production workflow?

Hi everyone,

I’m currently using n8n v1.88.0 (Cloud version), and I’m integrating it with the WhatsApp Business Cloud API (Meta).

My main production workflow is triggered by incoming WhatsApp messages. This works as expected when a real user sends a message.

However, I’ve noticed that Meta also sends back “acknowledgment” or “status” messages — for example, when I reply to the user — and these system messages also trigger my production workflow.

Technically, I can add an IF node early in the flow to detect and ignore them, but this still counts as a full execution in n8n Cloud.

:arrow_right: My goal is to reduce execution count by preventing these non-user messages from triggering the webhook at all.

What I’d like to know:

  • Is there any way to prevent WhatsApp status messages (like statuses, sent, delivered, read, etc.) from triggering my webhook at all?
  • Can we filter specific event types directly within the Meta Developer Portal when configuring the webhook?
  • Or would I need to build an intermediary webhook layer outside of n8n to pre-filter these messages before they reach n8n?

My webhook is already in production, and I cannot split it across multiple endpoints due to WhatsApp’s limitation of one webhook per app.

Any advice or best practices would be appreciated — especially from others running high-volume WhatsApp integrations on n8n Cloud.

Thanks in advance!

1 Like

Yeah, I’ve not seen away todo this either, but External Proxy (e.g. Cloudflare Worker) could probably help, before hitting your n8n webhook

You can use this option to choose which status message you want receive on whatsapp webhook

RESOLVED
:white_check_mark: Solution: Avoid WhatsApp Acknowledgment Loops in n8n

I had an issue where WhatsApp system messages (status: sent, delivered, etc.) were triggering my workflow, causing loops and extra executions.

Fix:
In the WhatsApp msg received trigger:

  • Set Trigger On = Messages
  • Leave Receive Message Status Updates empty (don’t select All, Sent, etc.)

This filters out non-user messages and keeps your flow clean. Thanks to the community for the great tip! :rocket:

1 Like