Webhook Payload Not Detected - Body Arrives Empty Despite Correct External Delivery (From Hubla) Hubla + N8N

Hi team,

I’m trying to capture webhook events sent by Hubla via POST to an n8n Webhook node. Everything works from their side (they confirmed the payload is being sent), but the Webhook node in n8n is always returning an empty object, even with valid test events.


:magnifying_glass_tilted_left: Context:

  • Webhook event: customer.member_added
  • Payload type: JSON
  • Webhook method: POST
  • No authentication
  • Hubla confirmed the payload is being sent correctly, and suggested that n8n might be failing to interpret or parse the incoming body.

:paperclip: Screenshots (attached):

  1. Webhook configuration in n8n — shows that the webhook node receives the request but output is empty.
  2. HTTP Request node (for test) — shows a successful POST with full JSON payload.
  3. Set Fields node result — output is [null], indicating body wasn’t parsed.
  4. Hubla Webhook Output — totally empty {}.

:test_tube: What I’ve tested so far:

  • Listening for real events (live webhook, test mode).
  • Confirmed correct JSON payload by sending it through Postman and an HTTP Request node inside n8n.
  • Hubla team confirmed the webhook body is sent correctly with Content-Type: application/json.
  • Tried setting Response Content-Type, and also using a Function node to manually parse body → no effect because no body is detected at all.

:red_question_mark:What I need help with:

Thanks a lot in advance! Happy to share any further debug logs if needed.

If the POST request reaches n8n without the content-type: application/json header, the webhook node will put the body in a binary object instead of the $json output. Assuming you already checked for that.

If the request type is POST, and the content-type and body both reach n8n, the output would have everything arranged in the $json item emitted from the Webhook node. There is nothing special you need to do.

The most likely place this is falling apart is in the reverse-proxy / edge-router that accepts the inbound request from hubla and forwards it to n8n.

  • If you are hosting n8n somewhere, this would be handled (most likely) by your hosting company, with their infrastructure for receiving external https requests.
  • If you are using n8n cloud, n8n handles this forwarding via an account-external URL like https://youraccountid.app.n8n.cloud/webhook/ce252d77-ff68-4cca-bb1e-aaabbbcccdef

What is your hosting setup for n8n? That might help identify where the request is getting altered between hubla and n8n.

Example JSON from webhook node, when it is working.

[
{
"headers": 
{
"host": 
"your-public-host-n8n-name.example.com",
"user-agent": 
"vscode-restclient",
"content-length": 
"24",
"accept-encoding": 
"gzip, deflate",
"content-type": 
"application/json",
"x-forwarded-for": 
"192.168.87.46",
"x-forwarded-host": 
"your-public-host-n8n-name.example.com",
"x-forwarded-port": 
"443",
"x-forwarded-proto": 
"https",
"x-forwarded-server": 
"6d315e6e88e5",
"x-real-ip": 
"192.168.1.110"
},
"params": 
{
},
"query": 
{
},
"body": 
{
"test": 
"json"
},
"webhookUrl": 
"https://your-public-host-n8n-name.example.com/webhook/eeee4d04-2607-4fde-8e49-2ef2455979cb",
"executionMode": 
"production"
}
]