Service Request node error


This is the error i got when i try to send the message or reply back to user whoever send message to my business whatsapp number.

My error json body is this →

{
“phone”:“{{ $json.body.data.data.value.messages[0].from }}”,
“message”:“Still in Development”
}

It is valid json body.

Also i want to mention that this json body is working whereas the above one is not working.
{
“phone”:“{{ $json.body.data.data.value.messages[0].from }}”,
“message”:“Please Select your preferred option:”,
“Header”:“Choose Service”,
“buttonLabel”:“HR Services”,
“sections”:[
{
“title”:“HR Services”,
“rows”: [
{
“id”:“get_employee_details”,
“title”:“Get My Details”
},
{
“id”:“available_leave”,
“title”:“My Leave Balance”
},
{
“id”:“hr_letters”,
“title”:“HR Letters”
},
{
“id”:“payslip”,
“title”:“Payslip”
},
{
“id”:“apply_leave”,
“title”:“Apply Leave”
},
{
“id”:“oauth_gettasks”,
“title”:“My Pending Actions”
}
]
}
]
}

What could be the reason i tried different options send content type in the header and i tried to send same json body through the postman it is working but not in this http request node why? Also i have to mention that error only occur when i tried to send the json body if i use the using fields below then it doesn’t show any error it working fine.

Anybody help me.

Note: I create two node with the same details like token and url and all are same but one is working another is not. if i copy paste the json body of working node into the error node it is working why? what is reason for that behaviour in http request?

Please solve this error as soon as possible. Thanks in advance.!!

Hello Santhuv

In the Output panel on the right, look closely at the Request section. It will show you exactly what text was sent to the server. Check if the {{}} expression actually resolved to a real phone number.

FIRST_ERROR_IMAGE

Yes it was sending whatever i send but at last it send json = false why? i am sending json only right?

@santhuvaddelli the json = false in your request options means n8n is sending the body as a raw string instead of parsed JSON — the Zapgen API chokes on that. happens when expressions inside the raw JSON body don’t resolve cleanly. ditch the raw JSON input and build the body with a Set node instead, then let the HTTP Request node pull from expressions:

plug your Bearer token into the HTTP Request node auth, connect your webhook trigger before the Set node and you’re good.