This workflow corresponds to n8n.io template #13366 — we link there as the canonical source.
This workflow follows the Execute Workflow Trigger → Form Trigger 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 →
{
"nodes": [
{
"id": "6242839d-d7a4-49b2-8f9f-45b23bd5c81d",
"name": "Trigger: Video Upload Form",
"type": "n8n-nodes-base.formTrigger",
"position": [
1520,
1728
],
"parameters": {
"path": "e07a66ec-3718-4e19-91c5-5df1e81335f3",
"options": {},
"formTitle": "Upload Video to Facebook",
"formFields": {
"values": [
{
"fieldType": "textarea",
"fieldLabel": "message",
"requiredField": true
},
{
"fieldType": "file",
"fieldLabel": "File",
"multipleFiles": false,
"requiredField": true
},
{
"fieldLabel": "target_id",
"placeholder": "Page or Group ID",
"requiredField": true
},
{
"fieldLabel": "access_token",
"placeholder": "Page Access Token",
"requiredField": true
}
]
},
"formDescription": "Submit video, message, target_id, access_token"
},
"typeVersion": 2
},
{
"id": "95b39b55-9111-40f4-aaac-9858a93c3671",
"name": "Prepare Video Metadata",
"type": "n8n-nodes-base.set",
"position": [
1888,
1920
],
"parameters": {
"fields": {
"values": [
{
"name": "message",
"stringValue": "={{$json.message}}"
},
{
"name": "target_id",
"stringValue": "={{$json.target_id}}"
},
{
"name": "access_token",
"stringValue": "={{$json.access_token}}"
},
{
"name": "file_size",
"stringValue": "={{ $binary.File0.bytes }}"
},
{
"name": "fileSize",
"stringValue": "={{$binary.File0.fileSize}}"
}
]
},
"options": {
"includeBinary": true
}
},
"typeVersion": 3
},
{
"id": "bf6c874e-ee41-4e74-8127-7c643946eef2",
"name": "Initiate Video Upload",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
1936
],
"parameters": {
"url": "=https://graph-video.facebook.com/v24.0/{{$json.target_id}}/videos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "upload_phase",
"value": "start"
},
{
"name": "file_size",
"value": "={{$json.file_size}}"
},
{
"name": "access_token",
"value": "={{$json.access_token}}"
}
]
}
},
"typeVersion": 4
},
{
"id": "9700ca6e-9171-4989-ad26-710ca3a31e99",
"name": "Merge Upload Paths",
"type": "n8n-nodes-base.merge",
"position": [
2496,
1856
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "c0981f48-4751-4dca-ae37-c36bd19f8993",
"name": "Upload Video Chunk",
"type": "n8n-nodes-base.httpRequest",
"position": [
2720,
1856
],
"parameters": {
"url": "=https://graph-video.facebook.com/v24.0/{{$node['Prepare Video Metadata'].json.target_id}}/videos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "upload_phase",
"value": "transfer"
},
{
"name": "upload_session_id",
"value": "={{$json.upload_session_id}}"
},
{
"name": "start_offset",
"value": "={{$json.start_offset}}"
},
{
"name": "access_token",
"value": "={{$node['Prepare Video Metadata'].json.access_token}}"
},
{
"name": "video_file_chunk",
"parameterType": "formBinaryData",
"inputDataFieldName": "File0"
}
]
}
},
"typeVersion": 4
},
{
"id": "3f6744da-0f50-4441-b0ab-d7ded2047fcb",
"name": "Complete Video Upload",
"type": "n8n-nodes-base.httpRequest",
"position": [
2944,
1856
],
"parameters": {
"url": "=https://graph-video.facebook.com/v24.0/{{$node['Prepare Video Metadata'].json.target_id}}/videos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "upload_phase",
"value": "finish"
},
{
"name": "upload_session_id",
"value": "={{$node['Initiate Video Upload'].json.upload_session_id}}"
},
{
"name": "description",
"value": "={{$node['Prepare Video Metadata'].json.message}}"
},
{
"name": "access_token",
"value": "={{$node['Prepare Video Metadata'].json.access_token}}"
}
]
}
},
"typeVersion": 4
},
{
"id": "eeef3484-44c5-4561-8335-78c79b84d9d1",
"name": "Triggered by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
1520,
1920
],
"parameters": {
"inputSource": "passthrough"
},
"typeVersion": 1.1
},
{
"id": "ee596963-5dfd-4581-bceb-37fe3004dc6a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1440,
1632
],
"parameters": {
"color": 7,
"width": 272,
"height": 240,
"content": "Purpose: Accepts input via n8n UI\n\nNotes: Required fields must be filled; you can prefill defaults for testing"
},
"typeVersion": 1
},
{
"id": "db3bab08-faf7-483a-98d8-d00fea9f87a3",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1440,
1904
],
"parameters": {
"color": 7,
"width": 272,
"height": 240,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\nAllows workflow to be called from another workflow"
},
"typeVersion": 1
},
{
"id": "04fc8312-feab-4e5f-b29f-5127312df9b6",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2896,
1792
],
"parameters": {
"color": 7,
"height": 208,
"content": "Completes the upload and posts the video\n"
},
"typeVersion": 1
},
{
"id": "2eb8501c-fc90-4a2c-ba2b-881fb4e8ae89",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2640,
1792
],
"parameters": {
"color": 7,
"height": 208,
"content": "Uploads video in chunks"
},
"typeVersion": 1
},
{
"id": "d86c56a3-c7c0-4391-8e1d-d24dd794755f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2432,
1776
],
"parameters": {
"color": 7,
"width": 192,
"height": 224,
"content": "Combines metadata and upload session info for transfer\n"
},
"typeVersion": 1
},
{
"id": "3b753856-37b3-4b13-ae62-43147865e95b",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2176,
1840
],
"parameters": {
"color": 7,
"height": 240,
"content": "Calls Facebook Graph API to start the upload session"
},
"typeVersion": 1
},
{
"id": "de8363e5-760b-4b6f-bcad-9a44aed501e9",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1824,
1872
],
"parameters": {
"color": 7,
"height": 176,
"content": "Organizes input data for upload\n"
},
"typeVersion": 1
},
{
"id": "b1a16bd1-66d8-45f3-9f96-602c224e5250",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
1536
],
"parameters": {
"width": 896,
"height": 608,
"content": "## Facebook Video Upload Workflow\n\n**Purpose:**\nUploads videos to Facebook Pages or Groups automatically, either via a Form Trigger or triggered by another workflow.\n\n**Features:**\n- Accepts video file, message, target_id (Page/Group ID), and access_token.\n- Prepares metadata and handles chunked uploads for large videos.\n- Initiates, transfers, and completes upload using Facebook Graph API.\n- Modular and reusable for integration into larger automation pipelines.\n\n**Who it\u2019s for:**\nContent creators, social media managers, agencies, or SaaS builders wanting automated Facebook video posting.\n\n**Setup:**\n1. Import workflow into n8n (cloud or self-hosted).\n2. Activate workflow.\n3. Fill in target_id and Page Access Token in the form or pass via sub-workflow.\n4. Upload video and message.\n5. Video is posted automatically.\n\n**Requirements:**\n- n8n instance (cloud or self-hosted)\n- Facebook Page/Group Access Token with `publish_video` permission\n- Video file to upload\n"
},
"typeVersion": 1
}
],
"connections": {
"Merge Upload Paths": {
"main": [
[
{
"node": "Upload Video Chunk",
"type": "main",
"index": 0
}
]
]
},
"Upload Video Chunk": {
"main": [
[
{
"node": "Complete Video Upload",
"type": "main",
"index": 0
}
]
]
},
"Initiate Video Upload": {
"main": [
[
{
"node": "Merge Upload Paths",
"type": "main",
"index": 1
}
]
]
},
"Prepare Video Metadata": {
"main": [
[
{
"node": "Initiate Video Upload",
"type": "main",
"index": 0
},
{
"node": "Merge Upload Paths",
"type": "main",
"index": 0
}
]
]
},
"Trigger: Video Upload Form": {
"main": [
[
{
"node": "Prepare Video Metadata",
"type": "main",
"index": 0
}
]
]
},
"Triggered by Another Workflow": {
"main": [
[
{
"node": "Prepare Video Metadata",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Purpose: Uploads videos to Facebook Pages or Groups automatically, either via a Form Trigger or triggered by another workflow.
Source: https://n8n.io/workflows/13366/ — 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.
Content creators, AI video enthusiasts, and digital marketers who want to analyze successful short-form videos and understand their production techniques. Perfect for anyone looking to reverse-enginee
Video explanation
This n8n template demonstrates how to generate subtitle overlays for YouTube videos and save the final files to Google Drive. It is useful when you want accessible video outputs without manually editi
Wait Dropbox. Uses manualTrigger, httpRequest, executeWorkflowTrigger, stickyNote. Event-driven trigger; 20 nodes.
Extracts a clean transcript from a videoId using youtube-transcript.io. AI summaries, sentiment analysis, keyword extraction Internal indexing/SEO Content pipelines (blog/newsletter) Batch transcript