I copy & pasted a workflow and therefore was surprised, when i figured out that "ERROR: JSON parameter need to be an valid JSON.
As the only change i have to do is adding the API, i am really wondering what could go wrong.
This is the video: https://www.youtube.com/watch?v=8sPYxqU1SoQ
This is the workflow that can be downloaded and implemented: https://drive.google.com/file/d/1-uKPgRFyNVTsZ7NkpF-Gm6gaijvBPbXJ/view
I stuck at the HeyGen part around 07:56
{
“video_inputs”: [
{
“character”: {
“type”: “avatar”,
“avatar_id”: “{{ $json.avatar_id }}”,
“avatar_style”: “normal”,
“scale”: 1.0,
“offset”: {
“x”: 0.0,
“y”: 0.0
},
“matting”: false
},
“voice”: {
“type”: “text”,
“input_text”: “{{ $(‘AI Agent’).item.json.output }}”,
“voice_id”: “{{ $json.voice_id }}”,
“speed”: 1.1,
“pitch”: 50,
“emotion”: “Excited”
},
“background”: {
“type”: “video”,
“url”: “{{ $json.background_video_url }}”,
“play_style”: “loop”,
“fit”: “cover”
}
}
],
“dimension”: {
“width”: 720,
“height”: 1280
},
“aspect_ratio”: “9:16”,
“caption”: false,
“title”: “n8n TEST AVATAR”
}
@MrQuarps Hi, which parts have you edited so far? You would need to edit just the ‘Setup Heygen’ node and provide your API, which seems you have, as well as an avatar ID and voice ID. If nothing else is changed, it should work perfectly fine. Let me know, as it is working all okay on my side. Can you show the edit fields node called ‘Setup HeyGen’, please remember to remove any sensitive data.
Best regards,
Samuel
Yeah, that’s actually the funny part. I feel like that this is exactly what i did. However i had another workflow before and even there i had same issues with jSon, but with a HTTP request and not within the current node.
Anyway, i am providing you the Edit Fields. 
Copied Error Details in the Create Avatar Node:
{
“errorMessage”: “JSON parameter needs to be valid JSON”,
“errorDetails”: {},
“n8nDetails”: {
“nodeName”: “Create Avatar Video”,
“nodeType”: “n8n-nodes-base.httpRequest”,
“nodeVersion”: 4.2,
“itemIndex”: 0,
“time”: “10.5.2025, 21:57:03”,
“n8nVersion”: “1.91.2 (Cloud)”,
“binaryDataMode”: “filesystem”,
“stackTrace”: [
“NodeOperationError: JSON parameter needs to be valid JSON”,
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:266:23)“,
" at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:687:50)”,
" at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:921:62",
" at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:1257:20"
]
}
}
One thing I noticed is the avatar_id—try using “Caroline_expressive_public”. It seems you may be using an avatar group ID instead, which could be causing the issue.
That said, this doesn’t fully explain why other requests are failing as well. Are any requests working successfully, or is this error happening consistently?
The JSON structure appears correct, so the issue may be related to the runtime environment. You could try upgrading your n8n cloud instance to the latest version, or simply restarting it. I tested this on version 1.89.2, but I’ve seen that a few related bugs have been fixed in more recent versions.
You can follow this guide to update your n8n Cloud instance:
This might be the quickest way to resolve the issue.
Thank you so much for your support. Your input helped a bit, also some members on the discord server were able to build a workaround with me and helped me troublehsooting it through, however we made it. Even corrected the other workflow.
However there comes a new issue. I am sending data to HeyGen from n8n to the HeyGen API, but the videos can’t get crafted. The result is sad ^^