Need HELP : Whatsapp trigger is not fired on WA message however it is fired when tested via meta webhook message

HI all I am trying to trigger whatsapp message from my whetsapp app - when i send the message from my personal whatsapp number to the test number the n8n flow does not trigger

however when i press test button on message workfow in meta webhook page then the workflow triggers - i am unable to find the discrepancy between api call hit when i press the test button on meta webhook messsage test button and the api call hit when i sed message to the test message - SOMEONE PLEASE HELP

PS - Webhook callback URLS and all is configured properly as when i click on below button the n8n workflow works fine however when i send a messgae to test number it does not respond

The Meta webhook test button and actual WhatsApp messages go through different paths — that’s the typical reason for this split behavior. A few things to check:

1. Webhook field subscription
In Meta for Developers → WhatsApp → Configuration, make sure the messages field is checked under Webhook Fields. Without it subscribed, real messages won’t reach your webhook even though the test button works (it bypasses the subscription filter).

2. Phone number ID match
In your n8n WhatsApp Trigger node, verify the Phone Number ID matches the one associated with your test number. A mismatch causes silent drops on real messages.

3. App in Development vs Live mode
If your Meta app is still in Development mode, only numbers added as test numbers in Meta Business Suite can trigger the webhook with real messages. Go to App Settings → Basic and check your app’s mode.

4. Quick sanity check
On your n8n workflow, click “Listen for test event” while the workflow is active, then send a real WhatsApp message. If nothing arrives in the n8n execution log at all, the issue is on Meta’s side (subscription or app mode). If it does arrive but the node doesn’t trigger, it’s a node config issue.

Great points above! Just to add two more common n8n-specific pitfalls that cause this exact ‘Test works, real message fails’ scenario:

1. The Test vs. Production URL Mismatch In n8n, your webhook has two different URLs: one for testing (.../webhook-test/...) and one for production (.../webhook/...). Check which exact URL you pasted into the Meta Developer Console.

  • If you pasted the webhook-test URL, real messages will ONLY register when you have actively clicked ‘Listen for test event’ in the n8n UI. Once the workflow is just ‘Active’, it will ignore real messages.

  • If you pasted the webhook (production) URL, clicking ‘Listen for test event’ will completely ignore incoming real messages. Make sure your URL in Meta matches the exact state you are trying to test.

2. Meta Webhook Delivery Logs Go to your Meta App Dashboard → Webhooks. Scroll to the bottom to find the ‘Recent Errors’ (or Webhook delivery logs) section. If Meta is successfully sending the real message but your n8n instance is returning a 500 error, timing out, or rejecting the payload structure, Meta will log the exact HTTP response code there. This instantly tells you if the problem is Meta not sending, or n8n rejecting the connection.

HI, thanks for taking the time and replying to the query - I double-checked the options you have asked for, and they seem to be all in place

  1. I believe phone number ID is configured in the send message trigger - as in the WhatsApp message trigger node, I only see the option to configure the creds, and whereI’vee put client ID = app ID, secret ID = app secret - correct me if I’m wrong
  2. app is in development mode ,and i click on Execute Workflow and send the message, and still the node does not trigger
  3. Seems to be an issue with the meta because I don’t receive anything at n8n

@n8n_Sensei HI, thanks for taking the time and replying to the query.

  1. i have pasted the test URLs, and I tried to send a message when the workflow is listening to the trigger still, I don’t see anything in n8n

  2. Here in the webhook logs, I can see that the message is logged however, it is not passed over to my n8n node

With the information you provided in the post, it’s difficult for me to tell you what could be failing. If you want, you can send me more details to my email and I’ll give you a hand personally. Cheers!!

Email: lautaro.automation@gmail.com

Hi @aditya_bansod
A message showing in Meta’s webhook event log only means Meta received it. Delivery goes to whichever app your WhatsApp Business Account is subscribed to, and on newly created apps that is often Meta’s own “WA DevX Webhook Events 1P App” instead of yours, so the panel test lands while real messages go somewhere else. Open Meta’s Graph API Explorer and set the endpoint to your WABA ID (WhatsApp > API Setup):

<WABA_ID>/subscribed_apps

Send it as GET and look at the app name that comes back. If it isn’t your app, switch the method to POST and send, then GET again to confirm your app is now listed. Messages start arriving right after.
See this:

@Anshul_Namdev subscribed_apps fix is very useful here. As you mentioned before, creating a new app doesn’t automatically move the WABA subscription from Meta’s default dev app. Running the GET as a first step to confirm it, and then the POST command to move the app will do the trick and should start working immediately after that.

Hi there, one side note: it’s encouraged to keep public troubleshooting public, rather than moving to personal emails. Public threads allow the people who are facing the same problems to investigate the issue, and it’s the best way to keep the application solving the issue safe to the public and walkthroughs for everyone.

Hi, I have the same issue as you. Were you able to resolve the problem?

All my subscriptions were set up correctly with the right WABA_ID. My Meta app is published and my n8n workflow (cloud) is also published. My callback_url on Meta is set to the prod URL.

  1. If I open the workflow in the n8n editor and click on “Execute workflow” just before sending a WhatsApp message to the number, the request arrives fine and the workflow triggers normally.
  2. If I don’t click “Execute workflow” (expected behavior in normal/production operation), nothing arrives: the workflow never triggers on its own.
  3. In comparison, with the test number provided by Meta (default webhook from the App Dashboard), messages are received correctly every time.

Is there a setup step that I might have missed?

Hi @Elia_Levy ! The reason it works when you click “Execute Workflow” but fails in normal production operation is almost always due to the **Test vs. Production Webhook URL mismatch** in Meta’s Developer Dashboard.

Here are the 2 steps to fix it completely:

### 1. Check the Webhook URL Path in Meta App Dashboard

When you click “Execute Workflow” in the n8n editor, n8n listens on the **Test Webhook URL**:

`https://your-instance.n8n.cloud/webhook-test/your-uuid\`

For normal production operation (when you are NOT clicking “Execute Workflow”), Meta must send events to the **Production Webhook URL**:

`https://your-instance.n8n.cloud/webhook/your-uuid\` *(notice `/webhook/` instead of `/webhook-test/`)*

* Go to **Meta Developer Portal → WhatsApp → Configuration → Edit Webhook**.

* Ensure the **Callback URL** points to `/webhook/…` and NOT `/webhook-test/…`.

### 2. Ensure Workflow Active Toggle is ON

In n8n, Production Webhooks ONLY listen if the workflow is explicitly turned **ACTIVE**:

* Toggle the **Active** switch in the top right of your n8n workflow canvas to **ON**.

* If the workflow is Inactive, n8n silently drops incoming production webhook calls from Meta without triggering.

### 3. Verify Event Subscriptions

Under Meta Webhook settings, ensure you have subscribed to `messages` under **WhatsApp Business Account** events, and your Meta App is linked to your WABA ID via `/{WABA_ID}/subscribed_apps` as @Anshul_Namdev mentioned.

Once Meta has the `/webhook/` (prod) URL and your n8n workflow toggle is **Active**, incoming WhatsApp messages will trigger automatically 24/7 without needing the editor open!

Dear,
I spent 3 hours with this problem and couldn’t solve it.

Here are the steps that worked for me exactly with your same scenario.

  1. Go to the following URL business.facebook.com/wa/manage/phone-numbers and your test number should appear there, click on the number.
  2. When you enter the number, check the URL and you will see an asset_id= parameter, copy that number.
  3. In another tab, go to the Graph API Explorer (https://developers.facebook.com/tools/explorer/), select your application, make sure User ID is selected, validate that the whatsapp_business_management permission is added, then select the POST method, and in the URL, after /v26.0, delete those values and add your asset_id/subscribed_apps (Example: v26.0/2548428515454815/subscribed_apps and execute.
  4. The response should be {“success”: true}.
  5. Test it in n8n, and it should work for you.

@aditya_bansod — I think the answer is already in your first post,
in two lines nobody has connected.

“when i send the message from my personal whatsapp number”
“app is in development mode”

That combination is the problem.

In Development mode, Meta only fires webhook events for numbers
explicitly added as test recipients. Your personal number isn’t
one, so Meta accepts and delivers the message but never sends the
webhook event. Nothing arrives at n8n because nothing was sent.

The Meta test button works because it posts directly to your URL
and skips the subscription layer entirely. That’s why the two
behave differently — it isn’t a discrepancy in the payload, it’s
two different code paths.

Fix, in order:

  1. Meta dashboard > WhatsApp > API Setup > “To” field > Manage
    phone number list. Add your personal number. It gets a
    verification code by SMS.

  2. Send from that number again. The webhook should fire.

Two things that will confirm this before you change anything:

Meta App Dashboard > Webhooks > scroll to delivery attempts. If
there are no attempts at all for the real messages — not failed
attempts, none — then Meta never sent, which rules out everything
on the n8n side. That’s what you’d expect here.

Also worth knowing regardless of mode: Meta never sends webhook
events for messages sent from the same number that owns the WABA.
If you ever test by messaging the business number from itself, you
get silence, and it looks identical to this problem.

One more, for when you go live:

Development mode caps you at five test recipients. Moving to Live
requires Business Verification, which takes days rather than hours
— worth starting now if this is going into production, because it
becomes the blocker after everything else works.

A Meta test proves the endpoint is reachable but not that the live WhatsApp subscription is complete. Check the app is subscribed to the messages field, the phone number belongs to that app and the production webhook URL matches the active n8n workflow.