AutomationFlowsSocial Media › Google Drive to Instagram, TikTok & YouTube with AI

Google Drive to Instagram, TikTok & YouTube with AI

Original n8n title: From Google Drive to Instagram, Tiktok & Youtube with AI Descriptions & Airtable Tracking

ByJuan Carlos Cavero Gracia @carlosgracia on n8n.io

This automation template is designed for content creators, social media managers, and influencers who want to streamline their video publishing workflow. It automatically detects new videos uploaded to a specific Google Drive folder, generates AI-powered descriptions based on…

Event trigger★★★★☆ complexityAI-powered25 nodesGoogle Drive TriggerGoogle DriveAirtableError TriggerTelegramOpenAIWrite Binary FileRead Binary File
Social Media Trigger: Event Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:
Google Drive to Instagram, TikTok & YouTube with AI — n8n workflow card showing Google Drive Trigger, Google Drive, Airtable integration

This workflow corresponds to n8n.io template #5787 — we link there as the canonical source.

This workflow follows the Airtable → Google Drive 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
{
  "id": "cbeBbWowy2c7CXli",
  "meta": {
    "templateId": "2894",
    "templateCredsSetupCompleted": true
  },
  "name": "From Google Drive to Instagram, TikTok & YouTube with Airtable Tracking",
  "tags": [],
  "nodes": [
    {
      "id": "b8885dc4-76bc-4b56-9c4e-0d731a7f3ed5",
      "name": "Set Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -1360,
        420
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cd270863-aa35-418c-a0ae-1b5878eee2ed",
              "name": "airtable_app_id",
              "type": "string",
              "value": "add_airtable_app_id"
            },
            {
              "id": "00ef91b2-8a4c-42bb-a46f-f7eb06e861e8",
              "name": "airtable_table_id",
              "type": "string",
              "value": "add_airtable_table_id"
            },
            {
              "id": "21b5d3ad-ff81-407e-8c4e-53bda8a16e0e",
              "name": "upload_post_user",
              "type": "string",
              "value": "test2"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d2c433ef-4270-421c-888b-799aff78ed4e",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -2760,
        420
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
          "cachedResultUrl": "https://drive.google.com/drive/folders/18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
          "cachedResultName": "Influencersde"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f4d2437f-c71d-41d7-bb2e-0fa5c65f4d73",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2600,
        420
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "",
          "value": "={{ $json.id || $json.data[0].id }}"
        },
        "options": {},
        "operation": "download",
        "authentication": "oAuth2"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "076df93e-a62e-43e2-9ddd-0e37f90970e3",
      "name": "Create Airtable Record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -1160,
        420
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Set Variables').item.json.airtable_table_id }}"
        },
        "fields": [
          "Video Name"
        ],
        "options": {},
        "operation": "append",
        "application": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Set Variables').item.json.airtable_app_id }}"
        },
        "addAllFields": false,
        "authentication": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "df8cde79-4733-4ece-980e-2358cf7d46e5",
      "name": "Error Trigger",
      "type": "n8n-nodes-base.errorTrigger",
      "position": [
        -2260,
        760
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "849ca263-1ef0-4efb-9560-4794ba79e385",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -1920,
        740
      ],
      "parameters": {
        "text": "=\ud83d\udd14 ERROR SUBIENDO VIDEOS",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "190073de-a9a0-43b7-bab3-5e67bb2c0592",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        -2120,
        760
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9fadb3fd-2547-42bd-8f40-f410a97dcf57",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.trigger.error.message }}",
              "rightValue": "The DNS server returned an error, perhaps the server is offline"
            }
          ]
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a7e3b33c-1235-49a8-b761-3ff2aa5444b4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3100,
        80
      ],
      "parameters": {
        "width": 860,
        "height": 300,
        "content": "## Description\nThis automation allows you to upload a video to a configured Google Drive folder, and it will automatically create descriptions and upload it to Instagram, TikTok, and YouTube with Airtable tracking.\n\n## How to Use\n1. Configure your Airtable base and table IDs in the Set Variables node\n2. Set up Airtable fields: Video Name, Google Drive Link, File ID, Instagram Status, TikTok Status, YouTube Status, Upload Date, Description\n3. Generate an API token at upload-post.com and add to Upload nodes\n4. Configure your Google Drive folder\n5. Customize the OpenAI prompt for your specific use case\n6. Optional: Configure Telegram for error notifications\n\n## Requirements\n- Airtable account with configured base\n- upload-post.com account\n- Google Drive account\n- OpenAI API key\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ef2cd154-331a-47d6-b785-5354b3a4f952",
      "name": "Get Audio from Video",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "Extract the audio from video for generate the description",
      "position": [
        -1960,
        420
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "7b877a93-99ac-4c9b-a0f0-ea6188755723",
      "name": "Read video from Google Drive",
      "type": "n8n-nodes-base.writeBinaryFile",
      "position": [
        -2380,
        420
      ],
      "parameters": {
        "options": {},
        "fileName": "={{ $json.originalFilename.replaceAll(\" \", \"_\") }}"
      },
      "typeVersion": 1
    },
    {
      "id": "9b7f3002-88c4-4d08-bdf4-2bede89f6057",
      "name": "Generate Description for Videos",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "Request to OpenAi for generate description with the audio extracted from the video",
      "position": [
        -1740,
        420
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are an expert assistant in creating engaging social media video titles."
            },
            {
              "content": "=I'm going to upload a video to social media. Here are some examples of descriptions that have worked well on Instagram:\n\nFollow and save for later. Discover InfluencersDe, the AI tool that automates TikTok creation and publishing to drive traffic to your website. Perfect for entrepreneurs and brands.\n#digitalmarketing #ugc #tiktok #ai #influencersde #contentcreation\n\nDiscover the video marketing revolution with InfluencersDe!\n.\n.\n.\n#socialmedia #videomarketing #ai #tiktok #influencersde #growthhacking\n\nDon't miss InfluencersDe, the tool that transforms your marketing strategy with just one click!\n.\n.\n.\n#ugc #ai #tiktok #digitalmarketing #influencersde #branding\n\nCan you create another title for the Instagram post based on this recognized audio from the video?\n\nAudio: {{ $('Get Audio from Video').item.json.text }}\n\nIMPORTANT: Reply only with the description, don't add anything else."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "retryOnFail": true,
      "typeVersion": 1.4,
      "waitBetweenTries": 5000
    },
    {
      "id": "acca4940-d172-427a-acf1-1e110c020e64",
      "name": "Update Airtable with Description",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -780,
        420
      ],
      "parameters": {
        "id": "={{ $('Create Airtable Record').item.json.id }}",
        "table": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_table_id }}"
        },
        "fields": [
          "Description",
          "Video Name",
          "Google Drive Links",
          "Upload Date"
        ],
        "options": {},
        "operation": "update",
        "application": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_app_id }}"
        },
        "authentication": "airtableTokenApi",
        "updateAllFields": false
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d4a58a14-173a-4354-aa80-1c3948ae1062",
      "name": "Read Video for TikTok",
      "type": "n8n-nodes-base.readBinaryFile",
      "position": [
        -260,
        180
      ],
      "parameters": {
        "filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
        "dataPropertyName": "datavideo"
      },
      "typeVersion": 1
    },
    {
      "id": "a9478d0d-4498-4259-be7c-650624e9d519",
      "name": "Read Video for Instagram",
      "type": "n8n-nodes-base.readBinaryFile",
      "position": [
        -280,
        480
      ],
      "parameters": {
        "filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
        "dataPropertyName": "datavideo"
      },
      "typeVersion": 1
    },
    {
      "id": "4b67d5d9-2f33-4a18-a1f1-65834e0f6eeb",
      "name": "Read Video for YouTube",
      "type": "n8n-nodes-base.readBinaryFile",
      "position": [
        -280,
        740
      ],
      "parameters": {
        "filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
        "dataPropertyName": "datavideo"
      },
      "typeVersion": 1
    },
    {
      "id": "584ec208-3ccb-451c-9210-75c1e5845321",
      "name": "Upload Video to TikTok",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
      "position": [
        -20,
        180
      ],
      "parameters": {
        "url": "https://api.upload-post.com/api/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "title",
              "value": "={{ $('Generate Description for Videos').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
            },
            {
              "name": "platform[]",
              "value": "tiktok"
            },
            {
              "name": "video",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "datavideo"
            },
            {
              "name": "user",
              "value": "={{ $('Set Variables').item.json.upload_post_user }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "879624f9-6067-4a8d-b4d0-b06a56c2ed0b",
      "name": "Upload Video to Instagram",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
      "position": [
        -20,
        480
      ],
      "parameters": {
        "url": "https://api.upload-post.com/api/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "title",
              "value": "={{ $('Generate Description for Videos').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
            },
            {
              "name": "platform[]",
              "value": "instagram"
            },
            {
              "name": "video",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "datavideo"
            },
            {
              "name": "user",
              "value": "={{ $('Set Variables').item.json.upload_post_user }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "468fb5c3-9893-43ad-a6e4-95fc35eca6d4",
      "name": "Upload Video to YouTube",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
      "position": [
        -20,
        740
      ],
      "parameters": {
        "url": "https://api.upload-post.com/api/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "title",
              "value": "={{ $('Generate Description for Videos').item.json.message.content.replaceAll(\"\\\"\", \"\").substring(0, 70) }}\n"
            },
            {
              "name": "platform[]",
              "value": "youtube"
            },
            {
              "name": "video",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "datavideo"
            },
            {
              "name": "user",
              "value": "={{ $('Set Variables').item.json.upload_post_user }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "b273600b-08e4-4b8f-a4a6-7fbb0a3139a2",
      "name": "Update YouTube Status - Success",
      "type": "n8n-nodes-base.airtable",
      "position": [
        440,
        740
      ],
      "parameters": {
        "id": "={{ $('Create Airtable Record').item.json.id }}",
        "table": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_table_id }}"
        },
        "fields": [
          "YouTube Status",
          "Youtube URL"
        ],
        "options": {},
        "operation": "update",
        "application": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_app_id }}"
        },
        "authentication": "airtableTokenApi",
        "updateAllFields": false
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e636c387-c4e5-4e07-b9f0-dec0bf7fdb39",
      "name": "Update TikTok Status",
      "type": "n8n-nodes-base.airtable",
      "position": [
        440,
        180
      ],
      "parameters": {
        "id": "={{ $('Create Airtable Record').item.json.id }}",
        "table": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_table_id }}"
        },
        "fields": [
          "TikTok Status",
          "Tiktok URL"
        ],
        "options": {},
        "operation": "update",
        "application": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_app_id }}"
        },
        "authentication": "airtableTokenApi",
        "updateAllFields": false
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2f1ffb8b-1157-4934-a828-5bb136a51b4b",
      "name": "Update Instagram Status",
      "type": "n8n-nodes-base.airtable",
      "position": [
        440,
        480
      ],
      "parameters": {
        "id": "={{ $('Create Airtable Record').item.json.id }}",
        "table": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_table_id }}"
        },
        "fields": [
          "Instagram Status",
          "Instagram URL"
        ],
        "options": {},
        "operation": "update",
        "application": {
          "__rl": true,
          "mode": "",
          "value": "={{ $('Set Variables').item.json.airtable_app_id }}"
        },
        "authentication": "airtableTokenApi",
        "updateAllFields": false
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4047b86a-517c-497f-8ae0-c46fa8ad9353",
      "name": "Edit Airtable Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e611aba1-e55c-4221-b03b-04008a04fa9c",
              "name": "ID",
              "type": "string",
              "value": "={{ $('Update Airtable with Description').item.json.id }}"
            },
            {
              "id": "47f61cd2-6dd6-4714-b772-3e0537accecd",
              "name": "TikTok Status",
              "type": "string",
              "value": "=success: {{ $json.results.tiktok.success }}"
            },
            {
              "id": "12829ca5-2780-4779-be0c-ff1712c012d8",
              "name": "Tiktok URL",
              "type": "string",
              "value": "={{ $json.results.tiktok?.url || \"error\" }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "561a0b10-4677-46c7-957b-0356e93ffa51",
      "name": "Edit Airtable Fields 2",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e611aba1-e55c-4221-b03b-04008a04fa9c",
              "name": "ID",
              "type": "string",
              "value": "={{ $('Update Airtable with Description').item.json.id }}"
            },
            {
              "id": "47f61cd2-6dd6-4714-b772-3e0537accecd",
              "name": "Instagram Status",
              "type": "string",
              "value": "=success: {{ $json.results.instagram.success }}"
            },
            {
              "id": "12829ca5-2780-4779-be0c-ff1712c012d8",
              "name": "Instagram URL",
              "type": "string",
              "value": "={{ $json.results.instagram?.url || \"error\" }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d2ddd2ab-ba45-423c-842a-ad9d7c20a08e",
      "name": "Edit Airtable Fields 3",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        740
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e611aba1-e55c-4221-b03b-04008a04fa9c",
              "name": "ID",
              "type": "string",
              "value": "={{ $('Update Airtable with Description').item.json.id }}"
            },
            {
              "id": "47f61cd2-6dd6-4714-b772-3e0537accecd",
              "name": "YouTube Status",
              "type": "string",
              "value": "=success: {{ $json.results.youtube.success }}"
            },
            {
              "id": "12829ca5-2780-4779-be0c-ff1712c012d8",
              "name": "Youtube URL",
              "type": "string",
              "value": "={{ $json.results.youtube?.url || \"error\" }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ca1d31c4-cc41-4f6b-9d59-3c1a90abfac5",
      "name": "Edit Airtable Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        -960,
        420
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e611aba1-e55c-4221-b03b-04008a04fa9c",
              "name": "ID",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "47f61cd2-6dd6-4714-b772-3e0537accecd",
              "name": "Description",
              "type": "string",
              "value": "={{ $('Generate Description for Videos').item.json.message.content }}"
            },
            {
              "id": "f44cc764-ed17-48c3-80e4-c320c6c67a7c",
              "name": "Video Name",
              "type": "string",
              "value": "={{ $('Google Drive').item.json.originalFilename }}"
            },
            {
              "id": "432688c0-d430-4e83-852c-91aad7b4ea79",
              "name": "Google Drive Links",
              "type": "string",
              "value": "={{ $('Google Drive').item.json.webViewLink }}"
            },
            {
              "id": "8804ac95-05d7-48e2-a49d-60213131ec62",
              "name": "Upload Date",
              "type": "string",
              "value": "={{ $now }}"
            },
            {
              "id": "12829ca5-2780-4779-be0c-ff1712c012d8",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "59ebfe4f-3a3a-4609-94b1-39dc0371f619",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Read video from Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Error Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Variables": {
      "main": [
        [
          {
            "node": "Create Airtable Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Airtable Fields": {
      "main": [
        [
          {
            "node": "Update TikTok Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Audio from Video": {
      "main": [
        [
          {
            "node": "Generate Description for Videos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Airtable Fields1": {
      "main": [
        [
          {
            "node": "Update Airtable with Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Video for TikTok": {
      "main": [
        [
          {
            "node": "Upload Video to TikTok",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Airtable Record": {
      "main": [
        [
          {
            "node": "Edit Airtable Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Airtable Fields 2": {
      "main": [
        [
          {
            "node": "Update Instagram Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Airtable Fields 3": {
      "main": [
        [
          {
            "node": "Update YouTube Status - Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Video for YouTube": {
      "main": [
        [
          {
            "node": "Upload Video to YouTube",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to TikTok": {
      "main": [
        [
          {
            "node": "Edit Airtable Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to YouTube": {
      "main": [
        [
          {
            "node": "Edit Airtable Fields 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Video for Instagram": {
      "main": [
        [
          {
            "node": "Upload Video to Instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to Instagram": {
      "main": [
        [
          {
            "node": "Edit Airtable Fields 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read video from Google Drive": {
      "main": [
        [
          {
            "node": "Get Audio from Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Description for Videos": {
      "main": [
        [
          {
            "node": "Set Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Airtable with Description": {
      "main": [
        [
          {
            "node": "Read Video for TikTok",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Video for Instagram",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Video for YouTube",
            "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 automation template is designed for content creators, social media managers, and influencers who want to streamline their video publishing workflow. It automatically detects new videos uploaded to a specific Google Drive folder, generates AI-powered descriptions based on…

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

More Social Media workflows → · Browse all categories →

Related workflows

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

Social Media

This automation template is designed for content creators, digital marketers, and social media managers looking to simplify their video posting workflow. It automates the process of generating engagin

Google Drive Trigger, Google Drive, Error Trigger +5
Social Media

template in store. Uses googleDriveTrigger, googleDrive, errorTrigger, telegram. Event-driven trigger; 13 nodes.

Google Drive Trigger, Google Drive, Error Trigger +5
Social Media

AI Automation Mentor TikTok Pipeline. Uses telegramTrigger, perplexity, openAi, httpRequest. Event-driven trigger; 32 nodes.

Telegram Trigger, Perplexity, OpenAI +5
Social Media

Anubis TikTok Videos with VEED.io AI Avatars, ElevenLabs & GPT-4. Uses telegramTrigger, perplexity, openAi, httpRequest. Event-driven trigger; 31 nodes.

Telegram Trigger, Perplexity, OpenAI +5
Social Media

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI +8