{
  "name": "Upload Instagram Reels from Google Sheets with DeepSeek AI captions",
  "nodes": [
    {
      "id": "e9950b30-dae2-4bad-ae13-deff2f161f50",
      "name": "Generate Caption with DeepSeek",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1664,
        944
      ]
    },
    {
      "id": "1bd06991-d24c-4dca-b450-4aad17d080a0",
      "name": "Store Caption in Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1984,
        944
      ]
    },
    {
      "id": "3d2c8eb2-7c71-4507-b1be-3326a00ed31e",
      "name": "Publish Reel to Instagram",
      "type": "n8n-nodes-base.facebookGraphApi",
      "position": [
        3136,
        944
      ]
    },
    {
      "id": "55027c1f-90b6-4ef2-bc34-3b93eb8067d6",
      "name": "Check Video Processing Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2688,
        880
      ]
    },
    {
      "id": "e24bab82-84ae-48a9-a2e4-913471e70c80",
      "name": "Is Video Processed?",
      "type": "n8n-nodes-base.if",
      "position": [
        2912,
        944
      ]
    },
    {
      "id": "75cf6c86-22df-4230-852f-8d6840708542",
      "name": "Wait for Video Processing",
      "type": "n8n-nodes-base.wait",
      "position": [
        2464,
        944
      ]
    },
    {
      "id": "0b5e4fb5-e167-41b9-b6aa-98672c84d03b",
      "name": "Trigger: New Row in Sheet",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        96,
        848
      ]
    },
    {
      "id": "53021691-af78-446e-9d1c-24f7fd9a45ac",
      "name": "Trigger: Every 12 Hours",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        96,
        1040
      ]
    },
    {
      "id": "8369241c-2538-4c06-adac-b8a073457f28",
      "name": "DeepSeek Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
      "position": [
        1664,
        1232
      ]
    },
    {
      "id": "12dde15e-f96c-4eb5-8851-3cdd4248cdcb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 640,
        "height": 624,
        "content": "# Upload reels with AI Caption from Google Sheets\n\nThis n8n workflow template automates the entire process of publishing Instagram Reels from content stored in Google Sheets and Google Drive. It's des"
      }
    },
    {
      "id": "fade781f-50de-47d9-b25d-6e9a9d5c618d",
      "name": "## 1. Trigger Phase",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        736
      ],
      "parameters": {
        "width": 352,
        "height": 496,
        "content": "## Runs every 12 hours or when new rows added to sheet"
      }
    },
    {
      "id": "525aa3a1-1157-4cce-9f64-e2b6a71ca927",
      "name": "## 2. Content Preparation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        784
      ],
      "parameters": {
        "width": 1112,
        "height": 400,
        "content": "## Download video → Save file → Process with FFmpeg → Load processed video → Upload via SSH"
      }
    },
    {
      "id": "85fcc9c6-baad-4919-a8da-051839d333fa",
      "name": "## 3. Caption Generation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1472,
        784
      ],
      "parameters": {
        "width": 688,
        "height": 400,
        "content": "## Generate AI caption with DeepSeek → Store in Airtable"
      }
    },
    {
      "id": "43decc38-9a35-4963-9dd7-b63aad24849d",
      "name": "## 4. Publishing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        784
      ],
      "parameters": {
        "width": 1096,
        "height": 400,
        "content": "## Create media container → Wait → Check status → Publish to Instagram"
      }
    },
    {
      "id": "6fd42f41-81cd-40d6-b74c-20e467b7bd1c",
      "name": "## 5. Cleanup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3312,
        784
      ],
      "parameters": {
        "width": 394,
        "height": 400,
        "content": "## Mark as posted and clean videos"
      }
    },
    {
      "id": "34573a90-81bb-4815-ac25-d3d1f26a27dc",
      "name": "Process Video with FFmpeg",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        1024,
        944
      ]
    },
    {
      "id": "6be11af9-8b93-4e99-b3ed-4c2808921b16",
      "name": "Upload to Server via SSH",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1504,
        944
      ]
    },
    {
      "id": "fbbf2f09-f739-4ddc-90c2-e4b905859a63",
      "name": "Fetch Unposted Videos",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        384,
        944
      ]
    },
    {
      "id": "6db65556-dd93-406b-943d-bceba78faea7",
      "name": "Download Video from Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        592,
        944
      ]
    },
    {
      "id": "21ad8e54-2a54-4b48-9865-7bb55193cf3f",
      "name": "Save Downloaded File",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        816,
        944
      ]
    },
    {
      "id": "ac69610f-d43a-4ebf-94b1-33e7a85191eb",
      "name": "Load Processed Video",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1264,
        944
      ]
    },
    {
      "id": "f31d0794-fd0a-4b1b-9487-0322a25b4aa5",
      "name": "Create Instagram Media Container",
      "type": "n8n-nodes-base.facebookGraphApi",
      "position": [
        2240,
        944
      ]
    },
    {
      "id": "4ddb4cbd-0d0a-4f2d-a9a2-9a4fb76e18d6",
      "name": "Mark as Posted",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3328,
        944
      ]
    },
    {
      "id": "5430a5a9-f8e9-48e3-9794-8de5c8b3fdb5",
      "name": "Execute a command",
      "type": "n8n-nodes-base.ssh",
      "position": [
        3552,
        944
      ]
    }
  ],
  "connections": {
    "Mark as Posted": {
      "main": [
        [
          {
            "node": "Execute a command",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DeepSeek Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Caption with DeepSeek",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Is Video Processed?": {
      "main": [
        [
          {
            "node": "Publish Reel to Instagram",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Video Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Load Processed Video": {
      "main": [
        [
          {
            "node": "Upload to Server via SSH",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Downloaded File": {
      "main": [
        [
          {
            "node": "Process Video with FFmpeg",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Unposted Videos": {
      "main": [
        [
          {
            "node": "Download Video from Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Every 12 Hours": {
      "main": [
        [
          {
            "node": "Fetch Unposted Videos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Server via SSH": {
      "main": [
        [
          {
            "node": "Generate Caption with DeepSeek",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Video from Drive": {
      "main": [
        [
          {
            "node": "Save Downloaded File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Video with FFmpeg": {
      "main": [
        [
          {
            "node": "Load Processed Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish Reel to Instagram": {
      "main": [
        [
          {
            "node": "Mark as Posted",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Caption in Airtable": {
      "main": [
        [
          {
            "node": "Create Instagram Media Container",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: New Row in Sheet": {
      "main": [
        [
          {
            "node": "Fetch Unposted Videos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Video Processing": {
      "main": [
        [
          {
            "node": "Check Video Processing Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Video Processing Status": {
      "main": [
        [
          {
            "node": "Is Video Processed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Caption with DeepSeek": {
      "main": [
        [
          {
            "node": "Store Caption in Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Instagram Media Container": {
      "main": [
        [
          {
            "node": "Wait for Video Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}