{
  "name": "Publish SEO blogs to WordPress with GPT-4.1, DALL-E, Gemini, and Google Sheets",
  "nodes": [
    {
      "id": "45af47d2-0c42-4c57-a4e6-3885fab455b9",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -5072,
        656
      ]
    },
    {
      "id": "78974e00-286b-4c3e-a4e5-2c1b13546032",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -5792,
        368
      ],
      "parameters": {
        "width": 672,
        "height": 768,
        "content": "# Automated Blog Publishing to WordPress\n\nThis workflow (Part 2) receives written blog content from the Blog Creation workflow and handles complete WordPress publishing with AI-generated images, inter"
      }
    },
    {
      "id": "2e6ae59e-5fef-4a86-8277-4f4cd774313c",
      "name": "Fetch Project Configuration",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -4816,
        656
      ]
    },
    {
      "id": "78701c90-927b-4e5c-a04b-2f9eb568bdc3",
      "name": "Prepare Client & Blog Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -4624,
        656
      ]
    },
    {
      "id": "f7108bfc-278b-4e51-b4bd-14aadccf0c52",
      "name": "Fetch Internal Link Keywords",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -4400,
        656
      ]
    },
    {
      "id": "fe08f46d-4ba0-433a-9eee-c3d8133f4fcc",
      "name": "Filter Valid URLs Only",
      "type": "n8n-nodes-base.filter",
      "position": [
        -4192,
        656
      ]
    },
    {
      "id": "fe222653-d2a3-4954-b3a6-fda57902d85e",
      "name": "Combine All Keywords & URLs",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -3968,
        656
      ]
    },
    {
      "id": "161f2252-4f10-4f33-b0e7-f1f977d47b14",
      "name": "Add Internal Links to Content",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -3712,
        656
      ]
    },
    {
      "id": "ad181417-e352-404c-9632-1772bbf1bc16",
      "name": "Gemini AI Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -3712,
        864
      ]
    },
    {
      "id": "38981104-28c3-41d1-a272-e1740b38adac",
      "name": "Parse Content & Category",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -3552,
        864
      ]
    },
    {
      "id": "4908d8c9-764c-42bf-8d0b-74f545e85ed5",
      "name": "Check If Image Creation Enabled",
      "type": "n8n-nodes-base.if",
      "position": [
        -3280,
        656
      ]
    },
    {
      "id": "f84cdab8-fa27-4c4a-8d73-30e235f8cc03",
      "name": "Generate Image Prompts with AI",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2688,
        464
      ]
    },
    {
      "id": "050b31bb-9d76-4131-aca3-935285f6ffd0",
      "name": "OpenAI GPT Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2688,
        752
      ]
    },
    {
      "id": "d015e9b2-d9ad-44af-acd1-eab95e8f34ea",
      "name": "Process Each Image",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -2000,
        464
      ]
    },
    {
      "id": "421840df-673f-4878-bdaf-edb333cd50e1",
      "name": "Parse Image Prompts1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -2624,
        656
      ]
    },
    {
      "id": "f9864b48-8b7a-45dd-a6f5-a83978afec2e",
      "name": "Split into 3 Image Items",
      "type": "n8n-nodes-base.code",
      "position": [
        -2336,
        464
      ]
    },
    {
      "id": "380d50ab-183e-47b1-80b4-c3f7262f34dd",
      "name": "Generate Image with DALL-E",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -1680,
        480
      ]
    },
    {
      "id": "c2ffc4a8-e589-4aa4-a598-4763ebe195fb",
      "name": "Upload to WordPress Media",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1424,
        464
      ]
    },
    {
      "id": "d115c743-5906-4eb1-b006-d958e3995a97",
      "name": "Store Image Metadata",
      "type": "n8n-nodes-base.set",
      "position": [
        -1232,
        480
      ]
    },
    {
      "id": "1e821d49-d8ef-4ed3-b1b6-2ebf3f8038aa",
      "name": "Collect All Image Data",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -1536,
        336
      ]
    },
    {
      "id": "eeaa9871-65ca-45cd-8a4e-93a7a1da9485",
      "name": "Insert Images into Content",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1072,
        336
      ]
    },
    {
      "id": "69a5acb4-b5ac-415f-861c-1f6dcb77472a",
      "name": "Gemini Content Assembly Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -1072,
        672
      ]
    },
    {
      "id": "3b633708-d238-4660-94e3-c0e7d1c05f15",
      "name": "Clean HTML Output",
      "type": "n8n-nodes-base.code",
      "position": [
        -560,
        336
      ]
    },
    {
      "id": "9b6d47d3-37bd-4e13-b4c3-e238fc016fad",
      "name": "Publish Blog with Featured Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -352,
        336
      ]
    },
    {
      "id": "c52c80e8-c106-432d-8fe7-a46b2d49944f",
      "name": "Set Thumbnail as Featured Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -80,
        336
      ]
    },
    {
      "id": "721b01dd-fa8e-46fd-b5dc-5c979848b268",
      "name": "Publish Blog without Images",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        112,
        336
      ]
    },
    {
      "id": "e9d7e687-57f3-492e-9a5e-0d8d97e7326c",
      "name": "Trigger Client Reporting Workflow",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        480,
        336
      ]
    },
    {
      "id": "0c1cc481-ac1f-4090-9e2d-2e10b02a77a9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4816,
        512
      ],
      "parameters": {
        "width": 512,
        "height": 192,
        "content": "## Data Preparation & Internal Linking\n\nReceives blog data from blog writing automation, fetches project settings, loads internal link keywords, filters valid URLs, and uses AI to add 3 natural anchor"
      }
    },
    {
      "id": "e65486d6-256b-4350-a204-425dcfd56e48",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3280,
        336
      ],
      "parameters": {
        "width": 1840,
        "height": 384,
        "content": "## AI Image Generation Pipeline\n\nGenerates 3 branded images (thumbnail + 2 content images) using AI prompts, creates them with DALL-E, uploads to WordPress media library with alt text, and collects me"
      }
    },
    {
      "id": "73005934-a1d4-48bb-857c-f0754b8ccd91",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        192
      ],
      "parameters": {
        "width": 1088,
        "height": 192,
        "content": "## Content Assembly & Publishing\n\nInserts generated images into content at strategic positions, cleans HTML output, publishes to WordPress with categories and featured image, then updates tracking she"
      }
    },
    {
      "id": "99aee362-9501-4411-ac91-163c65c2f2a7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        192
      ],
      "parameters": {
        "width": 464,
        "height": 192,
        "content": "## Reporting & Notifications\n\nUpdates Google Sheets with live blog URL and publish date, sends Discord notification to project manager, and triggers Reporting Manager for client communication via emai"
      }
    },
    {
      "id": "e15ba6b1-668d-4804-abbe-ff9ff0b02ce0",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2336,
        816
      ],
      "parameters": {
        "width": 320,
        "height": 208,
        "content": "## Notifications\n\nSends Discord notification to project manager, and triggers Reporting Manager for client communication via email/Slack/WhatsApp"
      }
    },
    {
      "id": "8b370369-0a88-4bb2-a741-5fe296622433",
      "name": "Publish Blog without Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2720,
        976
      ]
    },
    {
      "id": "750b4e1c-553d-4aa3-9cf2-c6eb80b91194",
      "name": "Update Sheet with Publish URL (No Images)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2464,
        976
      ]
    },
    {
      "id": "b2c19bda-d408-43dd-af8a-a52d21e8a821",
      "name": "Send Discord Notification",
      "type": "n8n-nodes-base.discord",
      "position": [
        -2272,
        976
      ]
    }
  ],
  "connections": {
    "Gemini AI Model": {
      "ai_languageModel": [
        [
          {
            "node": "Add Internal Links to Content",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Image Prompts with AI",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Parse Image Prompts1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Clean HTML Output": {
      "main": [
        [
          {
            "node": "Publish Blog with Featured Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Each Image": {
      "main": [
        [
          {
            "node": "Collect All Image Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Image with DALL-E",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Image Prompts1": {
      "ai_outputParser": [
        [
          {
            "node": "Generate Image Prompts with AI",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Store Image Metadata": {
      "main": [
        [
          {
            "node": "Process Each Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect All Image Data": {
      "main": [
        [
          {
            "node": "Insert Images into Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Valid URLs Only": {
      "main": [
        [
          {
            "node": "Combine All Keywords & URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Content & Category": {
      "ai_outputParser": [
        [
          {
            "node": "Add Internal Links to Content",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Split into 3 Image Items": {
      "main": [
        [
          {
            "node": "Process Each Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to WordPress Media": {
      "main": [
        [
          {
            "node": "Store Image Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Image with DALL-E": {
      "main": [
        [
          {
            "node": "Upload to WordPress Media",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Insert Images into Content": {
      "main": [
        [
          {
            "node": "Clean HTML Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Client & Blog Data": {
      "main": [
        [
          {
            "node": "Fetch Internal Link Keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish Blog without Image": {
      "main": [
        [
          {
            "node": "Update Sheet with Publish URL (No Images)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine All Keywords & URLs": {
      "main": [
        [
          {
            "node": "Add Internal Links to Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Project Configuration": {
      "main": [
        [
          {
            "node": "Prepare Client & Blog Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Internal Link Keywords": {
      "main": [
        [
          {
            "node": "Filter Valid URLs Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Internal Links to Content": {
      "main": [
        [
          {
            "node": "Check If Image Creation Enabled",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini Content Assembly Model": {
      "ai_languageModel": [
        [
          {
            "node": "Insert Images into Content",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Image Prompts with AI": {
      "main": [
        [
          {
            "node": "Split into 3 Image Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Image Creation Enabled": {
      "main": [
        [
          {
            "node": "Generate Image Prompts with AI",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Publish Blog without Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Thumbnail as Featured Image": {
      "main": [
        [
          {
            "node": "Publish Blog without Images",
            "type": "main",
            "index": 0
          },
          {
            "node": "Trigger Client Reporting Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish Blog with Featured Image": {
      "main": [
        [
          {
            "node": "Set Thumbnail as Featured Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Fetch Project Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet with Publish URL (No Images)": {
      "main": [
        [
          {
            "node": "Send Discord Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}