{
  "nodes": [
    {
      "id": "4c54dad7-e5f3-4099-8f27-49413deabb39",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2320,
        820
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d8919ec6-05a0-462e-a5f9-26102b5b04e2",
      "name": "Copywriter AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2980,
        740
      ],
      "parameters": {
        "text": "=You are an expert-level SEO content strategist and copywriter with years of experience writing high-performing blog posts.\n\nYour task is to:\n\n1. Improve the provided topic title by generating a better, SEO-optimized blog post title that is more attractive and ranks well on search engines.\n\n2. Write a complete blog post based on the improved title. The post must:\n- Be between 800\u20131200 words\n- Use a clear, conversational, and engaging tone\n- Be SEO-friendly with natural keyword integration\n- Start with a hooking introduction that introduces the topic smoothly\n- Use headings and subheadings (H1 for the title, H2 for main sections, H3 for supporting points)\n- Use bullet points or numbered lists where helpful\n- Have a strong conclusion that summarizes the key points and includes a call-to-action or final insight\n- Ensure smooth flow and concise, informative paragraphs\n\n3. Output the result as a JSON object with this format:\n\n```json\n{\n  \"title\": \"Improved SEO-Optimized Title\",\n  \"content\": \"Full blog post content in markdown format\"\n}\n```\n\nHere is the topic you should improve and write about:\n{{ $json.Topic }}\n\nGenerate the improved title and the full blog post now.\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "c76bb5b7-404d-46d2-984f-2648f7dbc555",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2960,
        1040
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "75f8816c-515a-4805-945e-2f4aaf6b18d7",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        3160,
        1040
      ],
      "parameters": {
        "sessionKey": "={{ $('Get Topic from Google Sheets').item.json.Topic }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "0cf69760-6cfe-488a-a7f3-aedb917d6838",
      "name": "Copywriter Revision Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3480,
        1200
      ],
      "parameters": {
        "text": "=You are an expert-level copywriter with strong SEO knowledge and a clear, engaging writing style. Your task is to revise an existing blog post based on the given topic and user feedback.\n\nHere are your responsibilities:\n- Carefully apply all of the user's feedback to improve the blog post.\n- Preserve the good parts of the original content, but rewrite or adjust areas based on the feedback.\n- Keep the tone friendly, professional, and easy to read.\n- Organize the blog post with clear headings and subheadings.\n- Use bullet points or numbered lists when it makes the content clearer.\n- Ensure a strong hook in the introduction and a solid conclusion with a call-to-action or takeaway.\n- Aim for a length between 800\u20131200 words unless the feedback suggests otherwise.\n\nHere is the topic title:\n{{ $('Get Topic from Google Sheets').item.json.Topic }}\n\nHere is the user's feedback:\n{{ $('Send Content for Approval').item.json.data['Content Feedback'] }}\n\nHere is the original content:\n{{ $('Copywriter AI Agent').item.json.output }}\n\nNow, rewrite the blog post using this input, fully incorporating the feedback.\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "b2ced856-381a-42cc-8935-3408c43648d8",
      "name": "Set Data",
      "type": "n8n-nodes-base.set",
      "position": [
        3420,
        740
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c4dbce1a-8b34-46b7-a740-b49339233e68",
              "name": "Topic Title",
              "type": "string",
              "value": "={{ $json.output.title }}"
            },
            {
              "id": "4924b496-db60-4618-bab7-a9d5e689c8eb",
              "name": "Content",
              "type": "string",
              "value": "={{ $json.output.content }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cd76fdf2-eab5-4bf6-921b-d956ab8b3282",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        3260,
        1220
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"Improved SEO-Optimized Title\",\n  \"content\": \"Full blog post content in markdown format\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "b1e3c062-ce7a-4dc2-8566-2613e3b955de",
      "name": "Add Generated Content to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4360,
        740
      ],
      "parameters": {
        "columns": {
          "value": {
            "Title": "={{ $('Set Data').item.json['Topic Title'] }}",
            "Content": "={{ $('Set Data').item.json.Content }}",
            "Generation Date": "={{ $now }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Generation Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Generation Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1579104486,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit#gid=1579104486",
          "cachedResultName": "Generated Content"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit?usp=drivesdk",
          "cachedResultName": "Content Topics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "3c8f388f-cb03-4c3a-b39c-3e5d21151241",
      "name": "Update Topic Status on Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4020,
        740
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Completed",
            "row_number": "={{ $('Get Topic from Google Sheets').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Output",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit#gid=0",
          "cachedResultName": "Topic List"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit?usp=drivesdk",
          "cachedResultName": "Content Topics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "f320e2c5-e5ef-4b44-9458-7295d337daa3",
      "name": "Get Topic from Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2660,
        820
      ],
      "parameters": {
        "options": {
          "returnFirstMatch": true
        },
        "filtersUI": {
          "values": [
            {
              "lookupValue": "Pending",
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit#gid=0",
          "cachedResultName": "Topic List"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CyELzPxCDHAXJVu-p2_QRiGRGYwjPtJpeGwWXvlWjLw/edit?usp=drivesdk",
          "cachedResultName": "Content Topics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "35654a6d-8b77-449a-a560-8db2f5fdb451",
      "name": "Send Content for Approval",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3580,
        740
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=Generated Title:\n{{ $json['Topic Title'] }}\n\nGenerated Content:\n{{ $json.Content }}",
        "options": {},
        "subject": "Approval Required for Blog Content",
        "operation": "sendAndWait",
        "formFields": {
          "values": [
            {
              "fieldType": "dropdown",
              "fieldLabel": "Approve Content?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  },
                  {
                    "option": "Cancel"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Content Feedback"
            }
          ]
        },
        "responseType": "customForm"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "08141d98-6b12-47ce-9881-b4bbd41d8ae7",
      "name": "Approval Result",
      "type": "n8n-nodes-base.switch",
      "position": [
        3720,
        740
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Yes",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "317039f4-754e-4cb0-a674-eb8d26c9ed27",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.data['Approve Content?'] }}",
                    "rightValue": "Yes"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "No",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "caace3ea-4ca0-40de-84fb-5a8fd809a0eb",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.data['Approve Content?'] }}",
                    "rightValue": "No"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Cancel",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "f93e5649-6a21-49a9-9993-85f1323139b0",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.data['Approve Content?'] }}",
                    "rightValue": "Cancel"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "915e835b-fd66-4222-baf4-8e9be0a163c2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2220,
        640
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 360,
        "content": "\ud83d\udd52 WORKFLOW STARTER\nThis triggers the content generation process automatically.\n\nSetup Required:\n\u2022 Set your preferred trigger interval."
      },
      "typeVersion": 1
    },
    {
      "id": "e20d85ab-23f9-4634-a2ad-3bfe00271aec",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2560,
        520
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 480,
        "content": "\ud83d\udcca TOPIC RETRIEVAL\nFetches the first \"Pending\" topic from your topic list.\n\nSetup Required:\n\u2022 Connect your Google account\n\u2022 Update Sheet ID in node settings\n\u2022 Ensure \"Topic List\" sheet exists with columns:\n  - Topic (A), Status (B)\n\nOutput: Topic title + row number for tracking"
      },
      "typeVersion": 1
    },
    {
      "id": "96aac741-474f-4f65-8b1c-224a08f8b8a6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1940,
        520
      ],
      "parameters": {
        "color": 4,
        "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\ud83d\udc49 [Automate Blog Content Creation \u2013 Google Sheet Template](https://docs.google.com/spreadsheets/d/1ZZ2RoMYS1DZEhM7hEDUbSCAUlcZrZ15pnGRHuus3fVk/edit?usp=sharing)\n\nGoogle Sheets Structure:\nSheet 1: \"Topic List\"\n\u2022 Column A: Topic\n\u2022 Column B: Status (\"Pending\", \"Completed\")\n\nSheet 2: \"Generated Content\"\n\u2022 Column A: Title\n\u2022 Column B: Content\n\u2022 Column C: Generation Date\n\nRequired Credentials:\n\u2022 OpenAI API Key\n\u2022 Google Sheets Credential\n\u2022 Gmail Credential"
      },
      "typeVersion": 1
    },
    {
      "id": "751f9f12-f2ac-449a-ad0c-0f8eab0e0b7e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2900,
        520
      ],
      "parameters": {
        "color": 4,
        "width": 460,
        "height": 800,
        "content": "\ud83e\udd16 CONTENT CREATION\nAI writes SEO-optimized blog posts (800-1200 words).\n\nSetup Required:\n\u2022 Add OpenAI API key in credentials\n\u2022 Uses structured prompts for consistency\n\nOutput: JSON with title + content ready for review"
      },
      "typeVersion": 1
    },
    {
      "id": "840daac8-e2c1-433c-b91c-743aae5b687a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3400,
        520
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 440,
        "content": "\ud83d\udce7 HUMAN REVIEW\nThis step sends the generated content via email for approval.\n\n\u2705 Update the To Email Field in the Gmail node with your own email address.\n\n\u26a0\ufe0f Note: The workflow will pause here until a response is received."
      },
      "typeVersion": 1
    },
    {
      "id": "b0a49973-7671-4797-bcfd-e559a59db8d5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3400,
        980
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 420,
        "content": "\u270f\ufe0f 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: Revised content incorporating feedback"
      },
      "typeVersion": 1
    },
    {
      "id": "6b2da55a-38f2-4f61-8189-73c7173fccb4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3920,
        500
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 480,
        "content": "\u2705 TOPIC STATUS UPDATE\nUpdates topic status to \"Completed\" in tracking sheet.\n\nPurpose:\n\u2022 Prevents duplicate processing\n\u2022 Tracks workflow progress\n\u2022 Uses row number from initial fetch\n\nColumn Updated: Status (B) \u2192 \"Completed\"\n"
      },
      "typeVersion": 1
    },
    {
      "id": "41dd015e-3c3c-422e-be34-c1353ee2dd6a",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4260,
        500
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 480,
        "content": "\ud83d\udcbe ADD GENERATED CONTENT\nSaves approved content to \"Generated Content\" sheet.\n\nSetup Required:\n\u2022 Ensure \"Generated Content\" sheet exists\n\u2022 Columns: Title (A), Content (B), Date (C)\n\nPurpose: Permanent storage for published content\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8bee3e14-12d0-449a-881e-d420fff3b751",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1940,
        1020
      ],
      "parameters": {
        "color": 5,
        "width": 420,
        "height": 420,
        "content": "## \ud83d\ude80 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-1200 word articles\n- Includes human approval process for quality control\n- Manages topics via Google Sheets\n- Handles revisions based on feedback\n\nPerfect For:\n- Content marketers scaling blog production\n- Agencies managing multiple clients\n- Bloggers wanting consistent publishing\n- SEO professionals creating optimized content"
      },
      "typeVersion": 1
    },
    {
      "id": "d160369b-ec57-486e-9715-c39df12e5866",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2380,
        1020
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 420,
        "content": "## \ud83d\udccb WORKFLOW PROCESS OVERVIEW\n\nStep 1: \ud83d\udcc5 Schedule automatically starts process\nStep 2: \ud83d\udcca Fetch pending topic from Google Sheets\nStep 3: \ud83e\udd16 AI generates complete blog post\nStep 4: \ud83d\udce7 Send content to you for approval\nStep 5: \u2705 You approve, request changes, or cancel\nStep 6: \u270f\ufe0f AI revises content if changes requested\nStep 7: \ud83d\udcbe Save final content & mark topic complete\n"
      },
      "typeVersion": 1
    },
    {
      "id": "35c3e968-ca3c-4c24-b468-af34e302ae14",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4600,
        360
      ],
      "parameters": {
        "color": 4,
        "width": 380,
        "height": 760,
        "content": "# \ud83d\udc4b Hi, I\u2019m 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 projects? \nContact me and let\u2019s build your automation together.\n\n\ud83d\udce9 **Email:** billychartanto@gmail.com  \n\ud83e\udd1d **n8n Creator:** [n8n.io/creators/billy](https://n8n.io/creators/billy/)\n\ud83c\udf10 **My n8n Projects:** [billychristi.com/n8n](https://www.billychristi.com/n8n)  \n\n\n\n---\n\ud83d\udca1 Feel free to get in touch if you\u2019d like help on your next automation project or if you have any feedback or thoughts to share.\n"
      },
      "typeVersion": 1
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}