Evolution Api-n8n-coolify- webhook works with test URL but fails to receive data with production URL

Working Scenario (Test Environment):

Not Working Scenario (Production Environment):

  • Using production URL: https://mydomain/webhook/dagdagafhaehahadfhadfhadf
  • When someone sends WhatsApp message to my number
  • Evolution API attempts to send upsert data to production URL
  • n8n webhook is NOT triggered - no WhatsApp message data received :cross_mark:
  • No execution logs show incoming webhook calls in n8n workflow

Infrastructure Setup:

  • Hosting: VPS Hostinger
  • Reverse Proxy: Cloudflare (proxied/orange cloud)
  • Container Management: Coolify
  • Evolution API version: evolution-api:v2.3.0
  • WhatsApp instance status: Connected
  • Webhook events enabled: messages.upsert

What Works:
:white_check_mark: Production URL accessible from browser (200 OK)
:white_check_mark: Manual webhook test in n8n works
:white_check_mark: SSL certificate valid
:white_check_mark: Same Evolution API instance for both test and production
:white_check_mark: Same n8n workflow configuration

What Doesn’t Work:
:cross_mark: WhatsApp message upsert data not reaching production webhook
:cross_mark: No webhook execution triggered when WhatsApp messages received
:cross_mark: No incoming requests in server logs from Evolution API

Root Issue:
Evolution API can successfully deliver WhatsApp upsert data to external test URLs (webhook.site) but cannot deliver the same data to my production url. This suggests the production URL is not accessible from Evolution API servers or being blocked by Cloudflare security settings.

Expected Behavior:
When someone sends a WhatsApp message to my number, Evolution API should POST the message upsert data to my production webhook URL, triggering the n8n workflow.

hi @Mohd_Zuhaili_Mohd the Evolution docs state that the event must be MESSAGES_UPSERT and not messages.upsert. have you tried that already?

Heres a link to the docs Webhooks - Evolution API Documentation


Yes, I already clicked the messages_upsert button. I just discovered that my Telegram trigger in another workflow has the same issue. When I’m using the test URL, n8n can pick up the data and trigger the workflow successfully. But when I activate the workflow and try using the production URL, the Telegram trigger cannot be used to activate my workflow, even though I have already sent the message to trigger the workflow through Telegram.

I see… if thats the case, it could be having an issue with production URL. Could it be that cloudfare is blocking the connection. You can try to disable cloudfare and try it, if that works then go to cloudfare firewall and alllow all IP from telegram.

could you also send of a photo of the PArameters of your webhook? myabe the path is the problem

Did you try to set the webhook from Meta API Dashboard?

"I have tried to disable the Cloudflare firewall and run the workflow, but it is still the same. The workflow is running when using the test URL, but not in production.

I’m using Evolution API, not WhatsApp official, to call the webhook.

Have you set the webhook URL from the related API Provider?


Yes, I have.

im self-hosting behind a proxy(cloudflare) Need to engage the variables WEBHOOK_URL and N8N_PROXY_HOPS (see [Environment Variables Overview | n8n Docs]
(Environment Variables Overview | n8n Docs)).

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.