This workflow is an automated solution for publishing video content from Google Drive to your Facebook Page Stories, while using Google Sheets as a posting queue manager.
This automation orchestrates a complete multi-step process for uploading and publishing videos to Facebook Stories:
Queue Management: Every 2 hours and 30 minutes, the workflow checks a Google Sheet (Get Row Sheet node) to find the first video whose Stories column is empty — meaning it hasn’t been posted yet.
Conditional Execution: An If node confirms that the video’s File ID exists before proceeding.
Video Retrieval: Using the File ID, the workflow downloads the video from Google Drive (Google Drive node) and calculates its binary size (Set to the total size in bytes node).
Facebook 3-Step Upload: It performs the Facebook Graph API’s three-step upload process through HTTP Request nodes:
upload_url and video_id.upload_url.Status Update: Once completed, the workflow updates the same row in Google Sheets (Update upload status in sheet node) using the row_number to mark the video as processed.
Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 — use code VPSN8N for up to 39% off.
Google Drive Credentials: OAuth2 credentials for Google Drive to let n8n download video files.
Google Sheets Credentials: OAuth2 credentials for Google Sheets to read the posting queue and update statuses.
Google Sheet: A spreadsheet (ID: 1RnE5O06l7W6TLCLKkwEH5Oyl-EZ3OE-Uc3OWFbDohYI) containing:
File ID — the video’s unique ID in Google Drive.Stories — posting status column (leave empty for pending videos).row_number — used for updating the correct row after posting.115432036514099 in the info node).pages_manage_posts and pages_read_engagement.info node and again in Step 3. Post video.Schedule Trigger will automatically handle new uploads every 2 hours and 30 minutes.⚠️ Token Security: Hardcoding your Access Token inside the info node is not recommended. Tokens expire and expose your Page to risk if leaked.
👉 Action: Replace the static token with a secure Credential setup that supports token rotation.
Loop Efficiency: The “false” output of the If node currently loops back to the Get Row Sheet node. This creates unnecessary cycles if no videos are found.
👉 Action: Disconnect that branch so the workflow stops gracefully when no unposted videos remain.
Status Updates: To prevent re-posting the same video, the final Update upload status in sheet node must update the Stories column (e.g., write "POSTED").
👉 Action: Add this mapping explicitly to your Google Sheets node.
Automated File ID Sync: This workflow assumes that the Google Sheet already contains valid File IDs.
👉 You can build a secondary workflow (using Schedule Trigger1 → Search files and folders → Append or update row in sheet) to automatically populate new video File IDs from your Google Drive.
Once active, this workflow automatically: