This workflow corresponds to n8n.io template #11830 — we link there as the canonical source.
This workflow follows the Agent → Facebookgraphapi 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": "RA3zxol6XEPS9rue",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Auto-upload Instagram videos to YouTube with AI titles description and Google Sheets tracking",
"tags": [],
"nodes": [
{
"id": "4aabbbb3-c1c2-4830-9feb-08832654766b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3104,
-288
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "99877d8c-53b9-42b4-b07c-2ad4d6ef8b57",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3120,
272
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b854471f-51c7-49af-af80-41fcc239bb39",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2432,
32
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e4b7de8e-5890-46b6-9537-ece76b6d030e",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
32
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "6b6c1249-8ed9-4c23-b413-cb0befc35423",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-832,
16
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "7d3ea783-2c4f-4c94-b01a-997d08994c50",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
192
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "88ade0b4-9e44-40b1-aca0-11c4afd944bf",
"name": "Schedule Every 6 Hours",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-3056,
400
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "8ebd3361-acc4-491f-b793-f877e3b220ea",
"name": "Filter Today's Videos",
"type": "n8n-nodes-base.if",
"position": [
-2384,
400
],
"parameters": {},
"typeVersion": 2
},
{
"id": "31c14b6c-1952-4cf1-a520-e80700c90736",
"name": "Process Videos One by One",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-2160,
400
],
"parameters": {},
"typeVersion": 3
},
{
"id": "3cd7ca1d-3cd1-475d-a4cf-bc1dfcb84c1f",
"name": "Download Instagram Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-576,
144
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "244d43e5-0def-4903-850c-66692e52d260",
"name": "Fetch Instagram Media",
"type": "n8n-nodes-base.facebookGraphApi",
"position": [
-2832,
400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4837be6f-4965-4294-8e47-2de2dc65b3c8",
"name": "Split Media Items",
"type": "n8n-nodes-base.splitOut",
"position": [
-2608,
400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0fa69265-6f01-4813-8eed-141a6d6c695c",
"name": "Generate Title and Tags",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1200,
144
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c9ced24d-6f21-4615-bdb8-d09b68a6fbed",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-1008,
368
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "e4de84ce-0a0d-4952-9592-c281c0f6ca85",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1264,
368
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "c0335c7b-d0b1-4064-a6c1-79e2714cccfd",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-1136,
368
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "aba0457f-2d3f-423f-9cad-9b35c1266295",
"name": "Upload to YouTube",
"type": "n8n-nodes-base.youTube",
"position": [
-128,
144
],
"parameters": {},
"retryOnFail": false,
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "db176337-6a25-475a-94bb-b941e24df55d",
"name": "Format Metadata",
"type": "n8n-nodes-base.set",
"position": [
-800,
144
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "ea36a4a7-25b4-426c-add2-8d74a121df3c",
"name": "Wait 3 Seconds",
"type": "n8n-nodes-base.wait",
"position": [
-352,
144
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "00f4e975-1a90-4e5d-826b-e6e8c1e30e52",
"name": "Log Upload to Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
96,
272
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "cc37acbd-13d3-4338-a175-e7681b7a83b8",
"name": "Get Already Uploaded Videos",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1936,
144
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "a865e6c5-94de-4b03-b0d9-2e9d9ec80152",
"name": "Skip If Already Uploaded",
"type": "n8n-nodes-base.if",
"position": [
-1488,
144
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "816869ce-1475-4a40-afac-29434e72e04e",
"name": "Check Upload Status",
"type": "n8n-nodes-base.code",
"position": [
-1712,
144
],
"parameters": {},
"typeVersion": 2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a8d05cb6-5fe4-4d94-b1f2-ffd3fe6aa229",
"connections": {
"Simple Memory": {
"ai_memory": [
[
{
"node": "Generate Title and Tags",
"type": "ai_memory",
"index": 0
}
]
]
},
"Wait 3 Seconds": {
"main": [
[
{
"node": "Upload to YouTube",
"type": "main",
"index": 0
}
]
]
},
"Format Metadata": {
"main": [
[
{
"node": "Download Instagram Video",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Generate Title and Tags",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Split Media Items": {
"main": [
[
{
"node": "Filter Today's Videos",
"type": "main",
"index": 0
}
]
]
},
"Upload to YouTube": {
"main": [
[
{
"node": "Log Upload to Sheet",
"type": "main",
"index": 0
}
]
]
},
"Check Upload Status": {
"main": [
[
{
"node": "Skip If Already Uploaded",
"type": "main",
"index": 0
}
]
]
},
"Log Upload to Sheet": {
"main": [
[
{
"node": "Process Videos One by One",
"type": "main",
"index": 0
}
]
]
},
"Fetch Instagram Media": {
"main": [
[
{
"node": "Split Media Items",
"type": "main",
"index": 0
}
]
]
},
"Filter Today's Videos": {
"main": [
[
{
"node": "Process Videos One by One",
"type": "main",
"index": 0
}
]
]
},
"Schedule Every 6 Hours": {
"main": [
[
{
"node": "Fetch Instagram Media",
"type": "main",
"index": 0
}
]
]
},
"Generate Title and Tags": {
"main": [
[
{
"node": "Format Metadata",
"type": "main",
"index": 0
}
]
]
},
"Download Instagram Video": {
"main": [
[
{
"node": "Wait 3 Seconds",
"type": "main",
"index": 0
}
]
]
},
"Skip If Already Uploaded": {
"main": [
[
{
"node": "Generate Title and Tags",
"type": "main",
"index": 0
}
],
[
{
"node": "Process Videos One by One",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Generate Title and Tags",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Process Videos One by One": {
"main": [
[],
[
{
"node": "Get Already Uploaded Videos",
"type": "main",
"index": 0
}
]
]
},
"Get Already Uploaded Videos": {
"main": [
[
{
"node": "Check Upload Status",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automate your cross-platform publishing workflow by automatically uploading Instagram videos to YouTube with AI-optimized titles and tags. 🚀🎬 This workflow runs every six hours, fetches newly posted Instagram videos, checks Google Sheets to avoid duplicate uploads, generates…
Source: https://n8n.io/workflows/11830/ — 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.
This template is ideal for creators, content marketers, social media managers, and AI enthusiasts who want to automate the production of short-form, visually captivating videos for platforms like TikT
This n8n workflow is a fully automated pipeline that takes a creative concept and transforms it into a polished, platform-ready short-form video. It ideates, generates video and audio using AI, merges
Youtube Video Creator. Uses googleSheets, chainLlm, lmChatOpenAi, outputParserStructured. Scheduled trigger; 21 nodes.
What It Does
Wait Schedule. Uses scheduleTrigger, googleSheets, chainLlm, lmChatGoogleGemini. Scheduled trigger; 26 nodes.