Problem Summary
WhatsApp Trigger node in n8n successfully receives test messages sent via Meta’s Developer Console, but does NOT receive messages sent from a real WhatsApp phone number to the Meta test number. The workflow is activated, the webhook is configured correctly, and Meta’s test functionality confirms connectivity works.
Environment Setup
Infrastructure
-
n8n: Self-hosted via Docker Desktop on macOS
-
Exposure: ngrok tunnel (free tier)
-
Docker container: Configured with webhook environment variables for ngrok URL
Meta WhatsApp Configuration
-
App Mode: Development (cannot switch to Live without privacy policy URL)
-
App Type: Business
-
Test Phone Number: +1 555 151 6118 (provided by Meta)
-
Recipient Phone Number: +1 604******* (verified as test recipient)
Configuration Steps Taken
1. n8n Workflow Setup
-
Created workflow with single WhatsApp Trigger node
-
Credential Type: WhatsApp OAuth API
- Client ID & Secret: From Meta App Settings → Basic
-
Trigger On: Messages
-
Workflow Status: ACTIVATED
2. Meta Webhook Configuration
-
Location: Meta Developer Console → WhatsApp → Configuration
-
Callback URL: I manually copied the production URL from the WhatsApp trigger node.
-
Webhook Fields Subscribed:
messages(enabled)
3. Test Recipient Configuration
-
Location: Meta Developer Console → WhatsApp → API Testing → Section 3
-
Phone Number Added: +1 604*******
What Works 
-
Meta’s Test Button
-
Location: WhatsApp → Configuration → Webhook fields → messages → Test button
-
Result: n8n receives test payload immediately
-
Confirms webhook connectivity is functional
-
-
Outbound Messages
-
Sending messages FROM test number TO personal phone works
-
Messages delivered successfully via Meta’s “Send message” button
-
What Doesn’t Work 
Sending messages FROM personal WhatsApp TO test number:
-
Message shows two checkmarks (delivered) on my phone
-
No webhook call received by n8n
-
No execution triggered in n8n workflow
-
No errors shown in Meta console or n8n