{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "a6297e94-2aa2-4fb6-be81-c12d31fbac78",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        816,
        288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"candidates\": [\n    {\n      \"topic\": \"\",\n      \"difficulty\": \"\",\n      \"why\": \"\"\n    }\n  ],\n  \"selected_topic\": {\n    \"topic\": \"\",\n    \"difficulty\": \"\",\n    \"reason\": \"\"\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "fc5fca93-031b-429d-9bee-71a37b2ac73b",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1168,
        288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"problem\": \"\",\n  \"when_it_matters\": \"\",\n  \"core_idea\": \"\",\n  \"practical_approach\": [\n    \"\",\n    \"\",\n    \"\"\n  ],\n  \"common_mistake\": \"\",\n  \"result\": \"\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "47e8a5ed-57e1-4459-8e2e-f141d02f6ba6",
      "name": "Weekly Post Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        64
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 10,
              "triggerAtMinute": 15
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "ed53ea93-89f3-4366-b7ed-f535e486e1d2",
      "name": "Structure & Logic Designer",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "Builds the technical blueprint (The 'Why').",
      "position": [
        1024,
        64
      ],
      "parameters": {
        "text": "=Topic: > {{ $json.output.selected_topic.topic }}\n\nTechnical Difficulty: > {{ $json.output.selected_topic.difficulty }}\n\nContext & Value: > {{ $json.output.selected_topic.reason }}\n\nInstruction: Generate the Structure Blueprint using the sections defined in your System Message. Ensure the depth matches the \"{{ $json.output.selected_topic.difficulty }}\" level.",
        "options": {
          "systemMessage": "Role: You are a Senior n8n Solutions Architect and Educator.\n\nTask: Create a technical \"Teaching Blueprint\" for a high-authority LinkedIn post based on the provided topic. You do NOT write the final copy; you define the logical skeleton that ensures the reader learns how to architect a solution, not just click buttons.\n\nRules:\n1. Focus on \"The Why\": Explain the logic behind the solution, not just the steps.\n2. Technical Depth: Identify 1-2 \"Advanced Nodes\" or features essential for this workflow (e.g., Error Trigger, Code Node, Merge [Wait for All], or Wait nodes for rate-limiting).\n3. Production-Ready Advice: Include a \"Resiliency Tip\" in the Common Mistake section (e.g., handling timeouts or schema drift).\n4. Expert Tone: Avoid marketing fluff (\"unlock,\" \"revolutionary\"). Use engineering terms: \"idempotency,\" \"scalability,\" \"state management,\" and \"error handling.\"\n5. Formatting: Write in Sentence Case. Only capitalize the first letter of sentences and proper nouns (n8n, API names).\n\nStructure Requirements: \n\u2022 The Problem: The specific pain point or technical bottleneck. \n\u2022 Real-World Context: When this specific architecture is mandatory (e.g., high-volume production). \n\u2022 Core Concept: The \"Mental Model\" the reader needs to understand the solution. \n\u2022 Architectural Approach: 3-4 high-level engineering steps. Mention the \"Advanced Nodes\" here. \n\u2022 The \"Silent Killer\": A common mistake that breaks this workflow in production. \n\u2022 The Result: The business or technical outcome of a resilient build."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "7b4b261f-a514-431a-8b78-9de33b507471",
      "name": "Draft Copywriter",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "Enforces branding & kills AI fluff.",
      "position": [
        1376,
        64
      ],
      "parameters": {
        "text": "=Write a LinkedIn post using the following raw data. Follow the structure strictly:\n\nProblem: \n{{ $json.output.problem }}\n\nWhen it matters: \n{{ $json.output.when_it_matters }}\n\nCore idea: \n{{ $json.output.core_idea }}\n\nPractical approach: \n{{ Array.isArray($json.output.architectural_approach) ? $json.output.architectural_approach.join(\"\\n- \") : $json.output.architectural_approach }}\n\nCommon mistake: \n{{ $json.output.silent_killer }}\n\nResult: \n{{ $json.output.result }}\n\nFinal Instruction: End the post with a light open question CTA",
        "options": {
          "systemMessage": "You are a world-class n8n Automation Expert and LinkedIn Content Creator. Your goal is to turn technical data into high-engagement \"authority\" posts.\n\nSTRICT WRITING RULES:\n1. NO INTROS: Do not start with \"Here is your post\" or \"Sure thing.\" Start immediately with the Hook.\n2. HOOK: Create a punchy, 1-line opening that highlights a pain point or a controversial opinion about automation.\n3. SCANNABILITY: Use frequent line breaks. No paragraph should be longer than 2 sentences.\n4. TONE: Direct, professional, and helpful. Use \"Ambassador\" language: talk about \"production-ready,\" \"scalability,\" and \"resilient workflows.\"\n5. FORMATTING: Use bullet points (\u2022) for lists. Ensure there is a blank line between every section.\n6. NO EMOJI OVERLOAD: Use max 2-3 emojis in the entire post.\n7. When mentioning the Practical Approach, explicitly name the n8n nodes involved (e.g., 'Use the Webhook Node to...')."
        },
        "promptType": "define"
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "f65da286-cea7-4721-8969-e9d3a49199de",
      "name": "Human Approval (Gmail)",
      "type": "n8n-nodes-base.gmail",
      "onError": "continueErrorOutput",
      "position": [
        2080,
        64
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=<strong>Ready for LinkedIn: {{ $('Deduplication & Topic Selector').item.json.output.selected_topic.topic }}</strong>\n\n{{ $json.output }}",
        "options": {
          "limitWaitTime": {
            "values": {
              "resumeAmount": 48
            }
          },
          "appendAttribution": false
        },
        "subject": "=Ready for LinkedIn: {{ $('Deduplication & Topic Selector').item.json.output.selected_topic.topic }}",
        "operation": "sendAndWait",
        "approvalOptions": {
          "values": {
            "approvalType": "double"
          }
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6aa4c206-cc5a-4577-8f7b-78e87203012c",
      "name": "Log Published Content",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2304,
        -32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $now.toFormat(\"dd-MM-yyyy\") }}",
            "Topic": "={{ $items(\"Deduplication & Topic Selector\")[0].json.output.selected_topic.topic }}",
            "Status": "Drafted",
            "Content": "={{ $('Style & Compliance Editor').item.json.output }}",
            "Difficulty": "={{ $items(\"Deduplication & Topic Selector\")[0].json.output.selected_topic.difficulty }}"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "LinkedIn URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Difficulty",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Difficulty",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "REPLACE_WITH_YOUR_SHEET_ID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_WITH_YOUR_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "cd4d2853-cee3-4b4b-8bec-1366b22058bc",
      "name": "Retrieve Post History & Ideas",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        64
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "REPLACE_WITH_YOUR_SHEET_ID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "REPLACE_WITH_YOUR_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "fb548d41-52c5-4565-9098-8b13805091c3",
      "name": "Deduplication & Topic Selector",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "Ensures we never post the same thing twice.",
      "position": [
        672,
        64
      ],
      "parameters": {
        "text": "=Here is my posting history in JSON format.\nEach item includes Topic, Status, and Difficulty.\n\n{{ JSON.stringify($input.all().map(item => ({\n  topic: item.json.Topic,\n  status: item.json.Status,\n  difficulty: item.json.Difficulty\n}))) }}\n\nBased on this history:\n1. Propose 3 new topic ideas that do not overlap with the history.\n2. Assign a difficulty to each.\n3. Briefly explain why each topic is valuable for an n8n user.\n4. Select the best ONE topic to post this week and explain your choice.",
        "options": {
          "systemMessage": "You are an n8n expert and educator.\n\nYour task is to propose ONE weekly LinkedIn \u201chow-to\u201d topic about n8n.\nThe goal is to build authority and attract n8n users.\n\nRules:\n- Do not repeat previously used topics.\n- Prefer practical, experience-based problems.\n- Focus on teaching how to think, not just which nodes to click.\n- Audience: beginner to intermediate n8n users.\n- Topics should be concrete and specific.\n- Avoid generic topics like \u201cWhat is n8n\u201d.\n- Write the following response in Sentence Case. Only capitalize the first letter of the sentence and proper nouns like names or places."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "c073dc0d-a408-4e37-93d9-0b741347a2d6",
      "name": "Style & Compliance Editor",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "Closes the loop by updating memory for next week.",
      "position": [
        1728,
        64
      ],
      "parameters": {
        "text": "=Please review and edit the following LinkedIn post according to your strict branding and formatting rules:\n\n{{ $json.output }}",
        "options": {
          "systemMessage": "You are a Senior Technical Editor specializing in n8n and enterprise automation. Your role is to polish LinkedIn posts to ensure they sound like they were written by a top-tier industry expert (Ambassador level).\n\nSTRICT EDITING RULES:\n1. NO EM DASHES: You must never use an em dash (\u2014). \n2. DASH SPACING: Replace any em dashes or tight hyphens with a spaced hyphen: \"word - word\". This is a non-negotiable branding requirement.\n3. REMOVE \"FOLLOW\" CTAs: Delete any requests for the reader to follow, like, or subscribe. The value of the content should speak for itself.\n4. EXPERT SIGN-OFF: Replace the deleted CTA with a confident, technical closing statement that highlights the power of n8n.\n5. HASHTAGS: End every post with exactly these three hashtags: #n8n #automation #lowcode.\n6. NO INTRO/OUTRO: Output only the final edited post. Do not include phrases like \"Here is the revised version.\"\n7. KILL AI FLUFF: Eliminate these words/phrases: \"unlock,\" \"harness,\" \"revolutionary,\" \"dive deep,\" \"game changer,\" \"seamlessly,\" \"mastering,\" \"look no further.\"\n8. STRATEGIC ENGAGEMENT (OPTIONAL): Occasionally (about 50% of the time), end with a high-level question that invites technical discussion (e.g., about global error states or node-level handling).\n9. Remove all the styles (bold, italic, etc) from the post.\n10. Rule: If the text mentions 'Function Node,' replace it with 'Code Node' to stay aligned with the latest n8n versioning.\n\nTONE & VOICE:\n- Professional, direct, and slightly technical.\n- Use \"white space\" between every section to ensure mobile readability.\n- Use bullet points (\u2022) for practical steps.\n\nIf the input text already follows these rules, simply ensure the spacing and dashes are perfect and return it."
        },
        "promptType": "define"
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "955e7dc4-bf76-4b23-a215-c9ab78de7114",
      "name": "Brain: Topic Analyst (GPT-4o-mini)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        640,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {
          "temperature": 0.4
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "e2d3f21a-ae90-4e58-99a5-cd6359ddfaac",
      "name": "Brain: Content Architect (GPT-4o)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1008,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "e72829f3-0f00-4387-a0bd-5d479a815308",
      "name": "Brain: Creative Writer (GPT-4o)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1456,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {
          "temperature": 0.5
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "67c84921-9c50-43c4-b7b2-c4886c5958df",
      "name": "Brain: Formatting Police (GPT-4o)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1808,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "e3c5b370-de1f-42fd-b97e-bc88b4cfa8c8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        -816
      ],
      "parameters": {
        "width": 864,
        "height": 720,
        "content": "## [PRO] n8n Content Architect: Multi-Agent Engine\n**Goal:** Generate high-authority, \"Sentence Case\" LinkedIn content while ensuring topic variety and technical depth.\n\n**Workflow Logic:**\n\n**Contextual Memory:** Scans history via Google Sheets to prevent repetitive topics.\n\n**Architectural Blueprinting:** Separates technical logic from creative writing.\n\n**Branding Compliance:** Enforces spaced-hyphens and strips AI \"fluff.\"\n\n**Human-in-the-Loop (Gmail):** Sends the final copy to Gmail for manual review, image pairing, and publishing.\n\n**Why the Manual Step?** To maintain \"Ambassador-level\" quality, the final post is reviewed in Gmail. This allows for:\n\n**Visual Curation:** Pairing the high-quality technical copy with a custom, non-AI image.\n\n**Final Nuance:** A final human \"sanity check\" before going live.\n\n**Resiliency & Error Handling:**\n\n**- Automatic Timeout:** If the Gmail draft isn't approved within 48 hours, the execution closes gracefully to save system resources.\n\n**- Error Monitoring:** A global Error Trigger is included to notify you immediately if any API or AI model fails.\n\n**- Memory Integrity:** Topics are only logged to the \"History\" sheet after human approval, ensuring your content queue remains accurate.\n\n**Setup Requirements:**\n\n**Google Sheets:** Connect a sheet with Topic, Status, and Difficulty columns.\n\n**AI Models:** Connect OpenAI (GPT-4o and GPT-4o-mini).\n\n**Gmail:** Set your destination email in the final \"Human Approval\" node."
      },
      "typeVersion": 1
    },
    {
      "id": "60d1c2f0-9672-46a5-8333-46e1346634f4",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        448,
        64
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "af172919-1e99-4247-9efc-9068819ba341",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 976,
        "height": 464,
        "content": "## PHASE 1: BRAINSTORMING"
      },
      "typeVersion": 1
    },
    {
      "id": "28f704d4-6094-4566-96b1-ea35d682d6a6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 464,
        "content": "## PHASE 2: ENGINEERING"
      },
      "typeVersion": 1
    },
    {
      "id": "ebc6b50b-36a2-40f3-bb16-4091cde59591",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 640,
        "height": 464,
        "content": "## PHASE 3: CREATIVE & QC"
      },
      "typeVersion": 1
    },
    {
      "id": "5306ccda-8991-4362-955c-88586cd818e5",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2016,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 448,
        "height": 464,
        "content": "## PHASE 4: DELIVERY"
      },
      "typeVersion": 1
    },
    {
      "id": "08853664-48fa-4b43-ad71-4608ceded160",
      "name": "Error Trigger",
      "type": "n8n-nodes-base.errorTrigger",
      "position": [
        -16,
        624
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b8f289f0-7ad8-475f-ae17-9dacb75d20b7",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        208,
        624
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=The LinkedIn engine failed at node: {{ $node[\"Error Trigger\"].json[\"node\"][\"name\"] }}. Reason: {{ $node[\"Error Trigger\"].json[\"execution\"][\"error\"][\"message\"] }}",
        "options": {},
        "subject": "\u26a0\ufe0f Workflow Error: LinkedIn Content Engine"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f08bbf10-4bab-4725-aa03-855cf129320d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 448,
        "height": 336,
        "content": "## SYSTEM: Error Handling"
      },
      "typeVersion": 1
    },
    {
      "id": "2be9e695-0dd6-4b9f-a516-69949d1307c5",
      "name": "Wait Timed Out (48h)",
      "type": "n8n-nodes-base.noOp",
      "notes": "Execution timed out after 48h.",
      "position": [
        2304,
        160
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "1b6eecc2-d0ca-4134-ac38-4f28403e56f1",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        0
      ],
      "parameters": {
        "width": 336,
        "height": 256,
        "content": "## \ud83d\ude80 START HERE\nTo use this workflow: \n1. Create a Google Sheet with 'Topic', 'Content', 'Date', 'Status', and 'Difficulty'. \n2. Update the Document ID in the 'Retrieve Post History & Ideas' and 'Log Published Content' nodes. \n3. Update your recipient email in the 'Gmail Approval' node (2x)."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Deduplication & Topic Selector",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Error Trigger": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Draft Copywriter": {
      "main": [
        [
          {
            "node": "Style & Compliance Editor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Post Trigger": {
      "main": [
        [
          {
            "node": "Retrieve Post History & Ideas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Human Approval (Gmail)": {
      "main": [
        [
          {
            "node": "Log Published Content",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Timed Out (48h)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Deduplication & Topic Selector",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Structure & Logic Designer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Style & Compliance Editor": {
      "main": [
        [
          {
            "node": "Human Approval (Gmail)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structure & Logic Designer": {
      "main": [
        [
          {
            "node": "Draft Copywriter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Post History & Ideas": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deduplication & Topic Selector": {
      "main": [
        [
          {
            "node": "Structure & Logic Designer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Brain: Creative Writer (GPT-4o)": {
      "ai_languageModel": [
        [
          {
            "node": "Draft Copywriter",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brain: Content Architect (GPT-4o)": {
      "ai_languageModel": [
        [
          {
            "node": "Structure & Logic Designer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brain: Formatting Police (GPT-4o)": {
      "ai_languageModel": [
        [
          {
            "node": "Style & Compliance Editor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brain: Topic Analyst (GPT-4o-mini)": {
      "ai_languageModel": [
        [
          {
            "node": "Deduplication & Topic Selector",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}