{
  "name": "Generate VEED AI talking head videos from sheet rows with OpenAI or ElevenLabs",
  "nodes": [
    {
      "id": "edf08cb5-6faa-4d85-987a-5095390741df",
      "name": "Sticky Note - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4560,
        944
      ],
      "parameters": {
        "width": 400,
        "height": 1824,
        "content": "# VEED AI Talking Head Video Generator\n\nA production-ready n8n workflow that generates AI avatar videos from images and text using **VEED Fabric 1.0**, with flexible multi-platform publishing capabili"
      }
    },
    {
      "id": "159b7d17-15d4-4212-bd24-059876349849",
      "name": "Sticky Note - Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4976,
        944
      ],
      "parameters": {
        "width": 440,
        "height": 1824,
        "content": "## Setup Instructions\n\n### Step 1: Create Google Sheet\nCreate a new Google Sheet with these columns:\n- `AVATAR_IMAGE_URL` - Public URL to portrait image\n- `NARRATION_TEXT` - Text for the avatar to spe"
      }
    },
    {
      "id": "9305fe8a-27af-4c69-96d4-f799b6d4885c",
      "name": "Sticky Note - Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5424,
        944
      ],
      "parameters": {
        "width": 1176,
        "height": 1832,
        "content": "## 1. Trigger & Input\n\nWorkflow triggers either:\n- **Manual**: Click \"Test workflow\"\n- **Scheduled**: Every 15 minutes\n\nFetches rows from Google Sheets where `STATUS = new`, then processes them **one "
      }
    },
    {
      "id": "a193bcdf-7ad4-4c91-a0ce-ef9f2260bc62",
      "name": "Sticky Note - TTS",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6608,
        944
      ],
      "parameters": {
        "width": 1432,
        "height": 1824,
        "content": "## 2. Text-to-Speech Generation\n\nChoose TTS provider in your Google Sheet:\n\n**OpenAI TTS** (default)\n- Model: tts-1-hd\n- Voices: alloy, echo, fable, nova, onyx, shimmer\n\n\n**ElevenLabs**\n- Model: eleve"
      }
    },
    {
      "id": "12488180-66a3-4273-9edf-673c8184e629",
      "name": "Sticky Note - VEED",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        8048,
        944
      ],
      "parameters": {
        "width": 712,
        "height": 1820,
        "content": "## 3. VEED Video Generation\n\nUsing **VEED Fabric 1.0** model via Fal.ai\n\n**Requirements:**\n- Front-facing portrait photo (URL)\n- Audio file (MP3 from Google Drive)\n\n\n**Options:**\n- Resolution: 480p (f"
      }
    },
    {
      "id": "7a8c4d46-768d-4003-96f6-ee2c7d9681a4",
      "name": "Sticky Note - Approval",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        8768,
        944
      ],
      "parameters": {
        "width": 744,
        "height": 1816,
        "content": "## 4. Approval Workflow\n\nAfter video generation, an email is sent with:\n- Video preview link\n- Video metadata (title, description, platforms)\n- **Approve** / **Reject** buttons\n\n\n**Timeout:** 24 hours"
      }
    },
    {
      "id": "60b17788-d14d-4aeb-86c9-0a3ad8aa6738",
      "name": "Sticky Note - Publishing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        9520,
        944
      ],
      "parameters": {
        "width": 1520,
        "height": 1828,
        "content": "## 5. Multi-Platform Publishing\n\nSupported platforms (configure in PLATFORMS column):\n\n**Instagram** - Reels API (requires Business Account, uses Facebook Graph API)\n**YouTube** - Auto-detects Shorts "
      }
    },
    {
      "id": "e943d97f-6289-485a-b074-e23f628cb6b1",
      "name": "When clicking 'Test workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        5472,
        1408
      ]
    },
    {
      "id": "220f9f1c-556e-4d9c-bafe-d77a8983e581",
      "name": "Check for New Videos",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        5472,
        1600
      ]
    },
    {
      "id": "123fe60b-731d-46e3-b6b4-012ab69b5323",
      "name": "Get New Video Requests",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        5728,
        1504
      ]
    },
    {
      "id": "56b98ab9-7af2-4f8d-9e21-42a1ceed5fb4",
      "name": "Filter Status New",
      "type": "n8n-nodes-base.filter",
      "position": [
        5952,
        1504
      ]
    },
    {
      "id": "0dc800b2-3e1a-4782-9437-fafdf1936396",
      "name": "Loop Over Rows",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        6192,
        1504
      ]
    },
    {
      "id": "99fedab8-f52d-4004-a5ad-a7fc9d6084b5",
      "name": "Mark as Processing",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        6432,
        1520
      ]
    },
    {
      "id": "d6231826-898a-4618-9eb5-aa1a8cf20d41",
      "name": "Prepare Video Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        6672,
        1520
      ]
    },
    {
      "id": "23f614af-32ee-4a53-b0f9-89bd98761550",
      "name": "TTS Provider?",
      "type": "n8n-nodes-base.if",
      "position": [
        6912,
        1520
      ]
    },
    {
      "id": "721cdc03-ad6b-4420-9198-9922831fed82",
      "name": "ElevenLabs TTS",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        7152,
        1424
      ]
    },
    {
      "id": "c1d12676-b8f4-4b5a-ae41-c735cfc274c4",
      "name": "OpenAI TTS",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        7152,
        1616
      ]
    },
    {
      "id": "99db6991-e1d0-4773-a1a3-0d6fac5db15b",
      "name": "Merge TTS",
      "type": "n8n-nodes-base.merge",
      "position": [
        7392,
        1520
      ]
    },
    {
      "id": "b1204e5b-86b8-4fa9-a7be-a6a7426e2c1c",
      "name": "Upload to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        7632,
        1520
      ]
    },
    {
      "id": "827f377e-fb11-49bc-878e-d6a3dd3cbefe",
      "name": "Make Public",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        7872,
        1520
      ]
    },
    {
      "id": "b7dfce0b-1910-4a4c-9c76-06b7cb79d60b",
      "name": "Set Audio URL",
      "type": "n8n-nodes-base.set",
      "position": [
        8112,
        1520
      ]
    },
    {
      "id": "8882b177-edfb-49ec-bd0a-fa9210015742",
      "name": "VEED Generate Video",
      "type": "n8n-nodes-veed.veed",
      "position": [
        8352,
        1520
      ]
    },
    {
      "id": "b5fcc71d-ab9c-4748-b23a-ecbffaf8cf7b",
      "name": "VEED Error?",
      "type": "n8n-nodes-base.if",
      "position": [
        8592,
        1520
      ]
    },
    {
      "id": "ad5d384b-f655-48fd-a2cb-6bed0b843cb4",
      "name": "Update Sheet - Error",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        8256,
        1792
      ]
    },
    {
      "id": "0f3bba73-368e-4f2c-b867-42fa97e00207",
      "name": "Send Error Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        8480,
        1792
      ]
    },
    {
      "id": "9997d32f-0898-4709-af13-a6e1a734ba9c",
      "name": "Format Email",
      "type": "n8n-nodes-base.set",
      "position": [
        8832,
        1536
      ]
    },
    {
      "id": "037d4152-af28-4725-ba02-2290479e5f29",
      "name": "Send Approval Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        9072,
        1536
      ]
    },
    {
      "id": "db445d37-813d-4ad9-887f-bb898bcde7fe",
      "name": "Approved?",
      "type": "n8n-nodes-base.if",
      "position": [
        9312,
        1536
      ]
    },
    {
      "id": "33a5d4a4-1801-4d85-a5bb-8fc48e658fa0",
      "name": "Log Rejection",
      "type": "n8n-nodes-base.set",
      "position": [
        8960,
        1792
      ]
    },
    {
      "id": "30246a95-064e-4a78-955a-5395462cf81b",
      "name": "Update Sheet - Rejected",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        9200,
        1792
      ]
    },
    {
      "id": "3614c749-4dd7-435c-be06-fcc50105775e",
      "name": "Prepare Publish Data",
      "type": "n8n-nodes-base.set",
      "position": [
        9600,
        1520
      ]
    },
    {
      "id": "ece6ce5f-3eac-4565-8380-1edc68ecee3e",
      "name": "Download Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        9808,
        1520
      ]
    },
    {
      "id": "d3620f4e-b6ff-499f-a9ff-778009480935",
      "name": "Split Out Platforms",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        10016,
        1520
      ]
    },
    {
      "id": "loop-over-platforms-id",
      "name": "Loop Over Platforms",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        10224,
        1520
      ]
    },
    {
      "id": "609bc2d8-31c9-41b6-98ca-3ea9ee504318",
      "name": "Platform Router",
      "type": "n8n-nodes-base.switch",
      "position": [
        9616,
        1808
      ]
    },
    {
      "id": "976269d4-2ac5-4095-aab2-14c41adcd1f4",
      "name": "Instagram Create",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        9824,
        1792
      ]
    },
    {
      "id": "e97bde38-3c51-4f51-9396-3961623d96f7",
      "name": "Wait 90s",
      "type": "n8n-nodes-base.wait",
      "position": [
        10064,
        1792
      ]
    },
    {
      "id": "1f5dca32-a32c-41e2-bd1d-4fe16c0a68bb",
      "name": "Instagram Publish",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        10288,
        1792
      ]
    },
    {
      "id": "86d03128-22a6-4f63-a92c-93cd8d72fa00",
      "name": "YouTube Upload",
      "type": "n8n-nodes-base.youTube",
      "position": [
        9824,
        1984
      ]
    },
    {
      "id": "7ca0bc27-4d81-4728-8da4-10da035d4c81",
      "name": "Facebook Post",
      "type": "n8n-nodes-base.facebookGraphApi",
      "position": [
        9824,
        2176
      ]
    },
    {
      "id": "b4ec7774-49d0-4ef1-b6ab-8cf38c3c0a1f",
      "name": "Telegram Post",
      "type": "n8n-nodes-base.telegram",
      "position": [
        9824,
        2352
      ]
    },
    {
      "id": "ad86ac83-94b7-476c-94e1-6c97e5e6d62c",
      "name": "Threads Create Container",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        9824,
        2528
      ]
    },
    {
      "id": "c185d2cc-5393-427a-84be-3a081b6ccf3d",
      "name": "Wait 30s Threads",
      "type": "n8n-nodes-base.wait",
      "position": [
        10064,
        2528
      ]
    },
    {
      "id": "a5e10434-2288-426d-bfdc-ad7f77fe7974",
      "name": "Threads Publish",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        10288,
        2528
      ]
    },
    {
      "id": "dae25d64-0a74-42af-98a8-3d4e7a422f4a",
      "name": "Format Threads Result",
      "type": "n8n-nodes-base.set",
      "position": [
        10528,
        2528
      ]
    },
    {
      "id": "74e678cd-96cd-4a76-8fc8-467bd7d86121",
      "name": "Format Telegram Result",
      "type": "n8n-nodes-base.set",
      "position": [
        10528,
        2352
      ]
    },
    {
      "id": "f9e01933-34a0-4543-9ada-ed0965e01fd5",
      "name": "Format Instagram Result",
      "type": "n8n-nodes-base.set",
      "position": [
        10528,
        1792
      ]
    },
    {
      "id": "2d35f92b-a2de-4a8f-8c4f-52ff87752d32",
      "name": "Format YouTube Result",
      "type": "n8n-nodes-base.set",
      "position": [
        10528,
        1984
      ]
    },
    {
      "id": "63a54253-e51e-42f0-bd45-650bec919900",
      "name": "Format Facebook Result",
      "type": "n8n-nodes-base.set",
      "position": [
        10528,
        2176
      ]
    },
    {
      "id": "7938b794-97b8-43be-8eae-cfdb41bfb770",
      "name": "Aggregate Platform Results",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        11136,
        1504
      ]
    },
    {
      "id": "97dfdcde-2aed-439e-adeb-c5f64e9d2916",
      "name": "Format Results",
      "type": "n8n-nodes-base.set",
      "position": [
        11344,
        1504
      ]
    },
    {
      "id": "c507eb7e-38e7-4f99-8aa5-da0f3d284203",
      "name": "Update Sheet - Published",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        11584,
        1504
      ]
    },
    {
      "id": "7e8f6fad-e944-4ae3-8d30-7e593b4c1795",
      "name": "Send Report Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        11824,
        2528
      ]
    },
    {
      "id": "55782029-e7d6-4aa4-85ba-02599f235bcc",
      "name": "Sticky Note - Report",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        11056,
        944
      ],
      "parameters": {
        "width": 976,
        "height": 1828,
        "content": "## 6. Status Update & Report\n\nAfter publishing, the workflow:\n1. Aggregates results from all selected platforms\n2. Updates Google Sheet with video URL and status\n3. Sends detailed email report with pe"
      }
    }
  ],
  "connections": {
    "Wait 90s": {
      "main": [
        [
          {
            "node": "Instagram Publish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Approved?": {
      "main": [
        [
          {
            "node": "Prepare Publish Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Log Rejection",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge TTS": {
      "main": [
        [
          {
            "node": "Upload to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI TTS": {
      "main": [
        [
          {
            "node": "Merge TTS",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Make Public": {
      "main": [
        [
          {
            "node": "Set Audio URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VEED Error?": {
      "main": [
        [
          {
            "node": "Update Sheet - Error",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Format Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Email": {
      "main": [
        [
          {
            "node": "Send Approval Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Facebook Post": {
      "main": [
        [
          {
            "node": "Format Facebook Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Rejection": {
      "main": [
        [
          {
            "node": "Update Sheet - Rejected",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Audio URL": {
      "main": [
        [
          {
            "node": "VEED Generate Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "TTS Provider?": {
      "main": [
        [
          {
            "node": "ElevenLabs TTS",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OpenAI TTS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Post": {
      "main": [
        [
          {
            "node": "Format Telegram Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Video": {
      "main": [
        [
          {
            "node": "Split Out Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ElevenLabs TTS": {
      "main": [
        [
          {
            "node": "Merge TTS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Results": {
      "main": [
        [
          {
            "node": "Update Sheet - Published",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Rows": {
      "main": [
        [],
        [
          {
            "node": "Mark as Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube Upload": {
      "main": [
        [
          {
            "node": "Format YouTube Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Platform Router": {
      "main": [
        [
          {
            "node": "Instagram Create",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "YouTube Upload",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Facebook Post",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Telegram Post",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Threads Create Container",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Threads Publish": {
      "main": [
        [
          {
            "node": "Format Threads Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Drive": {
      "main": [
        [
          {
            "node": "Make Public",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram Create": {
      "main": [
        [
          {
            "node": "Wait 90s",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Error Email": {
      "main": [
        [
          {
            "node": "Loop Over Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30s Threads": {
      "main": [
        [
          {
            "node": "Threads Publish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Status New": {
      "main": [
        [
          {
            "node": "Loop Over Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram Publish": {
      "main": [
        [
          {
            "node": "Format Instagram Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Report Email": {
      "main": [
        [
          {
            "node": "Loop Over Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark as Processing": {
      "main": [
        [
          {
            "node": "Prepare Video Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Platforms": {
      "main": [
        [
          {
            "node": "Aggregate Platform Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Platform Router",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Approval Email": {
      "main": [
        [
          {
            "node": "Approved?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Platforms": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VEED Generate Video": {
      "main": [
        [
          {
            "node": "VEED Error?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for New Videos": {
      "main": [
        [
          {
            "node": "Get New Video Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Publish Data": {
      "main": [
        [
          {
            "node": "Download Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet - Error": {
      "main": [
        [
          {
            "node": "Send Error Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Threads Result": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format YouTube Result": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Facebook Result": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Telegram Result": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get New Video Requests": {
      "main": [
        [
          {
            "node": "Filter Status New",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Instagram Result": {
      "main": [
        [
          {
            "node": "Loop Over Platforms",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet - Rejected": {
      "main": [
        [
          {
            "node": "Loop Over Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Video Parameters": {
      "main": [
        [
          {
            "node": "TTS Provider?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Threads Create Container": {
      "main": [
        [
          {
            "node": "Wait 30s Threads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet - Published": {
      "main": [
        [
          {
            "node": "Send Report Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Platform Results": {
      "main": [
        [
          {
            "node": "Format Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking 'Test workflow'": {
      "main": [
        [
          {
            "node": "Get New Video Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}