{
  "id": "9MeGuxXeboUxBiJe",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "SEO Blog - Content Automation",
  "tags": [
    {
      "id": "VKCvL0SyGclKbiYG",
      "name": "Course",
      "createdAt": "2025-10-08T08:51:15.748Z",
      "updatedAt": "2025-10-08T08:51:15.748Z"
    },
    {
      "id": "WJOLp1McmJ2r5cDO",
      "name": "B2C Marketing",
      "createdAt": "2025-10-24T07:09:45.727Z",
      "updatedAt": "2025-10-24T07:09:45.727Z"
    }
  ],
  "nodes": [
    {
      "id": "bcaa3087-d1e3-4c77-84c1-1bf72c0c55ee",
      "name": "Copywriter AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1024,
        336
      ],
      "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 }}\nHere is reference URL that you can read and find suitable keywords from.\n{{ $json['Referenc URL'] }}\nGenerate the improved title and the full blog post now.\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "945a8a84-05a3-450b-a2d9-95a72a158b31",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1056,
        688
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a2dd7334-d239-4b60-b4f2-d47e3757289b",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -896,
        608
      ],
      "parameters": {
        "sessionKey": "={{ $('Get Topic from Google Sheets').item.json.Topic }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "4d4dd22e-7cb4-4417-8190-81bcd5231f1f",
      "name": "Copywriter Revision Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -480,
        688
      ],
      "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": "8810a1bb-4452-4975-8ebc-77aa6f32c967",
      "name": "Set Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        320
      ],
      "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": "1e43c798-764a-4a32-bd2c-1b971528db69",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -784,
        512
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"Improved SEO-Optimized Title\",\n  \"content\": \"Full blog post content in markdown format\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "2d78ee8d-153d-4e89-89d1-4ccfdb7638f3",
      "name": "Update Topic Status on Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -16,
        304
      ],
      "parameters": {
        "columns": {
          "value": {
            "Title": "={{ $('Set Data').item.json['Topic Title'] }}",
            "Status": "Approved",
            "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": "Referenc URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Referenc URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Link to document",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Link to document",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Published",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "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": 2130183729,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit#gid=2130183729",
          "cachedResultName": "Content"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit?usp=drivesdk",
          "cachedResultName": "Course 3 - S5 - B2C workflows"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "baedd0de-0c56-49b7-9231-bed606055298",
      "name": "Get Topic from Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1296,
        384
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2130183729,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit#gid=2130183729",
          "cachedResultName": "Content"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit?usp=drivesdk",
          "cachedResultName": "Course 3 - S5 - B2C workflows"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "a6ae365b-f39f-4264-a74a-a20b1e23950f",
      "name": "Send Content for Approval",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -432,
        320
      ],
      "parameters": {
        "sendTo": "<your email>",
        "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": "d8cbbdd3-a4da-4a5e-9507-a58e2a5a65d5",
      "name": "Approval Result",
      "type": "n8n-nodes-base.switch",
      "position": [
        -304,
        320
      ],
      "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": "b5eec426-b226-457a-882b-77b33665145a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1808,
        128
      ],
      "parameters": {
        "color": 4,
        "width": 656,
        "height": 480,
        "content": "## Identify Topic\nIdentify topics for blogs and update in sheet"
      },
      "typeVersion": 1
    },
    {
      "id": "f77a6967-e3a8-4a8e-bc0d-6c2b91deed27",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        128
      ],
      "parameters": {
        "color": 2,
        "width": 460,
        "height": 800,
        "content": "## Create the Blog\nAI writes SEO-optimized blog posts (800-1200 words).\n\nTip: Suggesting adding Humanizer & AI detector steps after the AI agent output."
      },
      "typeVersion": 1
    },
    {
      "id": "1b3826d0-1d21-49a6-be33-0fc54ea0928b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        128
      ],
      "parameters": {
        "color": 3,
        "width": 440,
        "height": 440,
        "content": "## Approval Step \nGet an approval and make modifications"
      },
      "typeVersion": 1
    },
    {
      "id": "3bdc16ea-28ec-444e-860f-f00c1d6015d4",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        592
      ],
      "parameters": {
        "color": 3,
        "width": 440,
        "height": 420,
        "content": "## Take Feedback and improve\nAI improves content based on human feedback."
      },
      "typeVersion": 1
    },
    {
      "id": "8ade2ca7-5b4d-4f7f-9842-9f823b28e929",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 668,
        "height": 480,
        "content": "## Update Sheet post approval\nUpdate Status and add the content in the sheet\n"
      },
      "typeVersion": 1
    },
    {
      "id": "64ded1f3-8c15-468b-b787-f89885ee7704",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1712,
        320
      ],
      "parameters": {
        "options": {
          "buttonLabel": "Create Content"
        },
        "formTitle": "Suggest the Topic for Blog",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Topic",
              "placeholder": "Top 10 workflows to automate",
              "requiredField": true
            },
            {
              "fieldLabel": "Reference link",
              "placeholder": "Link to content topic"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "12422cf2-4574-4c5d-bbbb-6758944959fd",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1504,
        320
      ],
      "parameters": {
        "columns": {
          "value": {
            "Topic": "={{ $json.Topic }}",
            "Referenc URL": "={{ $json['Reference link'] }}"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Referenc URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Referenc URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Link to document",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Link to document",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Published",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2130183729,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit#gid=2130183729",
          "cachedResultName": "Content"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit?usp=drivesdk",
          "cachedResultName": "Course 3 - S5 - B2C workflows"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "782ae0f8-e7c2-42ba-ad52-f31e483dbd4d",
      "name": "Update sheet with blog post link",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        384,
        176
      ],
      "parameters": {
        "columns": {
          "value": {
            "Published": "={{ $now }}",
            "row_number": "={{ $('Get Topic from Google Sheets').item.json.row_number }}",
            "Link to document": "=https://docs.google.com/document/d/{{ $json.documentId }}/edit?tab=t.0"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Referenc URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Referenc URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Link to document",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Link to document",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Published",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "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": 2130183729,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit#gid=2130183729",
          "cachedResultName": "Content"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1erI6o4rdxO_FwCUPFhL7cm3w_nODc-4B7--yUaaQq8w/edit?usp=drivesdk",
          "cachedResultName": "Course 3 - S5 - B2C workflows"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "68e90b26-8273-4473-bc9a-2446410a9464",
      "name": "Create Blog file",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        160,
        208
      ],
      "parameters": {
        "title": "={{ $('Set Data').item.json['Topic Title'] }}",
        "folderId": "1fkCffFks2wWIP12MAEl5VWDYEvSVlzq0"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "7ab006dd-08f4-4483-959c-103ef37be8b8",
      "name": "Add blog content in file",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        176,
        416
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Set Data').item.json.Content }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ca85c55e-10db-483b-a8a7-686df31da078",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1808,
        -352
      ],
      "parameters": {
        "width": 656,
        "height": 448,
        "content": "## Main Sticky\n**How it works** \nThrough a form it captures the topic for blog. Same is added in a sheet/tracker. The Agent writes the blog for SEO optimization and then takes approval on it. Based on approval either it is revised or approved. Approved blogs are saved as a document and link saved in the tracker for posting.\n\n**How to setup**\nCreate the tracker with topic, reference url, Title, link to document, published date. \n\nEdit the prompt if required to create blogs.\nFor approval add, the email id to whom approval is to be sent.\n\nTip: Suggest adding ghost-ai humanizer and checking the score through gptzero for better outputs."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "696c87bf-42ad-40db-8124-b863ad8662b8",
  "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
          }
        ]
      ]
    },
    "Create Blog file": {
      "main": [
        [
          {
            "node": "Add blog content in file",
            "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
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "Get Topic from Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Copywriter AI Agent": {
      "main": [
        [
          {
            "node": "Set Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add blog content in file": {
      "main": [
        [
          {
            "node": "Update sheet with blog post link",
            "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": "Create Blog file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}