AutomationFlowsAI & RAG › Turn RSS Feed Content Into AI Avatar Videos with Heygen, Claude, and Postpulse

Turn RSS Feed Content Into AI Avatar Videos with Heygen, Claude, and Postpulse

ByOleksandr Pohorelov @alex97po on n8n.io

This workflow takes content from an RSS feed, turns it into script with Anthropic's Claude, turns script into AI avatar videos using HeyGen's create video endpoint, retrieves the generated clip with the get video endpoint and schedules the video to social media with PostPulse.

Event trigger★★★★☆ complexityAI-powered12 nodesRss Feed Read TriggerHTTP Request@Postpulse/N8N Nodes PostpulseAnthropic
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #15750 — 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 →

Download .json
{
  "id": "8Gdxw03epzPA3zML",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Turn RSS Feed Content into AI Avatar Videos",
  "tags": [],
  "nodes": [
    {
      "id": "9e93d5b0-35e5-4cd5-a4f4-1b8bbaf9f7a5",
      "name": "RSS Feed Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        -256,
        192
      ],
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dcc17c2e-8e49-449c-b6be-0040c2319d6c",
      "name": "Create Avatar Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        288,
        192
      ],
      "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\": \"e18d0999245c498ca9ffe38ccf851f2a\"\n      },\n      \"voice\": {\n        \"type\": \"text\",\n        \"input_text\": \"Hello, hey\",\n        \"voice_id\": \"4754e1ec667544b0bd18cdf4bec7d6a7\"\n      }\n    }\n  ],\n  \"dimension\": {\n    \"width\": 1280,\n    \"height\": 720\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "sk_V2_hgu_kIt9NC9dcVv_uD5xdsxNCtCK7BQxOxS6PYF5e77LRMQz"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "78ec1b08-3e48-40a1-8c83-64b90ca7d5aa",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        512,
        192
      ],
      "parameters": {
        "unit": "minutes"
      },
      "typeVersion": 1.1
    },
    {
      "id": "b58e3c3a-3845-4711-8271-568ecc5c2604",
      "name": "Upload media",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        1152,
        192
      ],
      "parameters": {
        "resource": "media"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f2320a95-ebde-4788-8117-72965300e4fc",
      "name": "Schedule a light post",
      "type": "@postpulse/n8n-nodes-postpulse.postPulse",
      "position": [
        1376,
        192
      ],
      "parameters": {
        "operation": "scheduleLight",
        "youtubeTitle": "Social Media Post",
        "scheduledTime": "2026-05-10T00:00:00",
        "attachmentPaths": "={{ $json.path }}",
        "socialMediaAccount": "YOUTUBE|1234"
      },
      "credentials": {
        "postPulseOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "306dc712-12a7-4ddf-ae37-72b4da5277af",
      "name": "Get Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        720,
        192
      ],
      "parameters": {
        "url": "=https://api.heygen.com/v3/videos/{{ $('Create Avatar Video').item.json.data.video_id }}",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": []
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "sk_V2_hgu_kIt9NC9dcVv_uD5xdsxNCtCK7BQxOxS6PYF5e77LRMQz"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "dd9ed903-2e0d-41bf-80c8-725072bf6984",
      "name": "Download Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        928,
        192
      ],
      "parameters": {
        "url": "={{ $json.data.video_url }}",
        "options": {}
      },
      "typeVersion": 4.4
    },
    {
      "id": "076af926-60f7-4242-905a-bb7bb08fcd3a",
      "name": "Create Video Script",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "position": [
        -48,
        192
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "claude-haiku-4-5-20251001",
          "cachedResultName": "claude-haiku-4-5-20251001"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Provide a summary of this reddit description as a sensational, informative script\n\nNOTE: PROVIDE ONLY THE OUTPUT:\n\n {{ $json.content }}"
            }
          ]
        }
      },
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "646ec306-c0f4-45b3-8678-9aa8cea8b3db",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        -320
      ],
      "parameters": {
        "width": 544,
        "height": 736,
        "content": "**Workflow Purpose**\nA content generation platform that turns RSS feed content into AI avatar videos with HeyGen and schedules them in PostPulse.\n\n## Workflow Steps\n**1. RSS Feed Trigger** \n* Triggers the worflow whenever a feed item is returned. \n\n\n**2. Create Video Script**\n* Create video script from the feed description, using Anthropic's Claude.\n\n\n**3. Create Avatar Video**\n* Create an AI avatar video using HeyGen's create a video endpoint and the script generated by Claude.\n\n\n**4. Pause Workflow**\n* Pause the workflow to allow the HeyGen video to generate. \n\n\n**5. Get Video**\n* Get generated video from HeyGen using the get video endpoint.\n\n\n**6. Download Generated Video**\n* Download generated video.\n\n\n**7. Upload Media**\n* Upload downloaded video to PostPulse to retrieve attachment ID.\n\n\n**8. Schedule Clips in PostPulse**\n* Schedule generated clips in PostPulse to go out daily.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fe28fe7c-a0d5-42b0-849c-7b42301e385a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 512,
        "height": 256,
        "content": "## Kick-Off workflow\n\nGets feed items from RSS feed trigger and generates a script summarizing the feed description, using Anthropic's Claude "
      },
      "typeVersion": 1
    },
    {
      "id": "e2ba9c68-951c-46c3-8d73-e5cdeb40c497",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 624,
        "height": 256,
        "content": "## Turns Script into AI Avatar Video\n\nCreates an AI avatar video using HeyGen's create a video endpoint and the generated script from Claude. The workflow pauses for 5 minutes while the videos are generated in HeyGen's platform before they're retrieved using the get video endpoint. "
      },
      "typeVersion": 1
    },
    {
      "id": "ceb3c56f-3bea-4c44-b236-0a0e59c52042",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 672,
        "height": 256,
        "content": "## Download Videos and Schedule Them For Social Media\n\nDownloads generated videos before uploading downloaded videos to PostPulse for attachment ID and schedules them with PostPulse."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "0e4f03b5-02ae-4350-91d4-b43eae30497e",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Get Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Video": {
      "main": [
        [
          {
            "node": "Download Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload media": {
      "main": [
        [
          {
            "node": "Schedule a light post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Video": {
      "main": [
        [
          {
            "node": "Upload media",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Feed Trigger": {
      "main": [
        [
          {
            "node": "Create Video Script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Avatar Video": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Video Script": {
      "main": [
        [
          {
            "node": "Create Avatar Video",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow takes content from an RSS feed, turns it into script with Anthropic's Claude, turns script into AI avatar videos using HeyGen's create video endpoint, retrieves the generated clip with the get video endpoint and schedules the video to social media with PostPulse.

Source: https://n8n.io/workflows/15750/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

++How it works++ This workflow takes post ideas and prompts from Airtable, creates viral social media content with Claude, and schedules daily posts in PostPulse.

Airtable Trigger, HTTP Request, @Postpulse/N8N Nodes Postpulse +2
AI & RAG

This workflow takes web URL's from Airtable, extract URL data with Dumpling AI, creates attention grabbing LinkedIn post with Claude, and schedules post in PostPulse.

Airtable Trigger, HTTP Request, Anthropic +2
AI & RAG

This n8n workflow automatically generates a comprehensive dataset of 50 AI search prompts tailored to a specific company.

Anthropic, HTTP Request, Form Trigger
AI & RAG

inoreader_AI->196267257. Uses httpRequest, openAi, telegram, airtable. Event-driven trigger; 28 nodes.

HTTP Request, OpenAI, Telegram +2
AI & RAG

Triggered by a GitLab MR webhook, this workflow automatically assists your team in writing customer-facing release notes by combining Linear issue data with Claude AI.

HTTP Request, RSS Feed Read, Gitlab Trigger +1