This workflow corresponds to n8n.io template #10122 — we link there as the canonical source.
This workflow follows the Google Drive → Google Sheets 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c98f4dee-831a-4de6-b2df-d44cf320a7f4",
"name": "info",
"type": "n8n-nodes-base.set",
"position": [
-1472,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5ca53588-a5fd-47fe-a9db-5e8b42e88a19",
"name": "Token",
"type": "string",
"value": "<token>"
},
{
"id": "0fc539bd-e223-4f1a-86b2-15e4b2a34df6",
"name": "Id Page",
"type": "string",
"value": "<id page>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5dee332a-6319-419c-9fe2-2ed3f4b7639b",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1696,
48
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 30
}
]
}
},
"typeVersion": 1.2
},
{
"id": "f0a8f95d-88f8-41b6-8a38-2ae55a4ce3ec",
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1456,
384
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Get Row Sheet').first().json['File ID'] }}"
},
"options": {
"binaryPropertyName": "data"
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "4424daa9-14d9-47d5-b78b-2b2fda283540",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
-1360,
656
],
"parameters": {
"unit": "minutes"
},
"typeVersion": 1.1
},
{
"id": "e8db21a1-9a82-4c4b-a50e-af406a12bb8d",
"name": "Step 1: Initialize an Upload Session",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1664,
384
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/{{ $('info').first().json['Id Page'] }}/video_reels\n",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "upload_phase",
"value": "start"
},
{
"name": "access_token",
"value": "={{ $('info').first().json.Token }}"
}
]
}
},
"executeOnce": true,
"typeVersion": 4.2
},
{
"id": "62cef400-c3fb-439e-a0ab-3c8f77e4c158",
"name": "Step 2: Upload the Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
384
],
"parameters": {
"url": "={{ $('Step 1: Initialize an Upload Session').first().json.body.upload_url }}",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "offset",
"value": "0"
},
{
"name": "file_size",
"value": "={{ $('Get the size file').first().json.actualSize }}"
},
{
"name": "=Authorization",
"value": "=OAuth {{ $('info').first().json.Token }}"
}
]
},
"inputDataFieldName": "=data"
},
"typeVersion": 4.2
},
{
"id": "547c52ee-7883-432d-8485-2a7c1f3b92c9",
"name": "Step 3: Publish the Reel",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1664,
752
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/{{ $('info').first().json['Id Page'] }}/video_reels",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "video_id",
"value": "={{ $('Step 1: Initialize an Upload Session').first().json.body.video_id }}"
},
{
"name": "upload_phase",
"value": "finish"
},
{
"name": "access_token",
"value": "={{ $('info').first().json.Token }}"
},
{
"name": "video_state",
"value": "PUBLISHED"
},
{
"name": "description",
"value": "={{ $('Get Row Sheet').first().json['Caption'] }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "91e05176-b3a8-44de-a819-32a0575e288a",
"name": "Get Row Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1248,
48
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78/edit#gid=0",
"cachedResultName": "Trang t\u00ednh1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78/edit?usp=drivesdk",
"cachedResultName": "Publish a reel on a Facebook Page"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 4.5
},
{
"id": "ea72e8eb-6685-4e91-93cd-a9bdf276ad95",
"name": "Get the size file",
"type": "n8n-nodes-base.code",
"position": [
-1248,
384
],
"parameters": {
"jsCode": "return items.map(item => {\n const size = item.binary.data.fileSize;\n const contentLength = Buffer.from(item.binary.data.data, 'base64').length;\n\n item.json = {\n declaredSize: size,\n actualSize: contentLength\n };\n\n return item;\n});\n"
},
"typeVersion": 2
},
{
"id": "bfb4edf0-3c25-4e88-9bf6-16657f977d59",
"name": "Update status",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1360,
832
],
"parameters": {
"columns": {
"value": {
"Link post": "x",
"row_number": "={{ $('Get Row Sheet').first().json.row_number }}"
},
"schema": [
{
"id": "File ID",
"type": "string",
"display": true,
"required": false,
"displayName": "File ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "File name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Caption",
"type": "string",
"display": true,
"required": false,
"displayName": "Caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link Share",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Link Share",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link post",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Link post",
"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": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78/edit#gid=0",
"cachedResultName": "Trang t\u00ednh1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78/edit?usp=drivesdk",
"cachedResultName": "Publish a reel on a Facebook Page"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "ac97c446-241f-4306-bdb8-5d6768fcffa5",
"name": "Create comment post",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1040,
656
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/115432036514099_{{ $('Step 1: Initialize an Upload Session').first().json.body.video_id }}/comments",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "access_token",
"value": "={{ $('info').first().json.Token }}"
},
{
"name": "message",
"value": "=Mua h\u00e0ng t\u1ea1i Shopee: {{ $('Get Row Sheet').item.json['Link Aff 1'] }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d6e2986d-25da-47aa-b73e-6766b0ac6ba1",
"name": "Search files and folders",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1424,
-288
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "list",
"value": "16tm-jSUaz4B4Xk8Dc0h-jxxKVydzwHKJ",
"cachedResultUrl": "https://drive.google.com/drive/folders/16tm-jSUaz4B4Xk8Dc0h-jxxKVydzwHKJ",
"cachedResultName": "n8n creator"
}
},
"options": {
"fields": [
"id",
"name"
]
},
"resource": "fileFolder",
"returnAll": true,
"queryString": "mimeType = 'video/mp4'",
"searchMethod": "query"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "74566e2f-e8b3-408b-8b7b-b4f6aa5907b4",
"name": "Schedule Trigger1",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1712,
-288
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "162ef463-3032-4744-bfea-60a02b441dc9",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1072,
-288
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.name }}",
"File ID": "={{ $json.id }}",
"Link Share": "=https://drive.google.com/uc?id={{ $json.id }}&export=download"
},
"schema": [
{
"id": "Stories",
"type": "string",
"display": true,
"required": false,
"displayName": "Stories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "File ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link Share",
"type": "string",
"display": true,
"required": false,
"displayName": "Link Share",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"File ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-EZ3OE-Uc3OWFbDohYI/edit#gid=0",
"cachedResultName": "Trang t\u00ednh1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1RnE5O06l7W6TLCLKkwEH5Oyl-EZ3OE-Uc3OWFbDohYI",
"cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-EZ3OE-Uc3OWFbDohYI/edit?usp=drivesdk",
"cachedResultName": "Video stories facebook"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "33b6589f-a47e-45e1-a914-2796db631b35",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2400,
-336
],
"parameters": {
"color": 3,
"width": 1536,
"height": 272,
"content": "## Automated Google Drive Video List Update to Google Sheet\n\nThis workflow is designed to **periodically search for new MP4 video files** \n\nin a specific Google Drive folder and **update the file details** \n\n(Name, File ID, Share Link) into a Google Sheet.\n\n"
},
"typeVersion": 1
},
{
"id": "e715160f-c6be-4daf-a27b-addcfe315b63",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
-1040,
48
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "960b3395-7df1-4cdd-ac7a-2a738c812cc9",
"operator": {
"type": "number",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json[\"File ID\"] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9b3751d2-558e-46f7-991a-474279e09b50",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2400,
16
],
"parameters": {
"color": 4,
"width": 1536,
"height": 992,
"content": "## Publish a Reel on a Facebook Page\n\nThis advanced workflow is designed to\n\n **automatically publish a Reel on a Facebook Page** by following the platform's \n\nmulti-step uploading process, based on data pulled from a Google Sheet.\n\n#### 1. Google Sheets (required)\n\nYou can also duplicate this ready-to-use template:\n\ud83d\udc49 [Google Sheet example](https://docs.google.com/spreadsheets/d/1JMT2BpWxfcG-d_XEWRppdSr_ZkG0XvtiaGaB8Lzdl78/edit?usp=sharing)\n\n#### 2. Google Drive\n\nThe uploaded video must:\n\n* Be in **.mp4 format**\n* Be stored inside a **shared folder** (accessible to your connected Google account in n8n)\n\n#### 3. Facebook Page & Token\n\nYou\u2019ll need:\n\n* Your **Page ID**\n* A valid **Page Access Token** with permissions to manage and publish Reels\n\nFor detailed instructions on obtaining the Page ID and access token, see:\n\ud83d\udc49 [n8n workflow example \u2013 Publish a Reel on a Facebook Page](https://n8n.io/workflows/10038)\n"
},
"typeVersion": 1
},
{
"id": "d54a3372-22ce-4802-80eb-3616fc0d91c2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2992,
-336
],
"parameters": {
"width": 544,
"height": 1344,
"content": "# \ud83d\ude80 **About the Creator**: \n## This workflow is crafted by [**\u0110\u1ed7 Th\u00e0nh Nguy\u00ean**](https://hub.dothanhnguyen.com), \n### an automation architect and creator behind [**hub.dothanhnguyen.com**](https://hub.dothanhnguyen.com) \u2014 a space dedicated to smart workflows, content automation, and no-code productivity systems.\n\n## \ud83d\udca1 Passionate about connecting ideas with execution, Nguy\u00ean builds practical automations that bridge **Airtable, Telegram, n8n, and AI tools** into seamless ecosystems.\n\n# \ud83e\udde9 Deploy your own n8n instance via [**Tino.vn VPS**](https://tino.vn/vps-n8n?affid=388) \u2014 around **$65/year**, use code **VPSN8N** for up to **39% off** *(affiliate link)*.\n"
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "Step 1: Initialize an Upload Session",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Row Sheet",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Create comment post",
"type": "main",
"index": 0
}
]
]
},
"info": {
"main": [
[
{
"node": "Get Row Sheet",
"type": "main",
"index": 0
}
]
]
},
"Google Drive": {
"main": [
[
{
"node": "Get the size file",
"type": "main",
"index": 0
}
]
]
},
"Get Row Sheet": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "info",
"type": "main",
"index": 0
}
]
]
},
"Get the size file": {
"main": [
[
{
"node": "Step 2: Upload the Video",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger1": {
"main": [
[
{
"node": "Search files and folders",
"type": "main",
"index": 0
}
]
]
},
"Search files and folders": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Step 2: Upload the Video": {
"main": [
[
{
"node": "Step 3: Publish the Reel",
"type": "main",
"index": 0
}
]
]
},
"Step 3: Publish the Reel": {
"main": [
[
{
"node": "Update status",
"type": "main",
"index": 0
},
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Step 1: Initialize an Upload Session": {
"main": [
[
{
"node": "Google Drive",
"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.
googleDriveOAuth2ApigoogleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
> Set up n8n self-hosted instance using https://tino.vn/vps-n8n?affid=388 > Use the code ==VPSN8N== for up to 39% off.
Source: https://n8n.io/workflows/10122/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
> Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 — use code VPSN8N for up to 39% off.
AI Posts Content Machine. Uses agent, stickyNote, outputParserStructured, lmChatAnthropic. Scheduled trigger; 28 nodes.
How it works
More workflow: https://aitool.wiki/
This template is ideal for sales teams, recruiters, business development professionals, and relationship managers who need to monitor changes in their network's LinkedIn profiles. Perfect for agencies