{
  "workflow": {
    "id": 10841,
    "name": "Create & publish SEO content with AI agents & Google Sheets tracking",
    "views": 174,
    "recentViews": 1,
    "totalViews": 174,
    "createdAt": "2025-11-14T14:56:43.989Z",
    "description": "## 📊 Description\nEnhance your support, onboarding, and internal knowledge workflows with an intelligent RAG-powered chatbot that responds using live data stored in Google Sheets. 🤖📚 Built for teams that rely on structured datasets, this workflow fetches sheet content, enriches it with AI reasoning, and produces precise, context-aware answers — without requiring a full vector database setup.\nWhether you're managing FAQs, product data, SOPs, or internal documentation, this automation keeps responses consistent, up-to-date, and always aligned with your source of truth. 🚀\n\n## What This Template Does\n1️⃣ Trigger – Starts automatically or via manual execution to answer user queries.\n 2️⃣ Extract – Receives a question and fetches the relevant sheet ID and target range.\n 3️⃣ Retrieve – Pulls knowledge from your Google Sheet (FAQ list, product catalog, SOPs, etc.).\n 4️⃣ Process – Sends the question and sheet content to an AI model to perform Retrieval-Augmented Generation.\n 5️⃣ Generate – Creates a concise, accurate, context-grounded answer based on the sheet data.\n 6️⃣ Output – Returns a clean final response ready for apps, chatbots, or integrations.\n\n## Key Benefits\n✅ Guarantees answers that stay aligned with your internal documents\n ✅ Eliminates hallucinations using RAG-style grounding\n ✅ Works with any Google Sheet — no database required\n ✅ Easy to extend into customer support, onboarding flows, or SOP assistants\n ✅ Fast, lightweight, and highly reliable for high-volume Q&A\n\n## Features\n- Google Sheets integration for real-time document retrieval\n- OpenAI (or any LLM) prompt-based reasoning\n- RAG-style answer generation without vector embeddings\n- Modular design for easy reuse in other workflows\n- Clean JSON output suitable for chat interfaces or APIs\n\n## Requirements\n- Google Sheets OAuth2 credentials\n- OpenAI API key or any compatible LLM provider\n- Question input (from webhook, chatbot, form, CRM, etc.)\n\n## Target Audience\n- Support teams responding to repetitive customer FAQs 💬\n- Operations teams managing SOP-based workflows 📘\n- Product teams needing accurate data-driven responses 📊\n- Agencies building custom AI assistants for clients 🤝\n- Internal helpdesk automations for teams 🛠️\n",
    "workflow": {
      "id": "YPOg9vBGLvnpWjEF",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Orchestrate End-to-End Content Generation from AI Agents and Google Sheets",
      "tags": [],
      "nodes": [
        {
          "id": "a9cb927f-bba0-4184-9c15-7300a1b89d22",
          "name": "Respond to Webhook",
          "type": "n8n-nodes-base.respondToWebhook",
          "position": [
            1088,
            352
          ],
          "parameters": {
            "options": {},
            "respondWith": "text",
            "responseBody": "={{ $json.output.reply }}"
          },
          "typeVersion": 1
        },
        {
          "id": "cd60eafe-5b5a-4db7-99c9-afed0b86b60a",
          "name": "When chat message received",
          "type": "@n8n/n8n-nodes-langchain.chatTrigger",
          "position": [
            -2096,
            160
          ],
          "webhookId": "5f1c0c82-0ff9-40c7-9e2e-b1a96ffe24cd",
          "parameters": {
            "options": {}
          },
          "typeVersion": 1.1
        },
        {
          "id": "6f0b8858-c46c-4a48-8c80-5b7609d71e7c",
          "name": "Structured Output Parser1",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -1232,
            384
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"intent\": \"draft\",\n  \"topic\": \"AI SEO basics\",\n  \"content_id\": \"C001\", \n   \"content_id\": \"CNT-1701255487715\",\n  \"parameters\": {}\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "86004697-8e92-49a1-9b29-72e567b966d5",
          "name": "Simple Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -1744,
            384
          ],
          "parameters": {
            "contextWindowLength": 7
          },
          "typeVersion": 1.3
        },
        {
          "id": "47918823-77b6-43b5-ab79-8a5711a4b96a",
          "name": "AI Agent Orchestration",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1616,
            160
          ],
          "parameters": {
            "text": "=User message: {{ $json.chatInput }}\nSession ID: {{ $json.sessionId }}",
            "options": {
              "systemMessage": "=You are \"Content Agent\", a senior content strategist AI inside an n8n system.\nYou analyze brand data, SERP context, and past content stored in Google Sheets to decide next action.\n\nAvailable data sources (tools):\n- content_items → existing topics, brands, and statuses\n- content_versions → previous drafts and SEO metadata\n- conversation_logs → previous discussions with users\n\nReturn a structured JSON ONLY in this format:\n{\n  \"intent\": \"chat|brief|draft|optimize|publish|monitor\",\n  \"topic\": \"string\",\n  \"content_id\": \"string (if applicable)\", \n  \"brief_id\": \"string (if applicable)\",\n  \"parameters\": {}\n}\n\nRules:\n- Never include extra commentary, explanations, or notes.\n- Return only valid JSON — no prefixes like \"Agent stop\" or \"AI Response\".\n- If unsure, return {}.\n\n\nRules:\n- Never include extra commentary.\n- Use Google Sheets data via your tools to confirm IDs or topics.\n- Retrieve context from memory if user refers to previous topic.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "retryOnFail": true,
          "typeVersion": 2.1
        },
        {
          "id": "35716cbf-d43a-4e91-b3ce-586f183538f4",
          "name": "format data for subworkflows",
          "type": "n8n-nodes-base.set",
          "position": [
            -1024,
            160
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "00041789-ea3a-444f-ae5a-eceab991ac54",
                  "name": "intent",
                  "type": "string",
                  "value": "={{ $json.output.intent }}"
                },
                {
                  "id": "658dd016-518e-47a1-9112-892624542f1f",
                  "name": "topic",
                  "type": "string",
                  "value": "={{ $json.output.topic }}"
                },
                {
                  "id": "0003a733-0846-45c6-bb07-2ccf34a83b23",
                  "name": "content_id",
                  "type": "string",
                  "value": "={{ $json.output.content_id }}"
                },
                {
                  "id": "70298262-66ed-4ded-b51f-b4bc9814ce83",
                  "name": "parameter",
                  "type": "object",
                  "value": "={{ $json.output.parameters }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "5b5a24f9-2170-4b9b-83dc-faddf52dac0b",
          "name": "Intent Router",
          "type": "n8n-nodes-base.switch",
          "position": [
            -800,
            96
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "b49a1e84-3190-463a-8cf7-1b1f390eac2f",
                        "operator": {
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "chat"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "f714bb5d-6b66-4b0a-8eb3-a50d4b199917",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "brief"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "accc92fd-e8aa-4eb5-8143-7b02e2bb1d24",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "draft"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "83501282-95dc-4db2-98d2-6973c6a69fc2",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "optimize"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "1f37d1bf-2f09-4735-a99a-7f5d3f078cc5",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "publish"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "4a26e884-e1b8-4c3e-b181-efb9503a28db",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.intent }}",
                        "rightValue": "monitor"
                      }
                    ]
                  }
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.3
        },
        {
          "id": "c4476109-f8fe-450d-b116-9ebf4fe47824",
          "name": "AI Agent Chat",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            656,
            352
          ],
          "parameters": {
            "text": "={{ JSON.stringify($json, null, 2) }}\n\nThe above JSON is structured output from internal AI workflows (brief, draft, optimize, publish, or monitor).\n\nConvert this structured data into a single, natural chat message that explains the result to the user in a friendly, human tone.  \nUse emojis and short, clear sentences. Avoid showing technical keys.\n\nReturn only valid JSON in this format:\n{\n  \"reply\": \"your chat-style message here\"\n}",
            "options": {
              "systemMessage": "=You are \"Response Writer\", a conversational AI inside the n8n content automation system.\n\nYour role is to convert structured workflow outputs into clear, human-like chat messages.\n\nYou receive a JSON input that may contain outputs from different AI subflows:\n- brief → when a new content plan or outline is created.\n- draft → when a complete article draft is generated.\n- optimize → when an article has been enhanced for clarity or SEO.\n- publish → when content is marked as published.\n- monitor → when analytics performance is reported.\n\nYour job:\n1. Understand what kind of workflow result this is.\n2. Write a friendly, short, and natural summary message.\n3. Include key insights (title, topic, performance, recommendations, etc.)\n4. Use a warm, helpful, and human tone.\n5. Never expose JSON keys, code, or raw data.\n\nStyle guidelines:\n- Use emojis and Markdown sparingly for readability.\n- Keep sentences conversational and easy to read.\n- For metrics (monitor intent), mention numbers naturally (e.g., “1.2k views with 11.8% CTR”).\n- For drafts or briefs, show enthusiasm and clarity.\n- If no recognizable data exists, say: “I processed your request successfully — nothing special to report yet.”\n\nAlways output plain text only, never JSON.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "retryOnFail": true,
          "typeVersion": 2.1
        },
        {
          "id": "9b1b17d9-623f-4e1d-b9c1-fd80170e3610",
          "name": "AI Agent (Chat Composer)",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -176,
            -752
          ],
          "parameters": {
            "text": "=User message: {{ $json.content }}\nIntent: {{ $json.intent }}\nTopic: {{ $json.topic || \"general\" }}\nContext (from Google Sheets or memory): {{ $json.context || $memory || \"No context retrieved\" }}\n",
            "options": {
              "systemMessage": "=You are \"Content Agent Chat Responder\", a professional AI assistant inside an n8n automation system.\n\nYour role:\n- Communicate naturally, professionally, and concisely.\n- Use provided context from Google Sheets or memory when available.\n- If the user greets you (like \"hi\", \"hello\", \"hey\"), respond politely and ask how you can help.\n- If the user asks about SEO, content drafts, briefs, optimization, or publishing, respond specifically based on context or ask clarifying questions if missing.\n- If the intent is \"chat\" but the content clearly mentions a topic, treat it as a mixed chat + content query.\n- If context is missing, ask the user for more information.\n- Always output concise structured JSON in the format:\n{\n  \"reply\": \"Your full response text\",\n  \"context_used\": [\"list of any context used or none\"]\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "81165eca-d0d0-4e17-8901-33d04e8fe69f",
          "name": "AI Agent (Brief Writer)1",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -176,
            -352
          ],
          "parameters": {
            "text": "=Topic: {{ $json.topic }}\nIntent: {{ $json.intent }}\nUser request: {{ $json.content }}\nContext (from Sheets or memory): {{ $json.context || $memory || 'No context found' }}",
            "options": {
              "systemMessage": "=You are \"Brief Writer Agent\", a professional AI content strategist inside an n8n automation system built by Vivek Patidar.\n\nYour role:\n- Create structured SEO content briefs for a given topic or keyword.\n- You have access to Google Sheets (\"content_versions\") that contains previous briefs and their versions.\n- Always check the sheet before writing. If a topic already exists:\n  - Reuse its `content_id`\n  - Increment the `version_no` (e.g., from 2 → 3)\n  - Generate a new `version_id` as \"VER-00X\"\n- If the topic is new:\n - If the topic is new, create a new content_id using the pattern \"CNT-<unix_milliseconds>\" (for example: CNT-1700000000000). Use version_no = 1 and version_id = \"VER-001\".\n  - Start from `version_no = 1` and `version_id = VER-001`\n\nAfter reasoning and generating, return structured JSON in this exact format:\n{\n  \"brief\": {\n    \"title\": \"string\",\n    \"meta_description\": \"string\",\n    \"target_keywords\": [\"string\"],\n    \"outline\": [\"string\"],\n    \"word_count\": \"number\",\n    \"tone\": \"string\",\n    \"cta_ideas\": [\"string\"]\n  },\n  \"metadata\": {\n    \"content_id\": \"string\",\n    \"version_no\": \"number\",\n    \"version_id\": \"string\",\n    \"is_new_topic\": \"boolean\"\n  },\n  \"context_used\": [\"list of context data or none\"]\n}\n\nRules:\n- Use the Google Sheets tool to check if the topic exists.\n- Always reason step-by-step before producing output.\n- Use structured JSON only — no explanations or markdown.\n- Be concise, SEO-optimized, and context-aware.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "2ef396a6-a295-4241-a607-826b8128b7d8",
          "name": "AI Agent (Draft Writer)",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -176,
            48
          ],
          "parameters": {
            "text": "=Topic: {{ $json.topic }}\nIntent: {{ $json.intent }}\nUser request: {{ $json.content }}\nContext (from Sheets or memory): {{ $json.context || $memory || 'No context found' }}\n\nUsing the content brief, generate a complete draft article following the outline and tone guidelines.",
            "options": {
              "systemMessage": "=You are \"Draft Writer Agent\", a professional AI content creator inside n8n automation system.\n\nYour goal:\n- Expand an SEO content brief into a complete, well-structured draft.\n- Use the outline, tone, and keyword data from the brief.\n- Write clear, natural, and engaging copy with headings for each outline section.\n- Maintain SEO best practices (keyword placement, clarity, readability).\n- Always produce section-based content — not bullet lists or raw text.\n\nVersioning Rules:\n- Fetch the brief from Google Sheets (\"content_versions\").\n- If the brief already exists, reuse its `content_id` and increment `version_no` (e.g., 2 → 3).\n- Create `version_id` as “VER-00X”.\n- If no brief found, create a new content_id like “CNT-<timestamp>”.\n\nOutput Rules:\nReturn structured JSON only, in this format:\n{\n  \"draft\": {\n    \"title\": \"string\",\n    \"meta_description\": \"string\",\n    \"sections\": [ { \"heading\": \"string\", \"content\": \"string\" } ],\n    \"word_count\": \"number\",\n    \"keywords_used\": [\"string\"],\n    \"tone\": \"string\"\n  },\n  \"metadata\": {\n    \"content_id\": \"string\",\n    \"version_no\": \"number\",\n    \"version_id\": \"string\",\n    \"timestamp\": \"number\"\n  },\n  \"context_used\": [\"list of any brief context or none\"]\n}\n\nRules:\n- Never return markdown or plain text, only structured JSON.\n- Always log metadata and context.\n- Be consistent with the tone and structure defined in the brief.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "d74755da-575e-4e07-8e62-4b6f984fb6c6",
          "name": "AI Agent Optimizer",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -176,
            448
          ],
          "parameters": {
            "text": "=Topic: {{ $json.topic }}\nIntent: {{ $json.intent }}\nContent ID: {{ $json.content }}\nOptimization Goal: {{ $json.parameter.goal || 'Improve SEO, tone, and readability' }}\nFocus Keywords: {{ $json.parameter.focus_keywords ? $json.parameter.focus_keywords.join(', ') : 'N/A' }}\n\nContext (from Sheets or memory): {{ $json.context || $memory || 'No context found' }}\n\nUsing the content retrieved from Sheets, optimize the article to follow the tone and outline guidelines. \nEnsure it aligns with the optimization goal while maintaining factual accuracy and original intent.\nReturn the optimized article in structured JSON format.\n",
            "options": {
              "systemMessage": "=You are \"Optimization Agent\", a senior content optimizer AI inside an n8n automation system built by Vivek Patidar.\n\nYour job:\nImprove the provided draft WITHOUT rewriting it from scratch by using:\n1. The existing draft text from the workflow input\n2. Historical versions from Google Sheets (\"content_versions\")\n3. SERP intelligence from SerpAPI (competitors, headings, snippets, PAA, related searches)\n4. Brief or metadata passed from the previous stage\n\nYou must produce a refined, SEO-optimized, well-structured and factually consistent version of the draft.\n\n--------------------------------\n🔎 HOW TO USE SERP DATA\n--------------------------------\nYou receive SERP data via upstream tools (SerpAPI). Use it to:\n\n- Identify missing topical sections compared to competitors.\n- Enhance keyword coverage and semantic depth.\n- Improve H2/H3 section clarity and completeness.\n- Strengthen meta description using competitor insight.\n- Suggest improvements based on PAA questions (People Also Ask).\n- Add missing angles/topics found across rankings.\n- Improve EEAT signals (expertise, trustworthiness) when relevant.\n- DO NOT output any raw SERP JSON.\n\nSERP data should influence optimization decisions, but never override the original meaning of the draft.\n\n--------------------------------\n📝 OPTIMIZATION RULES\n--------------------------------\n1. **Never rewrite from scratch.** Always keep the core meaning and structure.\n2. **Preserve tone** from the original draft or brief.\n3. **Preserve factual accuracy** — no hallucinations.\n4. **Only improve**, refine, reorganize, expand, clarify, or SEO-enhance.\n5. **Use keywords naturally**, avoid keyword stuffing.\n6. **If brief or previous versions exist**, align with them.\n7. **If SERP data suggests missed content**, incorporate it softly into relevant sections.\n8. **If the draft is messy**, reorganize into sections while preserving original paragraphs as much as possible.\n9. **Never expose intermediate reasoning** or tool data.\n\n--------------------------------\n🧾 VERSIONING LOGIC\n--------------------------------\nUse Google Sheets context to determine versioning:\n\n- If content_id already exists:\n  - Increment version_no (ex: 2 → 3)\n  - Create new version_id as \"VER-00X\"_\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "f52b4453-0f14-46db-a3f7-60a2c91b9db6",
          "name": "Fetch Optimized Draft from Sheets",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -32,
            1072
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=2120745354",
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "c2a108d2-d6fb-4343-83c0-b260d7c50b7a",
          "name": "AI Agent (Publisher)",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -160,
            848
          ],
          "parameters": {
            "text": "=Topic: {{ $json.topic }}\nIntent: {{ $json.intent }}\nContent ID: {{ $json.content_id }}\nPlatform: {{ $json.parameter.platform || 'Internal CMS' }}\n\nContext (from Sheets or memory): {{ $json.context || $memory || 'No context found' }}\n\nPrepare the article for publishing. Ensure metadata, title, tags, and description are optimized. If the platform is WordPress, format the article in valid HTML. Return only structured JSON in the required format.",
            "options": {
              "systemMessage": "=You are \"Publisher Agent\", an AI responsible for preparing and posting optimized articles.\n\nYour tasks:\n1. Take the optimized draft and prepare it for publishing.\n2. Clean and format for web standards (HTML-ready headings, tags, meta info).\n3. Generate metadata, tags, and keywords.\n4. Always return structured JSON only, in this format:\n{\n  \"publish_data\": {\n    \"content_id\": \"string\",\n    \"version_id\": \"string\",\n    \"title\": \"string\",\n    \"meta_description\": \"string\",\n    \"tags\": [\"string\"],\n    \"html_body\": \"string\",\n    \"status\": \"Published\",\n    \"timestamp\": \"number\"\n  }\n}"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "2d24b258-97ba-4b10-bc6c-583a376ce1ff",
          "name": "Prepare Publishing Metadata",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            960
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "d917c6d3-ae35-4140-99c8-ae390866e735",
                  "name": "intent",
                  "type": "string",
                  "value": "=publish"
                },
                {
                  "id": "e697ec89-26ed-4fb3-95a9-4a0cc6eed36d",
                  "name": "topic",
                  "type": "string",
                  "value": "=AI Seo Basics"
                },
                {
                  "id": "f5a88ad2-7f57-4971-88ea-bad9e1c10992",
                  "name": "content_id",
                  "type": "string",
                  "value": "=C001"
                },
                {
                  "id": "06fb1d17-f233-4b22-af27-cd3351c971a0",
                  "name": "parameter",
                  "type": "object",
                  "value": "={{ $json.parameter }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "5a6d72a0-2abb-4214-84df-055e4abd483f",
          "name": "Send Content for Approval",
          "type": "n8n-nodes-base.gmail",
          "position": [
            368,
            1056
          ],
          "webhookId": "644002af-2ad9-4dc1-a9c0-a3ee1ad7eab6",
          "parameters": {
            "message": "={{ $json.output.publish_data.html_body }}",
            "options": {},
            "subject": "={{ $json.output.publish_data.title }}",
            "operation": "sendAndWait"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "610f679e-fa32-4ea3-9115-dad85ea083f5",
          "name": "Check Approval Status",
          "type": "n8n-nodes-base.if",
          "position": [
            720,
            1152
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "3c7c4382-eb2a-4fc8-9239-b0b6e212cd9c",
                  "operator": {
                    "type": "boolean",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.data.approved }}",
                  "rightValue": true
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "c02c3a76-d8b4-4065-b0d8-6b19bf839579",
          "name": "Publish to Recipient",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1056,
            1152
          ],
          "webhookId": "11e12173-4551-48b5-b4e3-30649c53ab1a",
          "parameters": {
            "message": "={{ $('AI Agent (Publisher)').item.json.output.publish_data.html_body }}",
            "options": {},
            "subject": "={{ $('AI Agent (Publisher)').item.json.output.publish_data.title }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "15d2b067-9256-46e1-b39a-98735bb53f99",
          "name": "Send Success Notification to Slack",
          "type": "n8n-nodes-base.slack",
          "position": [
            1056,
            1344
          ],
          "webhookId": "efbcf266-598a-4839-9b33-e1bee96f4be7",
          "parameters": {
            "text": "=Your  {{ $('AI Agent (Publisher)').item.json.output.publish_data.title }} has been Successfully Published.",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C09GNB90TED",
              "cachedResultName": "general-information"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "920ee625-c44b-4e32-a9f2-b092e302a5cf",
          "name": "Fetch Published Version from Sheets",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -96,
            1584
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=2120745354",
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "5ec805cd-960b-4b6c-aeb5-63c88d3592c0",
          "name": "Fetch Performance Metrics",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            32,
            1584
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 1296767916,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=1296767916",
              "cachedResultName": "Performance_metrics"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "9da47d6d-9767-4612-9e0c-55f11673a327",
          "name": "AI Agent (Monitor)",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -176,
            1360
          ],
          "parameters": {
            "text": "==Topic: {{ $json.topic }}\nIntent: {{ $json.intent }}\nContent ID: {{ $json.content_id }}\nPeriod: {{ $json.parameter.metric_period || 'last 7 days' }}\nVersion: {{ $json.parameter.compare_to_version || 'latest' }}\n\nPublished Content Data (from Sheets):\n{{ $json.context || 'No version data found' }}\n\nPerformance Metrics (from Performance_metrics sheet):\n{{ $json.metrics || 'No analytics available' }}\n\nAnalyze how this content performed during the specified period.\nUse both the content_versions and Performance_metrics data to:\n- Compare the latest version with the previous one if data exists.\n- Identify changes in views, clicks, CTR, position, engagement score.\n- Highlight key trends, improvements, or declines.\n- Provide 2–3 actionable recommendations for next optimization.\n\nReturn only structured JSON following the provided schema.\n",
            "options": {
              "systemMessage": "=You are \"Monitor Agent\", an analytical AI inside an n8n workflow.\n\nYou analyze published content performance using Google Sheets data.\nYou access two data sources (tools) that are already connected to you:\n- content_versions → stores published version metadata (titles, timestamps, tone)\n- Performance_metrics → stores analytics (views, clicks, CTR, engagement, position)\n\nYour job:\n1. Read and compare metrics (views, CTR, position, engagement_score) from the connected Performance_metrics sheet.\n2. Match them with the corresponding version in content_versions.\n3. Detect performance trends, summarize findings, and provide actionable recommendations.\n4. Use available sheet data and fallback gracefully if no data is found.\n\nAlways return structured JSON only:\n{\n  \"performance_summary\": {\n    \"content_id\": \"string\",\n    \"version_id\": \"string\",\n    \"views\": \"number\",\n    \"clicks\": \"number\",\n    \"ctr\": \"number\",\n    \"avg_position\": \"number\",\n    \"engagement_score\": \"number\",\n    \"change_vs_previous\": {\n      \"views\": \"number\",\n      \"ctr\": \"number\",\n      \"position\": \"number\"\n    },\n    \"summary\": \"string\",\n    \"recommendations\": [\"string\"]\n  },\n  \"timestamp\": \"number\"\n}\n\nRules:\n- Do not include natural language outside the JSON.\n- If no performance data is found, return zeros but still provide helpful recommendations.\n- When comparing versions, calculate % changes and direction (↑/↓).\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "9ffcc0b5-e85b-472e-be98-22ddd3e5bae4",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2384,
            -576
          ],
          "parameters": {
            "width": 576,
            "height": 496,
            "content": "## 🧩 Content Generation End-to-End Automation\nHow it works\n\nThis workflow turns a simple chat-style user message into a complete content production pipeline. It detects what the user wants—chat, brief, draft, optimization, publishing, or analytics—and routes the request to the correct AI sub-agent. The system reads and writes to Google Sheets to track version history, previous conversations, content briefs, drafts, and optimized outputs. Each result is converted back into a clean, natural chat-style response.\n\nSetup steps\n\nConnect OpenAI and Google Sheets credentials.\n\nAdd your spreadsheet with the required tabs: content_items, content_versions, and conversation_logs.\n\nReview node positions to ensure left-to-right flow.\n\nTest with a simple message like “Create a brief for AI SEO”.\n\nConfirm versioning updates appear correctly in the Sheets."
          },
          "typeVersion": 1
        },
        {
          "id": "f96b5208-f945-487a-b923-02a2fce35f45",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2384,
            -48
          ],
          "parameters": {
            "color": 2,
            "width": 752,
            "height": 592,
            "content": "## Chat Trigger & Memory\nHandles incoming chat messages and maintains short-term context using memory windows. Ensures the workflow understands follow-up questions and ongoing topics."
          },
          "typeVersion": 1
        },
        {
          "id": "aada981b-340d-4679-a1f1-ee072c22757e",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1072,
            -128
          ],
          "parameters": {
            "color": 2,
            "width": 416,
            "height": 672,
            "content": "## Intent Detection & Routing\nThe central agent reads the user’s message, checks sheet context, and decides whether the next step is chat, brief building, drafting, optimization, publishing, or analytics. The Switch node routes the workflow to the correct sub-pipeline."
          },
          "typeVersion": 1
        },
        {
          "id": "bc0275be-9e87-41aa-b112-1f5db1bbe797",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1616,
            -96
          ],
          "parameters": {
            "color": 2,
            "width": 528,
            "height": 672,
            "content": "## Content & Version Lookup\nRetrieves topic history, previous drafts, briefs, and conversation logs. This ensures content versioning works reliably and the AI stays consistent with past work."
          },
          "typeVersion": 1
        },
        {
          "id": "8c0bab32-5594-48a7-a6ad-7aa616086b6b",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -608,
            -880
          ],
          "parameters": {
            "color": 2,
            "width": 880,
            "height": 880,
            "content": "## SEO Brief Generation\nCreates clean, structured SEO content briefs with metadata, keywords, outline, tone, and CTA ideas. Automatically creates or updates content_id and version numbers."
          },
          "typeVersion": 1
        },
        {
          "id": "0a3bc845-3edc-4ef2-ba9e-a45c1cb01a48",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -608,
            32
          ],
          "parameters": {
            "color": 2,
            "width": 864,
            "height": 384,
            "content": "## Draft Writer Pipeline\nExpands the SEO brief into a structured article with sections, headings, and tone consistency. Saves each draft version into the Google Sheet with metadata tracking."
          },
          "typeVersion": 1
        },
        {
          "id": "06f77083-0ed5-41f3-8397-ca7a28fe0ddd",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -624,
            432
          ],
          "parameters": {
            "color": 2,
            "width": 912,
            "height": 1376,
            "content": "## AI Content Optimizer\nImproves existing drafts using brief context, previous versions, and SERP insights. Enhances clarity, SEO strength, and structure without rewriting from scratch."
          },
          "typeVersion": 1
        },
        {
          "id": "4a633772-50d1-49a7-b8d3-3634a138d84f",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            544,
            224
          ],
          "parameters": {
            "color": 2,
            "width": 800,
            "height": 496,
            "content": "## Human-Style Output Builder\nConverts structured agent outputs into clean, natural chat messages. Ensures users always receive friendly summaries rather than JSON."
          },
          "typeVersion": 1
        },
        {
          "id": "ab158ef4-eb79-4ac3-b894-064df4acce09",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            320,
            -848
          ],
          "parameters": {
            "color": 2,
            "width": 208,
            "height": 2416,
            "content": "## Conversation Logging\nStores every interaction — message, intent, response, and session ID — ensuring traceability and future context retrieval."
          },
          "typeVersion": 1
        },
        {
          "id": "5e2800bf-d00c-48b3-8f9d-c496bfb62373",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1392,
            1456
          ],
          "parameters": {
            "color": 3,
            "width": 304,
            "height": 288,
            "content": "## 🔐 Credentials & Security\n\nUse OAuth2 for Google Sheets and API key credentials for OpenAI. Do not hardcode keys or sheet IDs when publishing templates. Replace all sensitive data with placeholders before sharing."
          },
          "typeVersion": 1
        },
        {
          "id": "b3f0eb4d-4102-4126-bfd9-fd332cc0a734",
          "name": "Content Classifier Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -1872,
            384
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "23c8f048-d579-411a-9045-20b4d295c46c",
          "name": "Analytics Summary Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -320,
            272
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "a53cf527-d828-43cd-91ab-b05725a9468b",
          "name": "Format Intent Payload",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            -656
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "8ea18d06-f3cb-4988-9015-d1baec5f74c1",
                  "name": "intent",
                  "type": "string",
                  "value": "={{ $json.intent }}"
                },
                {
                  "id": "f091b1a0-2d42-4ade-b25d-9d562cad239f",
                  "name": "topic",
                  "type": "string",
                  "value": "={{ $json.topic }}"
                },
                {
                  "id": "4ce9bf82-c89e-44e8-aca6-4720fdf6dcf7",
                  "name": "content",
                  "type": "string",
                  "value": "={{ $json.content }}"
                },
                {
                  "id": "cef206d3-24f5-46c4-bab4-bbe246ef655e",
                  "name": "parameter",
                  "type": "string",
                  "value": "={{ $json.parameter }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "556cc1d9-dbc6-4849-8670-4209a5d0660b",
          "name": "Format Intent Payload Brief",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            -240
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "8ea18d06-f3cb-4988-9015-d1baec5f74c1",
                  "name": "intent",
                  "type": "string",
                  "value": "={{ $json.intent }}"
                },
                {
                  "id": "f091b1a0-2d42-4ade-b25d-9d562cad239f",
                  "name": "topic",
                  "type": "string",
                  "value": "={{ $json.topic }}"
                },
                {
                  "id": "4ce9bf82-c89e-44e8-aca6-4720fdf6dcf7",
                  "name": "content",
                  "type": "string",
                  "value": "={{ $json.content }}"
                },
                {
                  "id": "cef206d3-24f5-46c4-bab4-bbe246ef655e",
                  "name": "parameter",
                  "type": "string",
                  "value": "={{ $json.parameter }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "41e5b02c-c378-4fd7-bb23-b45e624c9f6b",
          "name": "Format Intent Payload Draft",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            160
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "name": "intent",
                  "type": "string",
                  "value": "={{ $json.intent }}"
                },
                {
                  "name": "topic",
                  "type": "string",
                  "value": "={{ $json.topic }}"
                },
                {
                  "name": "content",
                  "type": "string",
                  "value": "={{ $json.content }}"
                },
                {
                  "name": "brief_id",
                  "type": "string",
                  "value": "={{ $json.brief_id }}"
                },
                {
                  "name": "parameter",
                  "type": "object",
                  "value": "={{ $json.parameter }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "8609ad6f-8c18-4579-9232-52b0f73cbd49",
          "name": "Format Payload Data Optimizer",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            560
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "06b7c645-7355-413c-8dfe-29b3109eaffb",
                  "name": "intent",
                  "type": "string",
                  "value": "=optimize"
                },
                {
                  "id": "ac8d353d-63bb-4e4a-bc9d-03db4a75059c",
                  "name": "topic",
                  "type": "string",
                  "value": "=AI SEO basics"
                },
                {
                  "id": "495c9583-b542-47c5-a9ed-d03df149dfc9",
                  "name": "content",
                  "type": "string",
                  "value": "=C001"
                },
                {
                  "id": "69e216f5-01f7-417f-9212-9b3fe2d42489",
                  "name": "parameter",
                  "type": "object",
                  "value": "={}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "c021418c-1bfb-42ad-a46d-be73f71669e2",
          "name": "Prepare MetaData Monitor",
          "type": "n8n-nodes-base.set",
          "position": [
            -576,
            1360
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "name": "intent",
                  "type": "string",
                  "value": "={{ $json.intent }}"
                },
                {
                  "name": "topic",
                  "type": "string",
                  "value": "={{ $json.topic }}"
                },
                {
                  "name": "content_id",
                  "type": "string",
                  "value": "={{ $json.content }}"
                },
                {
                  "name": "parameter",
                  "type": "object",
                  "value": "={{ $json.parameter }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "ec43778c-d3ea-4ce9-95ae-053df12b55d3",
          "name": "OpenAI Chat Model Monitor",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -352,
            1584
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "7dbd40fb-58e7-4dfa-9797-0e54e8ac94c7",
          "name": "Short-Term Memory Monitor",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -224,
            1584
          ],
          "parameters": {
            "sessionKey": "monitor-session",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "ac099223-879f-4672-8e8d-74fcea2a2edc",
          "name": "Output Parser (JSON Enforcement) Monitor",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            160,
            1584
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"performance_summary\": {\n    \"content_id\": \"CNT-1701255487715\",\n    \"version_id\": \"VER-004\",\n    \"views\": 1520,\n    \"clicks\": 186,\n    \"ctr\": 12.2,\n    \"avg_position\": 4.3,\n    \"engagement_score\": 8.9,\n    \"change_vs_previous\": { \"views\": 15, \"ctr\": 2.3, \"position\": -0.5 },\n    \"summary\": \"CTR and engagement improved vs previous version.\",\n    \"recommendations\": [\"Add FAQ section\", \"Update meta description\"]\n  },\n  \"timestamp\": 1701270000000\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "1708af84-1b40-4819-869e-bfc6c3b91600",
          "name": "OpenAI Chat Model Publisher",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -288,
            1072
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "6688f94f-7ba9-4c4b-b694-bc48846b9352",
          "name": "Short-Term Memory Publisher",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -160,
            1072
          ],
          "parameters": {
            "sessionKey": "publish-session",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "f94ae031-ad52-4928-82bb-66c3dea9db79",
          "name": "Output Parser (JSON Enforcement) Publisher",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            96,
            1072
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"publish_data\": {\n    \"content_id\": \"CNT-1701255487715\",\n    \"version_id\": \"VER-004\",\n    \"title\": \"AI SEO Basics: How AI Is Transforming Content Ranking\",\n    \"meta_description\": \"Learn how AI SEO tools are transforming keyword optimization and content performance.\",\n    \"tags\": [\"AI\", \"SEO\", \"Content Marketing\"],\n    \"html_body\": \"<h1>AI SEO Basics</h1><p>AI is reshaping SEO...</p>\",\n    \"status\": \"Published\",\n    \"timestamp\": 1701265000000\n  }\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "7a4e8e9f-917a-40da-a1f7-908e0397ef4f",
          "name": "OpenAI Chat Model Optmizer",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -288,
            672
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "f818f59b-2488-41ec-918a-418265fd90fd",
          "name": "Short-Term Memory Optmizer",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -160,
            672
          ],
          "parameters": {
            "sessionKey": "optimize-writer-session",
            "sessionIdType": "customKey",
            "contextWindowLength": 7
          },
          "typeVersion": 1.3
        },
        {
          "id": "e78aa4ac-58d6-438a-ad6f-837f766e6c9e",
          "name": "Get Context from Google Sheets Optmizer",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -32,
            672
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "a19121b2-09df-4357-9aa5-b2fe0cd4de16",
          "name": "Output Parser (JSON Enforcement) Optmizer",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            96,
            672
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"optimized_draft\": {\n    \"title\": \"AI SEO Basics: How Artificial Intelligence Transforms Search Optimization\",\n    \"meta_description\": \"Discover how AI improves SEO strategies by automating keyword insights, readability, and tone optimization.\",\n    \"sections\": [\n      {\n        \"heading\": \"Introduction\",\n        \"content\": \"AI is reshaping SEO by automating keyword research and enhancing content tone to match user intent.\"\n      },\n      {\n        \"heading\": \"Benefits of AI in SEO\",\n        \"content\": \"AI tools can analyze trends, optimize tone, and generate SEO-friendly drafts faster than manual editing.\"\n      }\n    ],\n    \"word_count\": 1150,\n    \"keywords_used\": [\"AI SEO\", \"content optimization\", \"search ranking\"],\n    \"improvements\": [\"Enhanced meta description\", \"Improved readability\", \"Better keyword placement\"]\n  },\n  \"metadata\": {\n    \"content_id\": \"CNT-1701255487715\",\n    \"version_no\": 4,\n    \"version_id\": \"VER-004\",\n    \"timestamp\": 1701259999999\n  }\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "192829dc-6123-48d8-8d02-5d27221d797d",
          "name": "Short-Term Memory Draft",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -160,
            272
          ],
          "parameters": {
            "sessionKey": "draft-writer-session",
            "sessionIdType": "customKey",
            "contextWindowLength": 7
          },
          "typeVersion": 1.3
        },
        {
          "id": "59c7f529-b004-451f-a131-24ce5e1ddcb8",
          "name": "Get Context from Google Sheets For Draft",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -32,
            272
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "91177de5-c27a-441f-a330-740f7ff6171f",
          "name": "Output Parser (JSON Enforcement) Draft",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            96,
            272
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"draft\": {\n    \"title\": \"The Future of AI Writing Tools in 2025\",\n    \"meta_description\": \"Explore how AI writing tools are revolutionizing content creation in 2025 with efficiency, creativity, and SEO impact.\",\n    \"sections\": [\n      {\n        \"heading\": \"Introduction\",\n        \"content\": \"AI writing tools are transforming how content is produced, enabling faster creation while maintaining quality and SEO standards.\"\n      },\n      {\n        \"heading\": \"Top Tools Leading the Market\",\n        \"content\": \"From ChatGPT to Jasper, several AI writing assistants dominate in efficiency, tone consistency, and language fluency.\"\n      },\n      {\n        \"heading\": \"Challenges and Opportunities\",\n        \"content\": \"AI writing still requires human oversight for emotional accuracy and contextual depth, but future models promise even better synergy.\"\n      }\n    ],\n    \"word_count\": 1250,\n    \"keywords_used\": [\"AI writing tools\", \"content automation\", \"AI writing 2025\"],\n    \"tone\": \"Professional, informative\"\n  },\n  \"metadata\": {\n    \"content_id\": \"CNT-17+1234567890\",\n    \"version_no\": 3,\n    \"version_id\": \"VER-003\",\n    \"timestamp\": 17+1234567890\n  },\n  \"context_used\": [\"Brief from content_versions\"]\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "93c9ddfc-953d-457a-90d6-91a6595d8a8b",
          "name": "OpenAI Chat Model Brief",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -288,
            -128
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "fed1085c-6e6d-4076-9d89-4248bf3842f8",
          "name": "Short-Term Memory Brief",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -160,
            -128
          ],
          "parameters": {
            "sessionKey": "brief-writer-session",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "a0565c7d-ab6e-4b27-ab58-401c626dc2df",
          "name": "Get Context from Google Sheets Brief",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -32,
            -128
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "ea87be25-a472-487c-993b-3722cd69505d",
          "name": "Output Parser (JSON Enforcement) Brief",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            96,
            -128
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"brief\": {\n    \"title\": \"Comprehensive Overview of AI Writing Tools\",\n    \"meta_description\": \"Learn about AI tools that transform writing workflows.\",\n    \"target_keywords\": [\"AI writing tools\", \"AI writing software\"],\n    \"outline\": [\"Introduction\", \"Top Tools\", \"How to Choose\"],\n    \"word_count\": 1300,\n    \"tone\": \"Informative\",\n    \"cta_ideas\": [\"Try our AI writing assistant today\"]\n  },\n  \"metadata\": {\n    \"content_id\": \"CNT-4823\",\n    \"version_no\": 1,\n    \"version_id\": \"VER-001\",\n    \"is_new_topic\": true\n  },\n  \"context_used\": [\"none\"]\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "092b6639-b54e-4db2-84e8-ca26bff8a447",
          "name": "OpenAI Chat Model Chat Composer",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -288,
            -528
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-5",
              "cachedResultName": "gpt-5"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "db9c4229-22d9-4b90-ba90-9d4989db4b9a",
          "name": "Short-Term Memory Chat Composer",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -160,
            -528
          ],
          "parameters": {
            "sessionKey": "chat-rag-session",
            "sessionIdType": "customKey",
            "contextWindowLength": 7
          },
          "typeVersion": 1.3
        },
        {
          "id": "159703b9-dd45-4f3d-9b8e-76c6303b0f0e",
          "name": "Get row(s) in sheet in Google Sheets For Reference",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -32,
            -528
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 686901835,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=686901835",
              "cachedResultName": "conversation_logs"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "47bdf865-8e62-4f68-9803-c6268975b424",
          "name": "Output Parser (JSON Enforcement) Chat Composer",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            96,
            -528
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"reply\": \"string\",\n  \"context_used\": [\"string\"]\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "1670977b-ad4f-48f0-853d-ccb87af569c8",
          "name": "Logging Chat Composer",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            -656
          ],
          "parameters": {
            "columns": {
              "value": {
                "input": "={{ $('Format Intent Payload').item.json.content }}",
                "intent": "={{ $('Format Intent Payload').item.json.intent }}",
                "user_id": "system",
                "response": "={{ $json.output.reply }}",
                "timestamp": "={{ $now }}",
                "session_id": "chat-rag-session"
              },
              "schema": [
                {
                  "id": "session_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "session_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "user_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "user_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "input",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "input",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "intent",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "intent",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "response",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "response",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "timestamp"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 686901835,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=686901835",
              "cachedResultName": "conversation_logs"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "5ddef703-e8a3-49ac-a0d6-5b4ef91ce640",
          "name": "Logging Brief ",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            -256
          ],
          "parameters": {
            "columns": {
              "value": {
                "tone": "={{ $json.output.brief.tone }}",
                "topic": "={{ $json.output.metadata.is_new_topic }}",
                "outline": "={{ $json.output.brief.outline }}",
                "keywords": "={{ $json.output.brief.target_keywords }}",
                "cta_ideas": "={{ $json.output.brief.cta_ideas }}",
                "meta_desc": "={{ $json.output.brief.meta_description }}",
                "timestamp": "={{Date.now()}}",
                "content_id": "={{ $json.output.metadata.content_id }}",
                "meta_title": "={{ $json.output.brief.title }}",
                "version_id": "={{ $json.output.metadata.version_id }}",
                "version_no": "={{ $json.output.metadata.version_no }}",
                "word_count": "={{ $json.output.brief.word_count }}",
                "context_used": "={{ $json.output.context_used }}"
              },
              "schema": [
                {
                  "id": "content_id",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "content_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_no",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "version_no",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_id",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "version_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "topic",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "topic",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_title",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "meta_title",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_desc",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "meta_desc",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "outline",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "outline",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "keywords",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "keywords",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "tone",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "tone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "word_count",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "word_count",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cta_ideas",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "cta_ideas",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "context_used",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "context_used",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "content_id"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "59d3e080-22b7-438e-91c4-d12cd1cda03e",
          "name": "Logging Draft",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            160
          ],
          "parameters": {
            "columns": {
              "value": {
                "tone": "={{ $json.output.draft.tone }}",
                "section": "={{ $json.output.draft.sections }}",
                "keywords": "={{ $json.output.draft.keywords_used }}",
                "meta_desc": "={{ $json.output.draft.meta_description }}",
                "timestamp": "={{ $json.output.metadata.timestamp }}",
                "content_id": "={{ $json.output.metadata.content_id }}",
                "meta_title": "={{ $json.output.draft.title }}",
                "version_id": "={{ $json.output.metadata.version_id }}",
                "version_no": "={{ $json.output.metadata.version_no }}",
                "word_count": "={{ $json.output.draft.word_count }}",
                "context_used": "={{ $json.output.context_used }}"
              },
              "schema": [
                {
                  "id": "content_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "content_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_no",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_no",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "topic",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "topic",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_title",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_title",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_desc",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_desc",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "outline",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "outline",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "keywords",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "keywords",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "tone",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "tone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "word_count",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "word_count",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cta_ideas",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "cta_ideas",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "context_used",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "context_used",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "section",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "section",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "content_id"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "de0ce943-e727-4910-ac3b-c3fc5b24699f",
          "name": "Logging Optimizer",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            560
          ],
          "parameters": {
            "columns": {
              "value": {
                "tone": "={{ $json.output.optimized_draft.improvements }}",
                "topic": "={{ $json.output.optimized_draft.title }}",
                "section": "={{ $json.output.optimized_draft.sections }}",
                "keywords": "={{ $json.output.optimized_draft.keywords_used }}",
                "meta_desc": "={{ $json.output.optimized_draft.meta_description }}",
                "timestamp": "={{ $json.output.metadata.timestamp }}",
                "content_id": "={{ $json.output.metadata.content_id }}",
                "meta_title": "={{ $json.output.optimized_draft.title }}",
                "version_id": "={{ $json.output.metadata.version_id }}",
                "version_no": "={{ $json.output.metadata.version_no }}",
                "word_count": "={{ $json.output.optimized_draft.word_count }}",
                "context_used": "={{ $json.output.metadata.content_id }}"
              },
              "schema": [
                {
                  "id": "content_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "content_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_no",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_no",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "topic",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "topic",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_title",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_title",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_desc",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_desc",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "outline",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "outline",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "keywords",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "keywords",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "tone",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "tone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "word_count",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "word_count",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cta_ideas",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "cta_ideas",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "context_used",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "context_used",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "section",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "section",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "content_id"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "e270c5d9-3e06-454d-8ea7-b21c4a1d9dd0",
          "name": "Logging Published Data",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            848
          ],
          "parameters": {
            "columns": {
              "value": {
                "html": "={{ $json.output.publish_data.html_body }}",
                "status": "={{ $json.output.publish_data.status }}",
                "keywords": "={{ $json.output.publish_data.tags }}",
                "meta_desc": "={{ $json.output.publish_data.meta_description }}",
                "timestamp": "={{ $json.output.publish_data.timestamp }}",
                "content_id": "={{ $json.output.publish_data.content_id }}",
                "meta_title": "={{ $json.output.publish_data.title }}",
                "version_id": "={{ $json.output.publish_data.version_id }}"
              },
              "schema": [
                {
                  "id": "content_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "content_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_no",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "version_no",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "topic",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "topic",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_title",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_title",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "meta_desc",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "meta_desc",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "outline",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "outline",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "keywords",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "keywords",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "tone",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "tone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "word_count",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "word_count",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cta_ideas",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "cta_ideas",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "context_used",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "context_used",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "section",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "section",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "html",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "html",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "status",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "content_id"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=2120745354",
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "7810ed5f-9245-44af-a709-7e409367b97c",
          "name": "Logging Monitor Data",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            368,
            1360
          ],
          "parameters": {
            "columns": {
              "value": {
                "ctr": "={{ $json.output.performance_summary.ctr }}",
                "views": "={{ $json.output.performance_summary.views }}",
                "clicks": "={{ $json.output.performance_summary.clicks }}",
                "timestamp": "={{ $json.output.timestamp }}",
                "content_id": "={{ $json.output.performance_summary.content_id }}",
                "version_id": "={{ $json.output.performance_summary.version_id }}",
                "avg_position": "={{ $json.output.performance_summary.avg_position }}",
                "engagement_score": "={{ $json.output.performance_summary.engagement_score }}"
              },
              "schema": [
                {
                  "id": "content_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "content_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "version_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "version_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "views",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "views",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "clicks",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "clicks",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "ctr",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "ctr",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "avg_position",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "avg_position",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "engagement_score",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "engagement_score",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 1296767916,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=1296767916",
              "cachedResultName": "Performance_metrics"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "8df3d0f4-9d33-49bc-9264-7bc994ed6f65",
          "name": "OpenAI Chat Model Human Chat",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            592,
            576
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "55c41257-539b-4d4c-aef1-3f6e9d3beae6",
          "name": "Simple Memory Chat",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            720,
            576
          ],
          "parameters": {
            "contextWindowLength": 7
          },
          "typeVersion": 1.3
        },
        {
          "id": "bbf0edc0-cf6e-4f89-a5aa-b157f2502413",
          "name": "Structured Output Parser Chat",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            848,
            576
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"reply\": \"📊 The *AI SEO basics* article got 1.4k views with a 12.4% CTR this week — nice improvement from the previous version! 🚀\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "f4d45d63-5fbf-4581-926a-1d0ea197da46",
          "name": "Get Reference from Content Items",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -1616,
            384
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=0",
              "cachedResultName": "content_items"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "80cae0fa-b8c4-4c64-afed-295befa27143",
          "name": "Get Data from Content Version",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -1488,
            384
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 2120745354,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=2120745354",
              "cachedResultName": "content_versions"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "7cfbdcca-589d-4e57-9308-d5416f4c5f7b",
          "name": "Get Data from Conversion Logs",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -1360,
            384
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 686901835,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit#gid=686901835",
              "cachedResultName": "conversation_logs"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fsnnXsU1n-iX-MEpLuw3XC6wHD-ek6OlkQe31ousk84/edit?usp=drivesdk",
              "cachedResultName": "SEO Content Automation"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "callerPolicy": "workflowsFromSameOwner",
        "executionOrder": "v1",
        "saveExecutionProgress": true
      },
      "versionId": "21d34cd7-7545-4b9d-9cea-51428591da0e",
      "connections": {
        "AI Agent Chat": {
          "main": [
            [
              {
                "node": "Respond to Webhook",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Intent Router": {
          "main": [
            [
              {
                "node": "Format Intent Payload",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Format Intent Payload Brief",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Format Intent Payload Draft",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Format Payload Data Optimizer",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Prepare Publishing Metadata",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Prepare MetaData Monitor",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Logging Draft": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Simple Memory": {
          "ai_memory": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Logging Brief ": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Logging Optimizer": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent (Monitor)": {
          "main": [
            [
              {
                "node": "Logging Monitor Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent Optimizer": {
          "main": [
            [
              {
                "node": "Logging Optimizer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Respond to Webhook": {
          "main": [
            []
          ]
        },
        "Simple Memory Chat": {
          "ai_memory": [
            [
              {
                "node": "AI Agent Chat",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent (Publisher)": {
          "main": [
            [
              {
                "node": "Logging Published Data",
                "type": "main",
                "index": 0
              },
              {
                "node": "Send Content for Approval",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Logging Monitor Data": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Check Approval Status": {
          "main": [
            [
              {
                "node": "Publish to Recipient",
                "type": "main",
                "index": 0
              },
              {
                "node": "Send Success Notification to Slack",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Intent Payload": {
          "main": [
            [
              {
                "node": "AI Agent (Chat Composer)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Logging Chat Composer": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent Orchestration": {
          "main": [
            [
              {
                "node": "format data for subworkflows",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Logging Published Data": {
          "main": [
            [
              {
                "node": "AI Agent Chat",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent (Draft Writer)": {
          "main": [
            [
              {
                "node": "Logging Draft",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Analytics Summary Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent (Draft Writer)",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Brief": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent (Brief Writer)1",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Brief": {
          "ai_memory": [
            [
              {
                "node": "AI Agent (Brief Writer)1",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Draft": {
          "ai_memory": [
            [
              {
                "node": "AI Agent (Draft Writer)",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent (Brief Writer)1": {
          "main": [
            [
              {
                "node": "Logging Brief ",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent (Chat Composer)": {
          "main": [
            [
              {
                "node": "Logging Chat Composer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Content Classifier Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Prepare MetaData Monitor": {
          "main": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Performance Metrics": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Monitor": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Send Content for Approval": {
          "main": [
            [
              {
                "node": "Check Approval Status",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Monitor": {
          "ai_memory": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser1": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Optmizer": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent Optimizer",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Optmizer": {
          "ai_memory": [
            [
              {
                "node": "AI Agent Optimizer",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "When chat message received": {
          "main": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Intent Payload Brief": {
          "main": [
            [
              {
                "node": "AI Agent (Brief Writer)1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Intent Payload Draft": {
          "main": [
            [
              {
                "node": "AI Agent (Draft Writer)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Publisher": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent (Publisher)",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Prepare Publishing Metadata": {
          "main": [
            [
              {
                "node": "AI Agent (Publisher)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Publisher": {
          "ai_memory": [
            [
              {
                "node": "AI Agent (Publisher)",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Human Chat": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent Chat",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "format data for subworkflows": {
          "main": [
            [
              {
                "node": "Intent Router",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Payload Data Optimizer": {
          "main": [
            [
              {
                "node": "AI Agent Optimizer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Data from Content Version": {
          "ai_tool": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Data from Conversion Logs": {
          "ai_tool": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser Chat": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent Chat",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model Chat Composer": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent (Chat Composer)",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Short-Term Memory Chat Composer": {
          "ai_memory": [
            [
              {
                "node": "AI Agent (Chat Composer)",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Get Reference from Content Items": {
          "ai_tool": [
            [
              {
                "node": "AI Agent Orchestration",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Optimized Draft from Sheets": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Publisher)",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Published Version from Sheets": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Context from Google Sheets Brief": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Brief Writer)1",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Brief": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent (Brief Writer)1",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Draft": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent (Draft Writer)",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Get Context from Google Sheets Optmizer": {
          "ai_tool": [
            [
              {
                "node": "AI Agent Optimizer",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Context from Google Sheets For Draft": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Draft Writer)",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Monitor": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent (Monitor)",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Optmizer": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent Optimizer",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Publisher": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent (Publisher)",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser (JSON Enforcement) Chat Composer": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent (Chat Composer)",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Get row(s) in sheet in Google Sheets For Reference": {
          "ai_tool": [
            [
              {
                "node": "AI Agent (Chat Composer)",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 72,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.set": {
          "count": 7
        },
        "n8n-nodes-base.gmail": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 10
        },
        "n8n-nodes-base.googleSheets": {
          "count": 6
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 8
        },
        "n8n-nodes-base.googleSheetsTool": {
          "count": 10
        },
        "n8n-nodes-base.respondToWebhook": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.chatTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 8
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 8
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 8
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 535,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.respondToWebhook",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Utility"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Respond to Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Respond to Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 7,
            "name": "Utility"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1247,
        "icon": "fa:comments",
        "name": "@n8n/n8n-nodes-langchain.chatTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Langchain"
            ]
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When chat message received"
        },
        "iconData": {
          "icon": "comments",
          "type": "icon"
        },
        "displayName": "Chat Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 31,
        "name": "Content Creation"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}