AutomationFlowsAI & RAG › Automated Video Publishing to YouTube, Instagram & More

Automated Video Publishing to YouTube, Instagram & More

Original n8n title: R25 | the Ultimate Publishing Agent

R25 | The Ultimate Publishing Agent. Uses scheduleTrigger, googleSheets, httpRequest, stickyNote. Scheduled trigger; 15 nodes.

Cron / scheduled trigger★★★★☆ complexity15 nodesGoogle SheetsHTTP Request
AI & RAG Trigger: Cron / scheduled Nodes: 15 Complexity: ★★★★☆ Added:

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

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
{
  "name": "R25 | The Ultimate Publishing Agent",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        400,
        0
      ],
      "id": "d1d8548e-afbf-43e8-acd0-874b932a2ffc",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE",
          "mode": "list",
          "cachedResultName": "R24 | Faceless POV Video AI Agent",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE/edit#gid=0"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "publishing",
              "lookupValue": "for publishing"
            }
          ]
        },
        "options": {
          "returnFirstMatch": true
        }
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        520,
        0
      ],
      "id": "84ae7366-0198-4ce5-b236-f6dab5fa3480",
      "name": "Google Sheets",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "{\n    \"instagram\": \"956\",\n    \"youtube\": \"218\",\n    \"tiktok\": \"1119\",\n    \"facebook\": \"1092\",\n    \"facebook_page_id\": \"130049253738890\",\n    \"threads\": \"284\",\n    \"twitter\": \"784\",\n    \"linkedin\": \"969\",\n    \"pinterest\": \"228\",\n    \"pinterest_board_id\": \"1017321072016836595\",\n    \"bluesky\": \"166\"\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        680,
        0
      ],
      "id": "6e4a3604-f38f-4b64-a48b-ecb549ad4361",
      "name": "Set Blotato IDs"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/media",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": " "
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $('Google Sheets').item.json.final_output }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        840,
        0
      ],
      "id": "1c9ec3a8-2043-4e07-aa02-47c4cf537524",
      "name": "Ready Video in Blotato"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"youtube\",\n      \"title\": \"{{ $('Google Sheets').item.json.idea }}\",\n      \"privacyStatus\": \"unlisted\",\n      \"shouldNotifySubscribers\":false\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"youtube\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.youtube }}\"\n  }\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1200,
        -220
      ],
      "id": "31538bb3-6b80-4c17-844d-08b9708b4667",
      "name": "\ud83d\udd3aYOUTUBE"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"instagram\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"instagram\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.instagram }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        -220
      ],
      "id": "e1930ee7-965d-4e1d-ab50-b62fe4ba2d1d",
      "name": "\ud83d\udcf7 INSTAGRAM"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"tiktok\",\n      \"isYourBrand\": false,\n      \"disabledDuet\": false,\n      \"privacyLevel\": \"PUBLIC_TO_EVERYONE\",\n      \"isAiGenerated\": true,\n      \"disabledStitch\": false,\n      \"disabledComments\": false,\n      \"isBrandedContent\": false\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"tiktok\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.tiktok }}\"\n  }\n} ",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1520,
        -220
      ],
      "id": "9f5658b7-22ab-463d-97ca-87d532d951cc",
      "name": "\ud83c\udfb5 TIKTOK"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"pageId\": \"{{ $('Set Blotato IDs').item.json.facebook_page_id }}\",\n      \"targetType\": \"facebook\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"facebook\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.facebook }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1200,
        0
      ],
      "id": "0b967127-fc12-41a4-bd0c-d1106ade2f3e",
      "name": "\ud83d\udcd8 FACEBOOK"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"threads\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"threads\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.threads }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        0
      ],
      "id": "63a492fc-4071-4afb-9cfb-b4d20d3ce93b",
      "name": "\ud83e\uddf5 THREADS"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"linkedin\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"linkedin\",\n      \"mediaUrls\": [ \"{{ $json.url }}\" ]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.linkedin }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1200,
        220
      ],
      "id": "a7d16cf2-d3dd-4a44-9b47-98bc5917773f",
      "name": "\ud83d\udc54 LINKEDIN"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"pinterest\",\n      \"boardId\": \"{{ $('Set Blotato IDs').item.json.pinterest_board_id }}\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"pinterest\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.pinterest }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        220
      ],
      "id": "e38851bb-735e-46e3-bb62-45c3c563cf0e",
      "name": "\ud83d\udccd PINTEREST"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"bluesky\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"bluesky\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.bluesky }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1520,
        220
      ],
      "id": "9c54766a-2728-4075-a96c-a98c87ec1b60",
      "name": "\u2601\ufe0f BLUESKY"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://backend.blotato.com/v2/posts",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your-api-key-here"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"post\": {\n    \"target\": {\n      \"targetType\": \"twitter\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Google Sheets').item.json.caption }}\",\n      \"platform\": \"twitter\",\n      \"mediaUrls\": [\"{{ $json.url }}\"]\n    },\n    \"accountId\": \"{{ $('Set Blotato IDs').item.json.twitter }}\"\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1520,
        0
      ],
      "id": "d28a037e-dd04-4a49-a1fa-0a5f8f520c0e",
      "name": "\u2716\ufe0f TWITTER"
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE",
          "mode": "list",
          "cachedResultName": "R24 | Faceless POV Video AI Agent",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-Pg0atARGiLZMUmc9rT7xpCxhPesYzYmcGGyp4aYbcE/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "id": "={{ $('Google Sheets').item.json.id }}",
            "publishing": "done"
          },
          "matchingColumns": [
            "id"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "idea",
              "displayName": "idea",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "caption",
              "displayName": "caption",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "production",
              "displayName": "production",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "environment_prompt",
              "displayName": "environment_prompt",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "publishing",
              "displayName": "publishing",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "final_output",
              "displayName": "final_output",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1700,
        0
      ],
      "id": "ec5e8a4c-eebc-43c6-87ce-e3cbe8a61796",
      "name": "Update Gsheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "image and text only",
        "height": 200,
        "width": 300,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        2140,
        240
      ],
      "id": "d92e5636-36ea-4f12-ba35-2913f7ac0c4a",
      "name": "Sticky Note2"
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Set Blotato IDs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Blotato IDs": {
      "main": [
        [
          {
            "node": "Ready Video in Blotato",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ready Video in Blotato": {
      "main": [
        [
          {
            "node": "\ud83c\udfb5 TIKTOK",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udd3aYOUTUBE",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update Gsheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udcf7 INSTAGRAM",
            "type": "main",
            "index": 0
          },
          {
            "node": "\u2716\ufe0f TWITTER",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udcd8 FACEBOOK",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83e\uddf5 THREADS",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udccd PINTEREST",
            "type": "main",
            "index": 0
          },
          {
            "node": "\u2601\ufe0f BLUESKY",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udc54 LINKEDIN",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8a21bc70-d4a6-4419-a7f8-d9679c512d77",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "6JEynjk5FcKXqONq",
  "tags": []
}

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

How this works

This workflow automates the publishing of video content across multiple social platforms, saving hours of manual uploading and ensuring consistent scheduling for creators and marketers. It pulls video details from a Google Sheet, prepares the asset in Blotato for distribution, and then posts directly to YouTube, Instagram, TikTok, and Facebook via API calls. Ideal for content teams managing regular uploads, the key step is the sequenced HTTP requests that handle platform-specific formatting and authentication seamlessly.

Use this workflow for recurring video series where you need reliable, hands-off distribution to social channels without switching apps. Avoid it for one-off posts or platforms requiring complex custom graphics, as it focuses on straightforward video sharing. Common variations include adding email notifications after successful publishes or integrating with a content calendar tool for dynamic scheduling adjustments.

About this workflow

R25 | The Ultimate Publishing Agent. Uses scheduleTrigger, googleSheets, httpRequest, stickyNote. Scheduled trigger; 15 nodes.

Source: https://github.com/Zie619/n8n-workflows — 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

Linkedin Workflow. Uses httpRequest, googleSheets. Scheduled trigger; 39 nodes.

HTTP Request, Google Sheets
AI & RAG

BSW Growth Agent · Lite (Free Tier). Uses googleSheets, googleDrive, httpRequest, gmail. Scheduled trigger; 21 nodes.

Google Sheets, Google Drive, HTTP Request +1
AI & RAG

Founder's Discovery Engine. Uses googleSheets, googleDrive, httpRequest, gmail. Scheduled trigger; 21 nodes.

Google Sheets, Google Drive, HTTP Request +1
AI & RAG

E-Commerce Auto Sync — Shopify ↔ Amazon + Claude Descriptions. Uses shopify, httpRequest, googleSheets. Scheduled trigger; 13 nodes.

Shopify, HTTP Request, Google Sheets
AI & RAG

This workflow is a plug-and-play customer contact automation system designed for Magento 2 store owners, marketers, and CRM teams. It fetches customer records registered within the last 24 hours (from

Google Contacts, Google Sheets, HTTP Request