{
  "name": "Create and schedule LinkedIn posts from Google Sheets with Gemini and DALL·E",
  "nodes": [
    {
      "id": "e3006eac-8c04-4db6-bfd7-f2ed3119dbf9",
      "name": "Upload Post - Upload Photo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1200,
        976
      ]
    },
    {
      "id": "f47f2bf1-d857-45a8-9ce5-1102f65ef70a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        288
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Topic input\nGSheet"
      }
    },
    {
      "id": "de7e8a7e-c7fe-4159-b0ca-d63b865ddec2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        288
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Topic output\nGSheet"
      }
    },
    {
      "id": "372efab2-dbb3-4437-936c-2b4c66415cfe",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        288
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## AI stage\nLLM chain that writes our content"
      }
    },
    {
      "id": "223a6d8b-84f6-42f7-82ed-677fb378b86c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        288
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Image generation\nGenerate an image that matches the content"
      }
    },
    {
      "id": "154fb506-1adb-4e30-a85a-9532c2c7dda6",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        304
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Brand input\nGSheet"
      }
    },
    {
      "id": "d022593b-00ad-4e93-94e9-4f0eb4d95b66",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        1184
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Time trigger\nGSheet"
      }
    },
    {
      "id": "16e408ac-4d75-4ead-8649-0d77b6b973ac",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        1184
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Is it scheduled today and is it approved?\n"
      }
    },
    {
      "id": "c705c79a-f2ac-478a-baae-d81fce8dcf45",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        1424
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## If no - no further action\n"
      }
    },
    {
      "id": "49df604f-e002-4808-b2a9-994461b3b484",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        1184
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## If yes - post to Linkedin\n"
      }
    },
    {
      "id": "0d0b4239-ee43-4a56-884d-8ed2cc05875a",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        1184
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Get post data\nGSheet"
      }
    },
    {
      "id": "89ad5433-2f83-4ab6-a11d-c14279a6910b",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        384
      ]
    },
    {
      "id": "443aaac8-7261-40fb-ae54-479bedd45991",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1008,
        384
      ]
    },
    {
      "id": "d4fb2677-44ac-4a02-9b66-672bfa6331e3",
      "name": "GetTopic",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -32,
        368
      ]
    },
    {
      "id": "cb0eacea-92d1-4433-a800-9b731fd2900b",
      "name": "GetBrandGuide",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        736,
        368
      ]
    },
    {
      "id": "79a62db3-4109-47e8-b846-6fa4f506897a",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1296,
        560
      ]
    },
    {
      "id": "189b4e19-02e0-4ea0-8b43-1dfa5f77cff8",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        992,
        560
      ]
    },
    {
      "id": "52277b46-02ed-43da-9a33-310aa2ba227f",
      "name": "Fallback model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1136,
        560
      ]
    },
    {
      "id": "291ee04a-17a2-41d3-9c66-923f67861508",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        288
      ],
      "parameters": {
        "width": 384,
        "height": 224,
        "content": "## Filters and process one at a time"
      }
    },
    {
      "id": "74835a3d-e423-401c-88cb-18201eaaf29c",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        256,
        368
      ]
    },
    {
      "id": "7662d822-86c1-4887-8784-acccb7abb9db",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        480,
        368
      ]
    },
    {
      "id": "24b95b59-aec4-4db8-91c8-610171a696eb",
      "name": "Generate an image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1520,
        384
      ]
    },
    {
      "id": "de045d2a-04f4-410d-a081-5cabc8cf22f1",
      "name": "UploadImg",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1872,
        384
      ]
    },
    {
      "id": "3c895e66-505e-4d38-a516-2968916b045f",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -16,
        1264
      ]
    },
    {
      "id": "24d61a9f-bf44-47c9-a651-be4550e220da",
      "name": "GetPosts",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        352,
        1264
      ]
    },
    {
      "id": "1d5d7be5-bc7f-445f-8855-976c86d439ee",
      "name": "IfApprovedandToday",
      "type": "n8n-nodes-base.if",
      "position": [
        768,
        1264
      ]
    },
    {
      "id": "71793b00-6659-4c38-8f27-7e0bfc8bbd56",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1200,
        1488
      ]
    },
    {
      "id": "ece9608a-3f59-4c71-94e3-bd74322eb5a9",
      "name": "Upload Post",
      "type": "n8n-nodes-preview-upload-post.uploadPost",
      "position": [
        1200,
        1248
      ]
    },
    {
      "id": "83df5c2e-410b-4fee-94fb-e35f25ede668",
      "name": "Append or update row in sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1536,
        1248
      ]
    },
    {
      "id": "c1e64482-5be5-4a0f-8fd5-37aa4379928b",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        816
      ],
      "parameters": {
        "width": 320,
        "height": 352,
        "content": "## Having trouble posting the content?\nIf you have any trouble with the Upload Post community node, just replace it for this HTTP Request with your own API credentials"
      }
    },
    {
      "id": "11be7d37-719a-4dd2-888f-9d1585f68d4b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        64
      ],
      "parameters": {
        "width": 1216,
        "height": 192,
        "content": "\n**Workflow 1** - Generator (8am): Pull brand voice → Get today's topics → AI generates posts → Create images → Save for review\n- Google Sheets setup: Create content calendar with: topic, date, status"
      }
    },
    {
      "id": "b57b0222-0cd7-4d5d-9799-725ba9a78cb7",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -640
      ],
      "parameters": {
        "width": 576,
        "height": 688,
        "content": "## Welcome! This template is a production-ready system that generates a week's worth of content in minutes (in your brand voice)\n\nThe template gives you full editorial control, and posts automatically"
      }
    }
  ],
  "connections": {
    "Filter": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GetPosts": {
      "main": [
        [
          {
            "node": "IfApprovedandToday",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GetTopic": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UploadImg": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Post": {
      "main": [
        [
          {
            "node": "Append or update row in sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GetBrandGuide": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fallback model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Generate an image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "GetBrandGuide",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "GetPosts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate an image": {
      "main": [
        [
          {
            "node": "UploadImg",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IfApprovedandToday": {
      "main": [
        [
          {
            "node": "Upload Post",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Append or update row in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}