This workflow corresponds to n8n.io template #4478 — we link there as the canonical source.
This workflow follows the Agent → HTTP Request 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 →
{
"id": "kPBvBnjidCFr5v69",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Youtube to Instagram_Facebook",
"tags": [],
"nodes": [
{
"id": "workflow-overview-social",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1300,
-320
],
"parameters": {
"color": 2,
"width": 350,
"height": 380,
"content": "# \ud83d\udcf1 YouTube to Social Media Automation\n\n**Purpose:** Auto-publish YouTube videos to Facebook & Instagram\n\n**Schedule:** Checks for new videos every hour\n\n**Required Setup:**\n1. YouTube channel RSS feed\n2. OpenAI API key (GPT-4o-mini)\n3. Meta App with permissions\n4. Long-lived access token\n\n## Workflow Steps:\n1. **Monitor** - RSS feed for new videos\n2. **Generate** - AI creates social caption\n3. **Publish** - Posts to FB & Instagram\n\n\ud83d\udca1 Update all `<Access_Token>` and `<Facebook_PageID>` placeholders"
},
"typeVersion": 1
},
{
"id": "rss-trigger-note",
"name": "RSS Trigger Info",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-320
],
"parameters": {
"color": 3,
"width": 280,
"height": 220,
"content": "## \ud83c\udfa5 YouTube RSS Trigger\n\n**Monitors your YouTube channel:**\n- Checks every hour for new uploads\n- Uses YouTube RSS feed format\n\n**To find your channel ID:**\n1. Go to your YouTube channel\n2. View page source\n3. Search for \"channelId\"\n\n\u26a0\ufe0f Replace channel_id in RSS URL"
},
"typeVersion": 1
},
{
"id": "ai-caption-note",
"name": "AI Caption Generation",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
-320
],
"parameters": {
"color": 5,
"width": 280,
"height": 200,
"content": "## \ud83e\udd16 AI Caption Generation\n\n**OpenAI GPT-4o-mini:**\n- Generates engaging social media captions\n- Includes emojis automatically\n- Adds call-to-action\n\n**Customize the prompt to:**\n- Match your brand voice\n- Include specific hashtags\n- Target your audience"
},
"typeVersion": 1
},
{
"id": "facebook-post-note",
"name": "Facebook Publishing",
"type": "n8n-nodes-base.stickyNote",
"position": [
-390,
-440
],
"parameters": {
"color": 4,
"width": 250,
"height": 180,
"content": "## \ud83d\udcd8 Facebook Publishing\n\n**Direct post to Facebook Page**\n\n\u26a0\ufe0f **Required updates:**\n- Replace `<Facebook_PageID>`\n- Replace `<Access_Token>`\n\n**Note:** Uses error handling to continue workflow even if Facebook fails"
},
"typeVersion": 1
},
{
"id": "instagram-flow-note",
"name": "Instagram Publishing Flow",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-180
],
"parameters": {
"color": 6,
"width": 300,
"height": 220,
"content": "## \ud83d\udcf8 Instagram Publishing Flow\n\n**3-step process:**\n1. Get Business Account ID\n2. Create media container with thumbnail\n3. Publish the post\n\n**Automatic thumbnail:**\nPulls YouTube video thumbnail as Instagram image\n\n\u26a0\ufe0f Requires Instagram Business Account linked to Facebook Page"
},
"typeVersion": 1
},
{
"id": "api-requirements-note",
"name": "API Requirements",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
280
],
"parameters": {
"color": 1,
"width": 250,
"height": 200,
"content": "\u26a0\ufe0f **Meta API Requirements**\n\n**Required Permissions:**\n- pages_manage_posts\n- pages_read_engagement\n- pages_show_list\n- instagram_content_publish\n- instagram_basic\n\n**Token Type:** Long-lived access token\n**API Version:** v22.0"
},
"typeVersion": 1
},
{
"id": "cda123c2-21a3-421d-918e-5a6973002aa3",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"notes": "Formats post caption using video metadata. Customize prompt for your brand voice and hashtags",
"position": [
-740,
-80
],
"parameters": {
"text": "=Write a short, engaging social media post about this new YouTube video:\n\nTitle: {{ $json.title }}\nURL: {{ $json.link }}\n\nInclude emojis and a call to action.",
"options": {},
"promptType": "define"
},
"typeVersion": 1.9
},
{
"id": "d215f6c3-f9d7-4103-8c26-419f468cf74b",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"notes": "Uses GPT-4o-mini to generate the caption text",
"position": [
-740,
160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "fbf6f102-1f8d-4e22-a850-1f5f163b94d5",
"name": "Post on Facebook",
"type": "n8n-nodes-base.httpRequest",
"notes": "Publishes the caption using Facebook Graph API. Replace <Facebook_PageID> and <Access_Token>",
"onError": "continueErrorOutput",
"position": [
-340,
-240
],
"parameters": {
"url": "=https://graph.facebook.com/v22.0/<Facebook_PageID>/feed\n",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "message",
"value": "={{ $json.output }}"
},
{
"name": "access_token",
"value": "<Access_Token>"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "000891de-e3e2-4de8-8742-ad45a2a958db",
"name": "Publish Post On Instagram",
"type": "n8n-nodes-base.httpRequest",
"notes": "Publishes post to Instagram feed using the media container ID",
"position": [
180,
60
],
"parameters": {
"url": "=https://graph.facebook.com/v22.0/{{ $('Get IG Business Account ID').item.json.instagram_business_account.id }}/media_publish\n",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $json.id }}"
},
{
"name": "access_token",
"value": "<Access_Token>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2e65dd2e-7f9e-4abd-b6c7-e811b3a86349",
"name": "Get IG Business Account ID",
"type": "n8n-nodes-base.httpRequest",
"notes": "Retrieves Instagram Business account ID linked to Facebook Page",
"onError": "continueErrorOutput",
"position": [
-340,
80
],
"parameters": {
"url": "https://graph.facebook.com/v22.0/<Facebook_PageID>",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "fields",
"value": "instagram_business_account"
},
{
"name": "access_token",
"value": "<Access_Token>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "c2d089b9-754c-49fe-aa4d-976072340a0e",
"name": "Create Media Container",
"type": "n8n-nodes-base.httpRequest",
"notes": "Uploads YouTube thumbnail as Instagram image with AI-generated caption",
"position": [
-80,
60
],
"parameters": {
"url": "=https://graph.facebook.com/v22.0/{{ $json.instagram_business_account.id }}/media",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "image_url",
"value": "=https://img.youtube.com/vi/{{ $('Pull Youtube Video From Channel').item.json.link.split(\"=\")[1] }}/maxresdefault.jpg"
},
{
"name": "caption",
"value": "={{ $('AI Agent').item.json.output }}"
},
{
"name": "access_token",
"value": "<Access_Token>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "29656ae1-d60e-4f4d-9326-17801ddcbb65",
"name": "Pull Youtube Video From Channel",
"type": "n8n-nodes-base.rssFeedReadTrigger",
"notes": "Monitors new uploads from your YouTube channel. Replace channel_id in RSS URL",
"position": [
-1000,
-80
],
"parameters": {
"feedUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC2Tf8MGUzFX-GPkuBEBSKMg",
"pollTimes": {
"item": [
{
"mode": "everyHour"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a459b777-6ecf-46d2-9543-061a888393a6",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Get IG Business Account ID",
"type": "main",
"index": 0
},
{
"node": "Post on Facebook",
"type": "main",
"index": 0
}
]
]
},
"Post on Facebook": {
"main": [
[]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Create Media Container": {
"main": [
[
{
"node": "Publish Post On Instagram",
"type": "main",
"index": 0
}
]
]
},
"Publish Post On Instagram": {
"main": [
[]
]
},
"Get IG Business Account ID": {
"main": [
[
{
"node": "Create Media Container",
"type": "main",
"index": 0
}
]
]
},
"Pull Youtube Video From Channel": {
"main": [
[
{
"node": "AI Agent",
"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.
httpHeaderAuthopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically turn your YouTube videos into engaging Facebook and Instagram posts with AI-generated captions.
Source: https://n8n.io/workflows/4478/ — 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.
AI Social Media Promoter – Automated Blog Sharing Workflow This workflow is built for bloggers, creators, and marketing teams who want to automatically promote new blog content across Instagram, Faceb
This workflow is ideal for individuals, marketers, agencies, and brands who want to effortlessly automate the entire blogging and social media process—from idea generation to promotion. Its primary go
This workflow is built for creators, solopreneurs, SaaS founders, and agencies looking to automate their social media content process from idea to publication. It combines the power of OpenAI, Google
✨🤖Automated AI Powered Social Media Content Factory for X + Facebook + Instagram + LinkedIn. Uses outputParserStructured, lmChatGoogleGemini, lmChatOpenAi, httpRequest. Event-driven trigger; 57 nodes
Social Media Managers and Digital Marketers seeking to streamline content production across 7+ platforms (X/Twitter, Instagram, LinkedIn, Facebook, TikTok, Threads, YouTube Shorts) using AI-powered au