Publish Video REELS to Facebook Page with n8n

Leverage n8n hosted to automate publishing video reels on your Facebook page directly from hosted media URLs. Perfect for non-techy users!

  1. Fetching Pending Data from Google Sheets
    The workflow starts by using a Google Sheets node to load rows from a spreadsheet.

What it does: It looks for rows where the “:hourglass_flowing_sand:/:white_check_mark:” column is set to “:hourglass_flowing_sand:” (indicating a pending task)
2. Setting Up Variables for the Process
After reading from the sheet, a Set node (named “send one & token/id variable”) assigns key variables like row_number and possibly prepares tokens or IDs needed later.

Why: This step ensures that subsequent API calls (like uploading to Facebook) have all the necessary information from the Google Sheet.
3. Initiating the Video Upload with Facebook Graph API
Next, the workflow uses a node called “reel 1” that interacts with the Facebook Graph API.

What it does: It initiates the upload process by sending a request to start the video upload session.

This is essentially telling Facebook, “I’m about to upload a reel; please start the upload process.”

  1. Uploading the Video File
    Once the upload session is initiated, an HTTP Request node is used to actually upload the video.

What it does: It sends the hosted video file (whose URL is pulled from the Google Sheet) to the upload URL provided by Facebook.

  1. Finalizing and Publishing the Reel
    After the video file is uploaded, the next step is to finish the upload and publish the reel.

What it does: A node named “manula publsh” sends a request with parameters that finalize the process:
Setting “upload_phase” to “FINISH”
Marking “video_state” as “PUBLISHED”
Passing a description from the Google Sheet

This step tells Facebook, “I’m done uploading; please process and publish this reel.”

  1. Checking the Upload Status
    After requesting publication, the workflow checks the status of the video upload.

What it does: The “check status” node makes an HTTP GET request to Facebook to verify if the reel has been successfully processed and published.
How: It queries the video status using the video ID returned from the initial upload node.
7. Updating the Google Sheet with Results
Finally, the workflow updates the original Google Sheet with the results:

What it does: A second Google Sheets node (named “Google Sheets1”) writes back to the same row:
It constructs a post URL using the ID returned from the publish step.
It updates the status column (“:hourglass_flowing_sand:/:white_check_mark:”) with details of the upload and processing phases.
This ensures that you have a clear log of which reels have been successfully published.

Main Keywords

  • n8n hosted
  • Automation
  • Facebook Reels
  • Video Publishing
  • Social Media Workflow
  • Google Sheets Integration
  • Graph API
1 Like

Hi, I have sucessfully create upload url facebook, but when next step I got this mesage, i have check the video link correctly and tried with google driver and dropbox still the same.
Your request is invalid or could not be processed by the service

422 - “{"debug_info":{"retriable":false,"type":"FileUrlProcessingError","message":"Unable to fetch media from URL, got status code: 403 Forbidden"}}”

I’m struggling with this too.
I can’t even get the “reel 1” node to run.
I get this error message:

{ "error": { "message": "(#200) Subject does not have permission to post videos on this target", "type": "OAuthException", "code": 200, "fbtrace_id": "A9ZvZZQWS-2bOkiM_KAyla0" } }

I have given the token all the permissions on the facebook api docs website:
business_management
pages_show_list
pages_read_engagement
pages_manage_posts
publish_video

I have also given it permission to:
pages_*
page_*

All to no avail.

@Long_Le how did you manage to run the “reel 1” noded please?
How did you generate the token?

I have been pulling my hair for a few hours.