This workflow corresponds to n8n.io template #10067 — 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": "6610905b-a452-4271-b201-c78efb25371c",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1664,
96
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 2,
"triggerAtMinute": 30
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c0ba59ab-53b3-441a-a830-775dde0f4b41",
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1344,
416
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('If').first().json[\"File ID\"] }}"
},
"options": {
"binaryPropertyName": "data"
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "5e527ed0-ddc1-450a-b655-127954c89fbb",
"name": "info",
"type": "n8n-nodes-base.set",
"position": [
-1440,
96
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0fc539bd-e223-4f1a-86b2-15e4b2a34df6",
"name": "ID Page",
"type": "string",
"value": "115432036514099"
},
{
"id": "5ca53588-a5fd-47fe-a9db-5e8b42e88a19",
"name": "Token",
"type": "string",
"value": "EAAJQeT0qhu8BO7iHI2a7ZBNGmI2iLo1SJ6hUdhlyUoJe1dCZBAZC0wkVa9gyF6AUiG4fxfc36qvTyZBeJLR60EL0FRHBYdImZC6o6PZAvdj9ZAQUbGCNJfpEZC0MCuFYxU5XlHrVrTYaqcbjtkionualjCyPxHgAdBBVvsvTrKUcu8rh4Qb0yKe5JyfTCFqpyNstZBiPnSVw35wavyowusyh5rhMZD"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d441d79f-4dcf-4142-8397-b433a5f8bf38",
"name": "Search files and folders",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1376,
-256
],
"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": "6a4a9d0e-6e90-409e-9d75-2666edaad284",
"name": "Schedule Trigger1",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1664,
-256
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "8242c54c-0100-40ab-9ef3-10eee0587e40",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1024,
-256
],
"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": "0e173c5f-d33a-4b6e-ba29-89b815c1e26c",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
-1040,
96
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e9464670-2642-4a70-9ec2-90211044bb72",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json[\"File ID\"] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "48727079-929a-49ec-9370-a327609c3d94",
"name": "Step 1: Initialize session",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1648,
416
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/{{ $('info').first().json['ID Page'] }}/video_stories",
"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": "5a0bf363-f623-4010-be5c-430fb107d814",
"name": "Set to the total size in bytes",
"type": "n8n-nodes-base.code",
"position": [
-1040,
416
],
"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": "49bcfba4-e00b-4297-8ce8-92418531eb34",
"name": "Step 2: Upload the stored file",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1680,
656
],
"parameters": {
"url": "={{ $('Step 1: Initialize 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": "={{ $('Set to the total size in bytes').first().json.actualSize }}"
},
{
"name": "Authorization",
"value": "=OAuth {{ $('info').first().json.Token }}"
}
]
},
"inputDataFieldName": "=data"
},
"typeVersion": 4.2
},
{
"id": "d2e56376-e073-4a69-92be-002690c363c7",
"name": "Step 3. Post video",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1456,
656
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/{{ $('info').first().json['Id Page'] }}/video_stories",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "video_id",
"value": "={{ $('Step 1: Initialize session').item.json.body.video_id }}"
},
{
"name": "upload_phase",
"value": "finish"
},
{
"name": "access_token",
"value": "=EAAJQeT0qhu8BO7iHI2a7ZBNGmI2iLo1SJ6hUdhlyUoJe1dCZBAZC0wkVa9gyF6AUiG4fxfc36qvTyZBeJLR60EL0FRHBYdImZC6o6PZAvdj9ZAQUbGCNJfpEZC0MCuFYxU5XlHrVrTYaqcbjtkionualjCyPxHgAdBBVvsvTrKUcu8rh4Qb0yKe5JyfTCFqpyNstZBiPnSVw35wavyowusyh5rhMZD"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "4e5360d8-184b-42c7-b21c-6179ede6f2ff",
"name": "Get upload status",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1264,
656
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/{{ $('Step 1: Initialize session').first().json.body.video_id }}",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "access_token",
"value": "={{ $('info').first().json.Token }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "3d0876ac-b2e2-4813-862d-c1f544482787",
"name": "Update upload status in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1056,
656
],
"parameters": {
"columns": {
"value": {
"row_number": "={{ $('If').first().json.row_number }}"
},
"schema": [
{
"id": "Stories",
"type": "string",
"display": true,
"required": false,
"displayName": "Stories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File ID",
"type": "string",
"display": true,
"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
},
{
"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/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": "139aa6d4-a7fb-49e8-afa4-2b83a1c2937d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2352,
-304
],
"parameters": {
"color": 4,
"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** \nin a specific Google Drive folder and **update the file details** \n(Name, File ID, Share Link) into a Google Sheet.\n\n"
},
"typeVersion": 1
},
{
"id": "6dd1a5f7-d7d1-45c0-8cc0-b93950d4df97",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2352,
48
],
"parameters": {
"color": 3,
"width": 1536,
"height": 816,
"content": "\n## Automated Video Posting\n to Facebook (3-Step Upload)\n\nThis advanced workflow is designed to\n **automatically upload a video to Facebook \nPage Stories** by following the platform's \nmulti-step uploading process, based on data pulled from a Google Sheet.\n"
},
"typeVersion": 1
},
{
"id": "644cfefc-9786-4c56-96ac-4c9bcb7907bc",
"name": "Get Row Sheet",
"type": "n8n-nodes-base.googleSheets",
"onError": "continueRegularOutput",
"position": [
-1248,
96
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"filtersUI": {
"values": [
{
"lookupColumn": "Stories"
}
]
},
"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>"
}
},
"executeOnce": false,
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "520a4585-f1a0-48ee-9dbe-eec32a2a990a",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2912,
-304
],
"parameters": {
"width": 544,
"height": 1168,
"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\n\n### [Template on n8n](https://n8n.io/workflows/10067-automate-video-story-publishing-to-facebook-page-using-google-drive-and-sheets/)"
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "Step 1: Initialize session",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Row Sheet",
"type": "main",
"index": 0
}
]
]
},
"info": {
"main": [
[
{
"node": "Get Row Sheet",
"type": "main",
"index": 0
}
]
]
},
"Google Drive": {
"main": [
[
{
"node": "Set to the total size in bytes",
"type": "main",
"index": 0
}
]
]
},
"Get Row Sheet": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "info",
"type": "main",
"index": 0
}
]
]
},
"Get upload status": {
"main": [
[
{
"node": "Update upload status in sheet",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger1": {
"main": [
[
{
"node": "Search files and folders",
"type": "main",
"index": 0
}
]
]
},
"Step 3. Post video": {
"main": [
[
{
"node": "Get upload status",
"type": "main",
"index": 0
}
]
]
},
"Search files and folders": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Step 1: Initialize session": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Set to the total size in bytes": {
"main": [
[
{
"node": "Step 2: Upload the stored file",
"type": "main",
"index": 0
}
]
]
},
"Step 2: Upload the stored file": {
"main": [
[
{
"node": "Step 3. Post video",
"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
> Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 — use code VPSN8N for up to 39% off.
Source: https://n8n.io/workflows/10067/ — 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.
> Set up n8n self-hosted instance using https://tino.vn/vps-n8n?affid=388 > Use the 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