{
  "id": "O6VhKogJl7uQhxoM",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "\ud83d\udca5 HeyGen II - CLONE ME - From Idea to Post: GPT-5 Video Automation for YouTube, TikTok & Instagram - vide",
  "tags": [],
  "nodes": [
    {
      "id": "8bacbb69-ca03-4bfe-93e8-ef29cc768c9e",
      "name": "ID Avatar",
      "type": "n8n-nodes-base.set",
      "position": [
        -2208,
        32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2e9ea966-70fc-4477-b859-92c783610c6a",
              "name": "id_avatar",
              "type": "string",
              "value": "={{ $json['ID AVATAR'] }}"
            },
            {
              "id": "ea14b33c-a1cf-4000-bb1b-7bae0bad74ac",
              "name": "id_voice",
              "type": "string",
              "value": "={{ $json['ID VOICE'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d6171013-8ef6-43b7-b21e-00331d3bf02e",
      "name": "Upload Video to BLOTATO",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -2368,
        752
      ],
      "parameters": {
        "mediaUrl": "=https://drive.google.com/uc?export=download&id={{ $json.final_google_drive_url }}",
        "resource": "media"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4046855d-0cab-471a-b933-58238c77cd03",
      "name": "Youtube",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1360,
        528
      ],
      "parameters": {
        "options": {},
        "platform": "youtube",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "8047",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/8047",
          "cachedResultName": "DR FIRASS (Dr. Firas)"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}",
        "postCreateYoutubeOptionTitle": "={{ $('Google Sheets - Read Post Data').item.json.Title }}",
        "postCreateYoutubeOptionPrivacyStatus": "private",
        "postCreateYoutubeOptionShouldNotifySubscribers": false
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "14e90495-53e5-4d30-a739-f0274ac49237",
      "name": "Tiktok",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1936,
        352
      ],
      "parameters": {
        "options": {},
        "platform": "tiktok",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "9332",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/9332",
          "cachedResultName": "docteur.firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "0448a51f-aaa6-4ba2-b039-06ed1ad2cebd",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -976,
        432
      ],
      "parameters": {
        "mode": "chooseBranch",
        "numberInputs": 9
      },
      "typeVersion": 3.2
    },
    {
      "id": "9f85e352-a80a-4d7e-95a3-eb44b5e6ece9",
      "name": "Linkedin",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1664,
        352
      ],
      "parameters": {
        "options": {},
        "platform": "linkedin",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1446",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1446",
          "cachedResultName": "Samuel Amalric"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "77b1d78e-871d-4c5e-9059-975c00ea8148",
      "name": "Facebook",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1360,
        352
      ],
      "parameters": {
        "options": {},
        "platform": "facebook",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1759",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759",
          "cachedResultName": "Firass Ben"
        },
        "facebookPageId": {
          "__rl": true,
          "mode": "list",
          "value": "101603614680195",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759/subaccounts/101603614680195",
          "cachedResultName": "Dr. Firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "0697ca5c-ffca-47f4-8580-f19a2fd5dd63",
      "name": "Instagram",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1936,
        528
      ],
      "parameters": {
        "options": {
          "instagramMediaType": "reel"
        },
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "7341",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/7341",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "123225b0-7ace-4304-a7ee-7e116357d471",
      "name": "Threads",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1936,
        720
      ],
      "parameters": {
        "options": {},
        "platform": "threads",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "2280",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/2280",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "00c29455-4e5d-46c6-bb58-ff6d59fcbb6e",
      "name": "Bluesky",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1664,
        720
      ],
      "parameters": {
        "options": {},
        "platform": "bluesky",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "6012",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/6012",
          "cachedResultName": "formationinternet.bsky.social"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "9deed3dc-846f-414b-9693-8972f3af4bca",
      "name": "Pinterest",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1360,
        720
      ],
      "parameters": {
        "options": {},
        "platform": "pinterest",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "363",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/363",
          "cachedResultName": "formationinternet2022"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "pinterestBoardId": {
          "__rl": true,
          "mode": "id",
          "value": "1146658823815436667"
        },
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "634c8371-34b1-4a39-ba59-51d6a648cb79",
      "name": "Twitter (X)",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "disabled": true,
      "position": [
        -1664,
        528
      ],
      "parameters": {
        "options": {},
        "platform": "twitter",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1289",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1289",
          "cachedResultName": "Docteur_Firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "3614fe10-1f54-4462-b9d3-0d8ab4181f22",
      "name": "Get Google Drive ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -2368,
        544
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1750d20-2f6e-4826-80b8-654d0985120d",
              "name": "final_google_drive_url",
              "type": "string",
              "value": "={{ $json['URL VIDEO FINAL'].match(/https:\\/\\/drive\\.google\\.com\\/file\\/d\\/([A-Za-z0-9_-]+)/i)[1] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1eac3d7c-b6ce-4a66-9d48-d22b4dee94d2",
      "name": "Google Sheets - Update Status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -752,
        352
      ],
      "parameters": {
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "3970a5a3-296f-450a-be06-769599c0aa06",
      "name": "OpenAI - Transcribe Video to Text",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -1888,
        -528
      ],
      "parameters": {
        "options": {
          "language": "fr",
          "temperature": 0
        },
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "c0d8c807-18ff-4bcf-8793-669546b35a12",
      "name": "OpenAI Model GPT-5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1168,
        -288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "gpt-5-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "49a117f1-6c99-47db-bc63-1edbc65fe1e4",
      "name": "LangChain - Think Tool",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -992,
        -288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d5bbb0c4-6420-4309-99f1-b27cb7898a12",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2496,
        -624
      ],
      "parameters": {
        "width": 1040,
        "height": 512,
        "content": "# Step 1 \u2014 Capture & Transcribe Voice Input"
      },
      "typeVersion": 1
    },
    {
      "id": "38608256-9c49-4b67-beef-ecdc705e4bee",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1424,
        -624
      ],
      "parameters": {
        "width": 912,
        "height": 512,
        "content": "# Step 2 \u2014 Generate Title & Caption & Script with GPT\u20115\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6c1df7b3-0344-4958-a92f-3df835c025cc",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2480,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 1968,
        "height": 320,
        "content": "# Step 3 \u2014 Create AI Avatar Video (HeyGen)"
      },
      "typeVersion": 1
    },
    {
      "id": "1ca3a432-0926-4e1a-8e5f-b8c107dbc7ea",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2496,
        272
      ],
      "parameters": {
        "width": 1976,
        "height": 664,
        "content": "# \ud83d\ude80 Step 4 \u2014 Auto-Publish to 9 Social Platforms"
      },
      "typeVersion": 1
    },
    {
      "id": "3d01cbe5-d17d-457c-8867-b80ede98526f",
      "name": "Telegram Trigger: Receive Voice Message",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -2416,
        -304
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b6587b49-46b8-4247-9fbe-2f0ed8f5e687",
      "name": "Telegram: Download Voice",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -2096,
        -304
      ],
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3f56954a-85ae-4073-a597-e7ec5b3b0ad0",
      "name": "Google Drive: Upload Voice",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1888,
        -304
      ],
      "parameters": {
        "name": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.voice.file_unique_id }}",
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5602473d-1449-47a5-8676-25a38fe7c509",
      "name": "Google Sheets: Log Voice Metadata",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1680,
        -304
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID VOICE": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.voice.file_unique_id }}",
            "URL VOICE": "={{ $json.webViewLink }}"
          },
          "schema": [
            {
              "id": "ID VOICE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VOICE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID VOICE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "ede833b5-fdb6-4e89-866b-0e1a3b3e42a5",
      "name": "HeyGen: List Avatars",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2400,
        -528
      ],
      "parameters": {
        "url": "https://api.heygen.com/v2/avatars",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "27c4a0d9-7a15-417e-9827-40ebb80348cb",
      "name": "Google Sheets: Read Avatar Config",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2400,
        32
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "79f9fb76-9e3f-4663-8497-4418fa5a3ab2",
      "name": "HeyGen: Generate Avatar Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1792,
        32
      ],
      "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\": \"{{ $('ID Avatar').item.json.id_avatar }}\",\n        \"avatar_style\": \"normal\"\n      },\n      \"voice\": {\n        \"type\": \"text\",\n        \"input_text\": \"{{ $json.Script }}\",\n        \"voice_id\": \"{{ $('ID Avatar').item.json.id_voice }}\"\n      }\n    }\n  ],\n  \"dimension\": {\n    \"width\": 1280,\n    \"height\": 720\n  }\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "863d7fed-05d0-4172-adbf-34147b340aed",
      "name": "Wait for Rendering",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1568,
        32
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "181fcfd9-28b3-465c-a6ad-5a51457aebe0",
      "name": "HeyGen: Check Video Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1376,
        32
      ],
      "parameters": {
        "url": "=https://api.heygen.com/v1/video_status.get?video_id={{ $('HeyGen: Generate Avatar Video').item.json.data.video_id }}",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a5df5318-d518-4520-ab25-f7575d5e360a",
      "name": "If: Video Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1152,
        32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d5963870-0093-4333-b2a6-39ddd9803a6a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "completed"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "0bb8684f-b280-4c14-9ea8-892134a14fb9",
      "name": "HTTP: Download Final Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -912,
        32
      ],
      "parameters": {
        "url": "={{ $json.data.video_url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "1ea34240-e8fa-411e-8ff2-7c7381c48a34",
      "name": "Google Drive: Upload Final Video",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -672,
        32
      ],
      "parameters": {
        "name": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.voice.file_unique_id }}",
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "cdc8b7f1-cc90-4545-ac0d-65666cfc2fa4",
      "name": "Google Sheets: Save Final Video URL",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2368,
        352
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID VOICE": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.voice.file_unique_id }}",
            "row_number": 0,
            "URL VIDEO FINAL": "={{ $json.webViewLink }}"
          },
          "schema": [
            {
              "id": "ID VOICE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VOICE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Script",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Script",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VIDEO FINAL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "URL VIDEO FINAL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID VOICE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "36bcedc0-301b-4be0-b327-5d6dcc3c07d6",
      "name": "Telegram: Send Post Confirmation",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -752,
        560
      ],
      "parameters": {
        "text": "Posted",
        "chatId": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c1b40ff1-efa4-43dd-b969-5fd962ae8b15",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -624
      ],
      "parameters": {
        "color": 6,
        "width": 508,
        "height": 1556,
        "content": "# \ud83c\udfac Automate Video Creation from Voice Input with HeyGen & n8n\n\nTurn a simple idea into a **viral video** and auto-publish it across platforms using  \n**GPT-5**, **HeyGen**, **Blotato**, **Google Sheets**, and **n8n**.  \n\n---\n\n### \ud83c\udfa5 Full Tutorial  \n[![Watch on YouTube](https://img.youtube.com/vi/6Pzw_NC2GfY/hqdefault.jpg)](https://youtu.be/6Pzw_NC2GfY)  \n\ud83d\udc49 [Click here to watch the full YouTube tutorial](https://youtu.be/6Pzw_NC2GfY)\n\n---\n\n### \ud83d\udcd8 Documentation  \nAccess detailed setup instructions, API config, platform connection guides, and workflow customization tips:\n\n\ud83d\udcce [Open the full documentation on Notion](https://automatisation.notion.site/Blotato-2473d6550fd980e19983f69611a80a0d?source=copy_link)\n\n---\n\n## \u2699\ufe0f Requirements\n\n1. \u2705 **Create a [Blotato](https://blotato.com/?ref=firas) account** (Pro plan required for API access)  \n2. \ud83d\udd11 **Generate your Blotato API Key** via: `Settings > API > Generate API Key`  \n3. \ud83d\udce6 **Enable \u201cVerified Community Nodes\u201d** in the n8n admin settings  \n4. \ud83e\udde9 **Install the Blotato** verified community node in n8n  \n5. \ud83d\udee0 **Create a Blotato API credential** inside your n8n credentials tab  \n6. \ud83d\udcc4 **Duplicate this [Google Sheet template](https://docs.google.com/spreadsheets/d/1hINQ6xYqxYVXcyVUOs69VV9CiarGUshj5eL8wr7yH24/edit?usp=sharing)**  \n7. \u2601\ufe0f **Make sure your Google Drive folder is PUBLIC** (anyone with the link can access)  \n8. \ud83d\udccc **Complete the 3 brown sticky note steps** inside the workflow editor\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7cb61d6b-4262-4312-b98c-6121431c58d7",
      "name": "Google Sheets - Read Post Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2160,
        352
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d8ff3ddd-897b-4c30-8933-aad1b7bc4588",
      "name": "AI Agent - Generate Title & Caption & Script",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1072,
        -528
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "=You will first create a \"script to read\" (maximum 100 words) that directly answers the request contained in the TRANSCRIPTION. The script must stay faithful to the TRANSCRIPTION, no invention, no external info.\n\nThe script must be written with a motivating and inspiring tone, as it will be read in a presentation video shared on social media. It should sound engaging and encourage the audience to take interest.\n\nThen, based on this script, you will create a concise Title and a short Caption. Detect the language from the TRANSCRIPTION and write in that same language. No emojis. No hashtags.\n\nRULES:\n- Script: \u2264 100 words, clear, faithful, aligned with TRANSCRIPTION.\n- Title: clear, compelling, faithful to the script. Aim \u2264 70 characters. No clickbait. No emojis/hashtags.\n- Caption: \u2264 200 characters (characters, not words). Crisp, adds context or a takeaway. No emojis/hashtags.\n- Keep all content aligned with TRANSCRIPTION. Do not add external info.\n\nFINAL OUTPUT (single line JSON):\n{\"script\":\"<SCRIPT TO READ>\", \"title\":\"<TITLE>\", \"caption\":\"<CAPTION>\"}\n\n\nTRANSCRIPTION:\n{{ $json.text }}\n\nUse the Google Sheets tool to save the generated script, title and caption for this video.\n\n\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "2ba847ed-2361-4f98-a526-9785772e30b7",
      "name": "Google Sheets - Update Title & Caption & Script",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -768,
        -288
      ],
      "parameters": {
        "columns": {
          "value": {
            "Title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
            "Script": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Script', ``, 'string') }}",
            "Caption": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Caption', ``, 'string') }}",
            "ID VOICE": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.voice.file_unique_id }}"
          },
          "schema": [
            {
              "id": "ID VOICE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VOICE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL VOICE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Script",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Script",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VIDEO FINAL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL VIDEO FINAL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID VOICE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "86bb1d30-e4fd-4649-84e1-5659a0f35ab7",
      "name": "Google Sheets: Read Avatar Config1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2016,
        32
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "13853816-2015-4df2-a0e7-b588d28a61be",
      "name": "Telegram: Send Final Video",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -752,
        752
      ],
      "parameters": {
        "file": "={{ $('Upload Video to BLOTATO').item.json.url }}",
        "chatId": "={{ $('Telegram Trigger: Receive Voice Message').item.json.message.chat.id }}",
        "operation": "sendVideo",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "45fd1797-7f01-47a6-8743-f117c3f4ad2e",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Google Sheets - Update Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tiktok": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bluesky": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 7
          }
        ]
      ]
    },
    "Threads": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "Youtube": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "Facebook": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Linkedin": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "ID Avatar": {
      "main": [
        [
          {
            "node": "Google Sheets: Read Avatar Config1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Pinterest": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "Twitter (X)": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "OpenAI Model GPT-5": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Generate Title & Caption & Script",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Rendering": {
      "main": [
        [
          {
            "node": "HeyGen: Check Video Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Google Drive ID": {
      "main": [
        [
          {
            "node": "Upload Video to BLOTATO",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If: Video Completed?": {
      "main": [
        [
          {
            "node": "HTTP: Download Final Video",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Rendering",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LangChain - Think Tool": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Generate Title & Caption & Script",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to BLOTATO": {
      "main": [
        [
          {
            "node": "Tiktok",
            "type": "main",
            "index": 0
          },
          {
            "node": "Linkedin",
            "type": "main",
            "index": 0
          },
          {
            "node": "Facebook",
            "type": "main",
            "index": 0
          },
          {
            "node": "Instagram",
            "type": "main",
            "index": 0
          },
          {
            "node": "Twitter (X)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Youtube",
            "type": "main",
            "index": 0
          },
          {
            "node": "Threads",
            "type": "main",
            "index": 0
          },
          {
            "node": "Bluesky",
            "type": "main",
            "index": 0
          },
          {
            "node": "Pinterest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram: Download Voice": {
      "main": [
        [
          {
            "node": "Google Drive: Upload Voice",
            "type": "main",
            "index": 0
          },
          {
            "node": "OpenAI - Transcribe Video to Text",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets: Read Avatar Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive: Upload Voice": {
      "main": [
        [
          {
            "node": "Google Sheets: Log Voice Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP: Download Final Video": {
      "main": [
        [
          {
            "node": "Google Drive: Upload Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HeyGen: Check Video Status": {
      "main": [
        [
          {
            "node": "If: Video Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Status": {
      "main": [
        [
          {
            "node": "Telegram: Send Post Confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HeyGen: Generate Avatar Video": {
      "main": [
        [
          {
            "node": "Wait for Rendering",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Read Post Data": {
      "main": [
        [
          {
            "node": "Get Google Drive ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive: Upload Final Video": {
      "main": [
        [
          {
            "node": "Google Sheets: Save Final Video URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram: Send Post Confirmation": {
      "main": [
        [
          {
            "node": "Telegram: Send Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets: Log Voice Metadata": {
      "main": [
        []
      ]
    },
    "Google Sheets: Read Avatar Config": {
      "main": [
        [
          {
            "node": "ID Avatar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI - Transcribe Video to Text": {
      "main": [
        [
          {
            "node": "AI Agent - Generate Title & Caption & Script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets: Read Avatar Config1": {
      "main": [
        [
          {
            "node": "HeyGen: Generate Avatar Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets: Save Final Video URL": {
      "main": [
        [
          {
            "node": "Google Sheets - Read Post Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger: Receive Voice Message": {
      "main": [
        [
          {
            "node": "Telegram: Download Voice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Generate Title & Caption & Script": {
      "main": [
        []
      ]
    },
    "Google Sheets - Update Title & Caption & Script": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Generate Title & Caption & Script",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}