{
  "name": "Automate blog content creation with OpenAI, Google Sheets & email approval flow",
  "nodes": [
    {
      "id": "4c54dad7-e5f3-4099-8f27-49413deabb39",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2320,
        820
      ]
    },
    {
      "id": "d8919ec6-05a0-462e-a5f9-26102b5b04e2",
      "name": "Copywriter AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2980,
        740
      ]
    },
    {
      "id": "c76bb5b7-404d-46d2-984f-2648f7dbc555",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2960,
        1040
      ]
    },
    {
      "id": "75f8816c-515a-4805-945e-2f4aaf6b18d7",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        3160,
        1040
      ]
    },
    {
      "id": "0cf69760-6cfe-488a-a7f3-aedb917d6838",
      "name": "Copywriter Revision Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3480,
        1200
      ]
    },
    {
      "id": "b2ced856-381a-42cc-8935-3408c43648d8",
      "name": "Set Data",
      "type": "n8n-nodes-base.set",
      "position": [
        3420,
        740
      ]
    },
    {
      "id": "cd76fdf2-eab5-4bf6-921b-d956ab8b3282",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        3260,
        1220
      ]
    },
    {
      "id": "b1e3c062-ce7a-4dc2-8566-2613e3b955de",
      "name": "Add Generated Content to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4360,
        740
      ]
    },
    {
      "id": "3c8f388f-cb03-4c3a-b39c-3e5d21151241",
      "name": "Update Topic Status on Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4020,
        740
      ]
    },
    {
      "id": "f320e2c5-e5ef-4b44-9458-7295d337daa3",
      "name": "Get Topic from Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2660,
        820
      ]
    },
    {
      "id": "35654a6d-8b77-449a-a560-8db2f5fdb451",
      "name": "Send Content for Approval",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3580,
        740
      ]
    },
    {
      "id": "08141d98-6b12-47ce-9881-b4bbd41d8ae7",
      "name": "Approval Result",
      "type": "n8n-nodes-base.switch",
      "position": [
        3720,
        740
      ]
    },
    {
      "id": "915e835b-fd66-4222-baf4-8e9be0a163c2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2220,
        640
      ],
      "parameters": {
        "width": 320,
        "height": 360,
        "content": "🕒 WORKFLOW STARTER\nThis triggers the content generation process automatically.\n\nSetup Required:\n• Set your preferred trigger interval."
      }
    },
    {
      "id": "e20d85ab-23f9-4634-a2ad-3bfe00271aec",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2560,
        520
      ],
      "parameters": {
        "width": 320,
        "height": 480,
        "content": "📊 TOPIC RETRIEVAL\nFetches the first \"Pending\" topic from your topic list.\n\nSetup Required:\n• Connect your Google account\n• Update Sheet ID in node settings\n• Ensure \"Topic List\" sheet exists with colu"
      }
    },
    {
      "id": "96aac741-474f-4f65-8b1c-224a08f8b8a6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1940,
        520
      ],
      "parameters": {
        "width": 260,
        "height": 480,
        "content": "## SETUP REQUIRED\n**Author:** [Billy Christi](https://n8n.io/creators/billy/)\n\n**Copy the Google Sheet template here**:\n👉 [Automate Blog Content Creation – Google Sheet Template](https://docs.google.c"
      }
    },
    {
      "id": "751f9f12-f2ac-449a-ad0c-0f8eab0e0b7e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2900,
        520
      ],
      "parameters": {
        "width": 460,
        "height": 800,
        "content": "🤖 CONTENT CREATION\nAI writes SEO-optimized blog posts (800-1200 words).\n\nSetup Required:\n• Add OpenAI API key in credentials\n• Uses structured prompts for consistency\n\nOutput: JSON with title + conten"
      }
    },
    {
      "id": "840daac8-e2c1-433c-b91c-743aae5b687a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3400,
        520
      ],
      "parameters": {
        "width": 440,
        "height": 440,
        "content": "📧 HUMAN REVIEW\nThis step sends the generated content via email for approval.\n\n✅ Update the To Email Field in the Gmail node with your own email address.\n\n⚠️ Note: The workflow will pause here until a "
      }
    },
    {
      "id": "b0a49973-7671-4797-bcfd-e559a59db8d5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3400,
        980
      ],
      "parameters": {
        "width": 440,
        "height": 420,
        "content": "✏️ CONTENT REVISION\nAI improves content based on human feedback.\n\nTriggered when: Approval = \"No\"\nUses: Original topic + feedback + original content\nSame AI model as initial generation\n\nOutput: Revise"
      }
    },
    {
      "id": "6b2da55a-38f2-4f61-8189-73c7173fccb4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3920,
        500
      ],
      "parameters": {
        "width": 300,
        "height": 480,
        "content": "✅ TOPIC STATUS UPDATE\nUpdates topic status to \"Completed\" in tracking sheet.\n\nPurpose:\n• Prevents duplicate processing\n• Tracks workflow progress\n• Uses row number from initial fetch\n\nColumn Updated: "
      }
    },
    {
      "id": "41dd015e-3c3c-422e-be34-c1353ee2dd6a",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4260,
        500
      ],
      "parameters": {
        "width": 300,
        "height": 480,
        "content": "💾 ADD GENERATED CONTENT\nSaves approved content to \"Generated Content\" sheet.\n\nSetup Required:\n• Ensure \"Generated Content\" sheet exists\n• Columns: Title (A), Content (B), Date (C)\n\nPurpose: Permanent "
      }
    },
    {
      "id": "8bee3e14-12d0-449a-881e-d420fff3b751",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1940,
        1020
      ],
      "parameters": {
        "width": 420,
        "height": 420,
        "content": "## 🚀 Automate Blog Content Creation with OpenAI, Google Sheets & Email Approval Workflow\n\nWhat This Template Does:\n- Automatically generates SEO-optimized blog posts\n- Uses AI (GPT-4) to write 800-120"
      }
    },
    {
      "id": "d160369b-ec57-486e-9715-c39df12e5866",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2380,
        1020
      ],
      "parameters": {
        "width": 500,
        "height": 420,
        "content": "## 📋 WORKFLOW PROCESS OVERVIEW\n\nStep 1: 📅 Schedule automatically starts process\nStep 2: 📊 Fetch pending topic from Google Sheets\nStep 3: 🤖 AI generates complete blog post\nStep 4: 📧 Send content to you"
      }
    },
    {
      "id": "35c3e968-ca3c-4c24-b468-af34e302ae14",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4600,
        360
      ],
      "parameters": {
        "width": 380,
        "height": 760,
        "content": "# 👋 Hi, I’m Billy\n![My Photo](https://i.ibb.co/Gvn63Bzc/Billy-Christi-AI-Automation.jpg)\nI help businesses build **n8n workflows** & **AI automation projects**.  \nNeed help with n8n or AI Automation p"
      }
    }
  ],
  "connections": {
    "Set Data": {
      "main": [
        [
          {
            "node": "Send Content for Approval",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Copywriter AI Agent",
            "type": "ai_memory",
            "index": 0
          },
          {
            "node": "Copywriter Revision Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Approval Result": {
      "main": [
        [
          {
            "node": "Update Topic Status on Google Sheets",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Copywriter Revision Agent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Topic Status on Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Topic from Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Copywriter AI Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Copywriter Revision Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Copywriter AI Agent": {
      "main": [
        [
          {
            "node": "Set Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Copywriter AI Agent",
            "type": "ai_outputParser",
            "index": 0
          },
          {
            "node": "Copywriter Revision Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Copywriter Revision Agent": {
      "main": [
        [
          {
            "node": "Set Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Content for Approval": {
      "main": [
        [
          {
            "node": "Approval Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Topic from Google Sheets": {
      "main": [
        [
          {
            "node": "Copywriter AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Topic Status on Google Sheets": {
      "main": [
        [
          {
            "node": "Add Generated Content to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}