This workflow corresponds to n8n.io template #3054 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "0f70dc82-f4af-444a-a3eb-381623091cb1",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-980,
-200
],
"parameters": {},
"typeVersion": 1
},
{
"id": "cff3d74c-b381-42f9-96c0-b607a410ffeb",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
-180,
-200
],
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "0ec6969b-17e2-41c3-a2c1-2c362cda54ce",
"name": "Output",
"type": "n8n-nodes-base.set",
"position": [
440,
-180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "53226f92-5381-4f9f-9be5-4b25f31db99c",
"name": "data.video_url",
"type": "string",
"value": "={{ $json.data.video_url }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "887660ad-0ca3-4364-a2d2-443349de19de",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-260,
-300
],
"parameters": {
"color": 7,
"width": 660,
"height": 340,
"content": "## Check video status"
},
"typeVersion": 1
},
{
"id": "7c9ee0c5-9a0a-44be-8d8a-4af99c2f3022",
"name": "is Completed",
"type": "n8n-nodes-base.if",
"position": [
220,
-200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2643b070-cbb2-4562-9269-a61389e0c242",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data.status }}",
"rightValue": "completed"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "893813b4-1a55-4e21-a7a4-da47bf60ada2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1920,
-320
],
"parameters": {
"width": 820,
"height": 860,
"content": "# Generate AI Videos with HeyGen in n8n\n\nThis workflow allows you to generate AI-powered videos using [HeyGen](https://www.heygen.com), a platform that provides customizable AI avatars and voices. By integrating HeyGen with n8n, you can create videos by providing a text input, which is then spoken by an AI-generated avatar.\n\n# [\ud83d\udc49\ud83c\udffb Try HeyGen for free \ud83d\udc48\ud83c\udffb](https://www.heygen.com)\n\n## Setup\n\n### Step 1: Create a HeyGen Account & API Key\n1. Sign up for a [HeyGen account](https://www.heygen.com).\n2. Navigate to your account settings and locate your **API Key**.\n3. Copy your API key for use in n8n.\n\n\n\u26a0\ufe0f To use Heygen API you need to purchase API credits\n\n### Step 2: Create n8n Credentials\n1. In n8n, create new credentials and select **\"Custom Auth\"** as the authentication type.\n2. In the Name provide : `X-Api-Key`\n3. And in the value paste your API key from Heygen\n4. Update the 2 http node with the right credentials.\n\n### Step 3: Choose an Avatar and a Voice\nHeyGen provides multiple AI avatars and voice options. You need to choose:\n- An **Avatar ID** (representing the AI-generated presenter)\n- A **Voice ID** (which will read your text)\n\nTo find available avatars and voices:\n1. Visit the HeyGen [API Documentation](https://www.heygen.com/api) or check the list in your HeyGen account.\n2. Copy the **Avatar ID** and **Voice ID** that you want to use.\n"
},
"typeVersion": 1
},
{
"id": "36e45b12-1edd-45ec-b3d2-ac3b6f78f7b1",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
60
],
"parameters": {
"width": 440,
"height": 180,
"content": "# \u261d\ufe0f Provide Video Details\n\n - **Avatar ID** \n - **Voice ID** \n - **Text**"
},
"typeVersion": 1
},
{
"id": "c0ebe61f-ca8f-4928-8e89-93ef50aa17ee",
"name": "Create Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-500,
-140
],
"parameters": {
"url": "https://api.heygen.com/v2/video/generate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"video_inputs\": [\n {\n \"character\": {\n \"type\": \"avatar\",\n \"avatar_id\": \"{{ $json.avatar_id }}\",\n \"avatar_style\": \"normal\"\n },\n \"voice\": {\n \"type\": \"text\",\n \"input_text\": \"{{ $json.text }}\",\n \"voice_id\": \"{{ $json.voice_id }}\",\n \"speed\": 1\n }\n }\n ],\n \"caption\": true,\n \"dimension\": {\n \"width\": 1080,\n \"height\": 1920\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "2fd1e0cf-0dc0-4ef5-b5a0-52c87631efd7",
"name": "Config",
"type": "n8n-nodes-base.set",
"position": [
-740,
-120
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "dc091aca-844f-404f-ad0c-8ad4b48a505b",
"name": "avatar_id",
"type": "string",
"value": "7895d2d9f4f9453899e1d80e5accb6be"
},
{
"id": "eb2ed34c-53d2-41e8-ab2f-1b8278bde235",
"name": "voice_id",
"type": "string",
"value": "PBgwoAVFZIC0UB6sU914"
},
{
"id": "2c939d6c-73f8-482d-b11f-71bdd7baf04e",
"name": "text",
"type": "string",
"value": "Imagine ADHD as that super energetic friend who jumps from one cool idea to the next. Now, add AI\u2014the smart helper trying to keep things on track. Sometimes, they work together perfectly, and other times, things get a little goofy. One minute you're starting a project, and the next, you're off chasing a shiny new idea! But that's the fun of it. With a bit of AI magic, even the craziest thoughts find their place. Embrace the chaos, laugh at the mix-ups, and let your creativity shine!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c63f1b7a-0ec0-4329-aeee-229e8433add7",
"name": "Get Video Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
20,
-200
],
"parameters": {
"url": "https://api.heygen.com/v1/video_status.get",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "video_id",
"value": "={{ $('Create Video').first().json.data.video_id }}"
}
]
}
},
"credentials": {
"httpCustomAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
}
],
"connections": {
"Wait": {
"main": [
[
{
"node": "Get Video Status",
"type": "main",
"index": 0
}
]
]
},
"Config": {
"main": [
[
{
"node": "Create Video",
"type": "main",
"index": 0
}
]
]
},
"Create Video": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"is Completed": {
"main": [
[
{
"node": "Output",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Get Video Status": {
"main": [
[
{
"node": "is Completed",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Config",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpCustomAuthhttpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow enables you to generate realistic AI videos using HeyGen, an advanced AI platform for video automation. Simply input your text, choose an AI avatar and voice, and let HeyGen generate a high-quality video for you – all within n8n!
Source: https://n8n.io/workflows/3054/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t
[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.
[](https://youtu.be/c7yCZhmMjtI)
This automation organizes your n8n workflows files into categorizes (Active, Template, Done, Archived) and uploads them directly to a categorized Google Drive folders. It is designed to help users man
Create Animated Stories using GPT-4o-mini, Midjourney, Kling and Creatomate API. Uses httpRequest. Event-driven trigger; 51 nodes.