{
  "workflow": {
    "id": 11075,
    "name": "Cluster webpage topics from Google Sheets to Google Sheets for AI discovery",
    "views": 141,
    "recentViews": 1,
    "totalViews": 141,
    "createdAt": "2025-11-21T06:31:06.266Z",
    "description": "## 📊 Description\nStreamline AI-focused SEO research by automatically analyzing URLs stored in Google Sheets, extracting semantic signals from each webpage, and generating high-quality topic clusters for AI discovery. 🤖🔍 This automation fetches URLs weekly, scrapes headings (H1–H6), extracts entities, keywords, topics, and summaries using GPT-4o-mini, and classifies each page into clusters and subclusters optimized for LLM search visibility. It also generates internal linking suggestions for better topical authority and writes all results back into Google Sheets. Perfect for content strategists, SEO teams, and AI-search optimization workflows. 📈🧩\n\n## 🔁 What This Template Does\n1️⃣ Triggers weekly to process URLs stored in Google Sheets. 📅\n 2️⃣ Fetches all URL records from the configured sheet. 📥\n 3️⃣ Processes URLs in batches to avoid API overload. 🔁\n 4️⃣ Extracts webpage HTML and pulls semantic headings (H1–H6). 📰\n 5️⃣ Sends headings + URL context to GPT-4o-mini for structured extraction of:\n — title\n — entities\n — keywords\n — topics\n — summary\n 6️⃣ Generates high-level cluster + subcluster labels for each page. 🧠\n 7️⃣ Recommends 3–5 internal linking URLs to strengthen topical authority. 🔗\n 8️⃣ Updates Google Sheets with all extracted fields + status flags. 📊\n 9️⃣ Repeats the process until all URLs are analyzed. 🔄\n\n## ⭐ Key Benefits\n✅ Automates topical clustering for AI search optimization\n ✅ Extracts entities, keywords, and topics with high semantic accuracy\n ✅ Strengthens internal linking strategies using AI suggestions\n ✅ Eliminates manual scraping and analysis work\n ✅ Enables scalable content audits for large URL datasets\n ✅ Enhances visibility in AI-driven search systems and answer engines\n\n## 🧩 Features\n- Google Sheets integration for input + output\n- HTML parsing for H1–H6 extraction\n- GPT-4o-mini structured JSON extraction\n- Topic clustering engine (cluster & subcluster classification)\n- Internal linking recommendation generator\n- Batch processing for large URL datasets\n- Status-based updating in Google Sheets\n\n## 🔐 Requirements\n- Google Sheets OAuth2 credentials\n- OpenAI API key (GPT-4o-mini)\n- Publicly accessible URLs (or authenticated HTML if applicable)\n- n8n with LangChain nodes enabled\n\n## 🎯 Target Audience\n- SEO teams performing semantic clustering at scale\n- Content strategists creating AI-ready topic maps\n- Agencies optimizing large client URL collections\n- AI-search consultants building structured content libraries\n- Technical marketers needing automated content analysis\n",
    "workflow": {
      "id": "fGgSgXzCe04YeoIk",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Cluster webpage topics from Google Sheets to Google Sheets for AI discovery",
      "tags": [],
      "nodes": [
        {
          "id": "c11af817-4a74-4954-aa63-67298decbe04",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2560,
            -608
          ],
          "parameters": {
            "width": 436,
            "height": 464,
            "content": "## 🧠 Auto-Cluster Topics for AI Discovery\n\n### How it works\nThis workflow scrapes webpage content from a Google Sheet, uses AI to extract entities and keywords, assigns topical clusters and subclusters, then suggests internal linking opportunities. It's built to strengthen topical authority for LLM-based search engines like ChatGPT, Perplexity, and Gemini.\n\n### Setup steps\n1. Connect your Google Sheets OAuth2 credential\n2. Connect your OpenAI API credential (uses GPT-4o-mini)\n3. Add a Google Sheet with a column named **URL**\n4. Replace the document ID and sheet name in \"Fetch URL List\" and \"Update Sheet Row\"\n5. Run manually or let it trigger weekly via the schedule"
          },
          "typeVersion": 1
        },
        {
          "id": "df98df32-2467-4a04-b91c-39d1f107438d",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2560,
            -80
          ],
          "parameters": {
            "color": 2,
            "width": 486,
            "height": 338,
            "content": "## 📥 Input & Batch Processing\nFetches URLs from Google Sheets and splits them into batches for sequential processing to avoid rate limits."
          },
          "typeVersion": 1
        },
        {
          "id": "a54710ac-d5b3-42da-9011-a38e1ad010c6",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1936,
            -160
          ],
          "parameters": {
            "color": 2,
            "width": 522,
            "height": 240,
            "content": "## 🌐 HTML Scraping & Extraction\nFetches the raw HTML and extracts all heading tags (H1–H6) to analyze page structure."
          },
          "typeVersion": 1
        },
        {
          "id": "406b7b71-496c-45d9-971f-090099ec6b2b",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1376,
            -208
          ],
          "parameters": {
            "color": 2,
            "width": 610,
            "height": 530,
            "content": "## 🤖 AI-Powered Entity & Keyword Extraction\nUses GPT-4o-mini to analyze headings and extract entities, keywords, topics, and a one-paragraph summary for each page."
          },
          "typeVersion": 1
        },
        {
          "id": "4dccbe78-cf31-4ab6-8f0a-825d4323b8b0",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -720,
            -208
          ],
          "parameters": {
            "color": 2,
            "width": 438,
            "height": 536,
            "content": "## 📂 Cluster & Subcluster Assignment\nGroups pages into high-level clusters and subclusters based on semantic similarity to build topical authority."
          },
          "typeVersion": 1
        },
        {
          "id": "3b120f52-5a9a-42c4-85ce-05347943e877",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -224,
            -208
          ],
          "parameters": {
            "color": 2,
            "width": 646,
            "height": 512,
            "content": "## 🔗 Internal Linking Suggestions\nRecommends 3–5 related URLs from your dataset to strengthen cross-linking and boost AI discoverability."
          },
          "typeVersion": 1
        },
        {
          "id": "e4eba05e-5db6-42f6-9293-99460d8b651c",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            448,
            -208
          ],
          "parameters": {
            "color": 2,
            "width": 498,
            "height": 408,
            "content": "## 💾 Update Google Sheets\nWrites all extracted data, clusters, and link suggestions back to the sheet for easy review and action."
          },
          "typeVersion": 1
        },
        {
          "id": "54422aac-1b30-42e6-82d2-19b4d19b7bc1",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            560,
            320
          ],
          "parameters": {
            "color": 3,
            "width": 320,
            "height": 156,
            "content": "## 🔐 Credentials & Security\nUse OAuth2 for Google Sheets and API keys for OpenAI. Replace sample document IDs and workspace references before deploying."
          },
          "typeVersion": 1
        },
        {
          "id": "b4083bc4-48ff-4ed9-b3a1-30ede6841458",
          "name": "Fetch URL List from Google Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            -2240,
            48
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 393476893,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM/edit#gid=393476893",
              "cachedResultName": "URL Data"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM/edit?usp=drivesdk",
              "cachedResultName": "sample_leads_50"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4
        },
        {
          "id": "1041c270-8eed-4d94-8328-7179c3dcdbc9",
          "name": "Split URLs In Batches",
          "type": "n8n-nodes-base.splitInBatches",
          "position": [
            -2016,
            48
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 3
        },
        {
          "id": "e7d5d25d-c51f-4ec3-926b-3d073cf30fb9",
          "name": "Fetch HTML from URL",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -1792,
            -80
          ],
          "parameters": {
            "url": "={{$json[\"URL\"]}}",
            "options": {}
          },
          "typeVersion": 4.2
        },
        {
          "id": "97387a78-0418-48d3-9f49-0eee88e26c2e",
          "name": "Extract Headings (H1-H6)",
          "type": "n8n-nodes-base.html",
          "position": [
            -1568,
            -80
          ],
          "parameters": {
            "options": {},
            "operation": "extractHtmlContent",
            "extractionValues": {
              "values": [
                {
                  "key": "h1",
                  "cssSelector": "h1"
                },
                {
                  "key": "h2",
                  "cssSelector": "h2"
                },
                {
                  "key": "h3",
                  "cssSelector": "h3"
                },
                {
                  "key": "h4",
                  "cssSelector": "h4"
                },
                {
                  "key": "h5",
                  "cssSelector": "h5"
                },
                {
                  "key": "h6",
                  "cssSelector": "h6"
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "f9b221e7-5d58-49bf-ab37-5bbbd8e5740f",
          "name": "Prepare Sheet Update",
          "type": "n8n-nodes-base.set",
          "position": [
            512,
            -80
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "a1b2c3d4",
                  "name": "title",
                  "type": "string",
                  "value": "={{ $('Format Extracted Data').item.json.title }}"
                },
                {
                  "id": "b2c3d4e5",
                  "name": "entities",
                  "type": "string",
                  "value": "={{ $('Format Extracted Data').item.json.entities }}"
                },
                {
                  "id": "c3d4e5f6",
                  "name": "keywords",
                  "type": "string",
                  "value": "={{ $('Format Extracted Data').item.json.keywords }}"
                },
                {
                  "id": "d4e5f6g7",
                  "name": "summary",
                  "type": "string",
                  "value": "={{ $('Format Extracted Data').item.json.summary }}"
                },
                {
                  "id": "e5f6g7h8",
                  "name": "cluster",
                  "type": "string",
                  "value": "={{ $('Format Cluster Data').item.json.cluster }}"
                },
                {
                  "id": "f6g7h8i9",
                  "name": "subcluster",
                  "type": "string",
                  "value": "={{ $('Format Cluster Data').item.json.subcluster }}"
                },
                {
                  "id": "g7h8i9j0",
                  "name": "internal_link_suggestions",
                  "type": "string",
                  "value": "={{ $json.output.suggestions }}"
                },
                {
                  "id": "h8i9j0k1",
                  "name": "status",
                  "type": "string",
                  "value": "processed"
                },
                {
                  "id": "50201a25-4573-4940-82f5-2e8144a398f6",
                  "name": "URL",
                  "type": "string",
                  "value": "={{ $('Split URLs In Batches').item.json.URL }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "5838cef3-4266-4ff5-a81b-19464a7fe3fe",
          "name": "Update Sheet Row",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            736,
            32
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "URL",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "title",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "title",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "h1",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "h1",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "h2_list",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "h2_list",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "h3_list",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "h3_list",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "entities",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "entities",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "keywords",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "keywords",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "summary",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cluster",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "cluster",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "subcluster",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "subcluster",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "internal_link_suggestions",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "internal_link_suggestions",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "status",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [
                "URL"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 393476893,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM/edit#gid=393476893",
              "cachedResultName": "URL Data"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17rcNd_ZpUQLm0uWEVbD-NY6GyFUkrD4BglvawlyBygM/edit?usp=drivesdk",
              "cachedResultName": "sample_leads_50"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4
        },
        {
          "id": "aeac4ab0-591b-4028-a8d0-80a45a303d04",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -1344,
            144
          ],
          "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": "c95cbb62-6c94-43ec-9cc3-2295f7eca6a2",
          "name": "Memory Buffer",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -1216,
            144
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "e0c97008-c85e-487b-afd2-86973f59e57f",
          "name": "Structured JSON Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -1088,
            144
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"title\": \"string\",\n  \"entities\": [\"entity1\", \"entity2\"],\n  \"keywords\": [\"keyword1\", \"keyword2\"],\n  \"topics\": [\"topic1\", \"topic2\"],\n  \"summary\": \"one paragraph summary\"\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "419cefdf-c459-4032-95b7-dd5c6e8477b7",
          "name": "AI Agent - Extract Entities & Keywords",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1280,
            -80
          ],
          "parameters": {
            "text": "=Analyze this webpage:\n\nURL: {{$json[\"URL\"]}}\nH1: {{$json[\"h1\"]}}\nH2: {{$json[\"h2_list\"]}}\nH3: {{$json[\"h3_list\"]}}\n\nExtract:\n- title\n- entities\n- keywords\n- topics\n- summary\n\nReturn STRICT JSON only.\n",
            "options": {
              "systemMessage": "=You are an SEO + LLM-focused content analysis engine.\n\nYour job is to analyze webpage structure and extract semantic signals AI search engines use.\n\nReturn ONLY valid JSON matching this exact format:\n\n{\n  \"title\": \"string\",\n  \"entities\": [\"entity1\", \"entity2\"],\n  \"keywords\": [\"keyword1\", \"keyword2\"],\n  \"topics\": [\"topic1\", \"topic2\"],\n  \"summary\": \"one paragraph summary\"\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "2743a52b-1796-414f-aeaf-858f31b25721",
          "name": "OpenAI Chat Model for Clustering",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -656,
            144
          ],
          "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": "7405ae78-a231-4ddb-955e-d580cd2cd058",
          "name": "Memory Buffer for Clustering",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -528,
            144
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "05fd1330-6c14-4ddc-9c34-510b119e97df",
          "name": "Cluster JSON Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -400,
            144
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"cluster\": \"string\",\n  \"subcluster\": \"string\"\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "ddfcfe0f-7648-4c40-addf-edd409e4cecd",
          "name": "AI Agent - Assign Topic Clusters",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -592,
            -80
          ],
          "parameters": {
            "text": "=Based on:\nEntities: {{$json[\"entities\"]}}\nKeywords: {{$json[\"keywords\"]}}\nTopics: {{$json[\"topics\"]}}\nURL: {{ $('Split URLs In Batches').item.json.URL }}\n\nReturn cluster and subcluster in JSON.\n",
            "options": {
              "systemMessage": "=You are a topical authority clustering engine.\n\nAssign each page to a high-level cluster and subcluster relevant for LLM search.\n\nReturn JSON ONLY:\n\n{\n  \"cluster\": \"string\",\n  \"subcluster\": \"string\"\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "e0f5f512-a657-4c53-8562-7d48e018566a",
          "name": "Format Extracted Data",
          "type": "n8n-nodes-base.set",
          "position": [
            -880,
            -80
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "c840f40b-b8c5-4385-998a-1428682ff7cf",
                  "name": "title",
                  "type": "string",
                  "value": "={{ $json.output.title }}"
                },
                {
                  "id": "d8528cc0-76a0-482a-8036-fafc127f1955",
                  "name": "entities",
                  "type": "string",
                  "value": "={{ $json.output.entities }}"
                },
                {
                  "id": "376ed11f-4df7-4ae4-b94b-dc52fe2abe56",
                  "name": "keywords",
                  "type": "string",
                  "value": "={{ $json.output.keywords }}"
                },
                {
                  "id": "3e18188e-83e4-4286-be74-a092f7b6f284",
                  "name": "topics",
                  "type": "string",
                  "value": "={{ $json.output.topics }}"
                },
                {
                  "id": "e56d81e0-de4c-4353-acc6-34252503e40f",
                  "name": "summary",
                  "type": "string",
                  "value": "={{ $json.output.summary }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "a4478e85-6189-4fca-8db1-b69948121353",
          "name": "Format Cluster Data",
          "type": "n8n-nodes-base.set",
          "position": [
            -192,
            -80
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "cdd9b343-a93b-4d86-8973-3c5be9fe5696",
                  "name": "cluster",
                  "type": "string",
                  "value": "={{ $json.output.cluster }}"
                },
                {
                  "id": "86fdb121-4e82-49ab-b459-0f847cf1b454",
                  "name": "subcluster",
                  "type": "string",
                  "value": "={{ $json.output.subcluster }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "906978b1-863d-45d8-8f47-85baaf1a1966",
          "name": "OpenAI Chat Model for Links",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            48,
            144
          ],
          "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": "a6c6bcbb-e8c4-48a4-9867-bcfd72eb8a8c",
          "name": "Memory Buffer for Links",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            176,
            144
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "cb21d273-85ac-4ece-81c0-5bf82c48bd2d",
          "name": "Link Suggestions JSON Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            304,
            144
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"suggestions\": [\"url1\", \"url2\", \"url3\"]\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "229bd06c-1738-4f5a-82da-f0ef29e27728",
          "name": "Weekly Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -2480,
            48
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "weeks",
                  "triggerAtDay": [
                    1
                  ]
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "19fc3426-1e05-4a5c-8396-ae435acf9da6",
          "name": "AI Agent - Generate Internal Links",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            112,
            -80
          ],
          "parameters": {
            "text": "=Based on this page:\nURL: {{ $('Split URLs In Batches').item.json.URL }}\nCluster: {{$json[\"cluster\"]}}\nSubcluster: {{$json[\"subcluster\"]}} \nentities:{{ $('Format Extracted Data').item.json.entities }}\n\nGiven these available URLs:\n{{$items(\"Fetch URL List from Google Sheets\").map(i => i.json.URL)}}\n\nReturn 3–5 related URLs as suggestions.\n",
            "options": {
              "systemMessage": "=You are an internal linking strategy engine.\nRecommend URLs from this dataset that should internally link together to strengthen topical authority.\n\nReturn ONLY JSON:\n\n{\n  \"suggestions\": [\"url1\", \"url2\", \"url3\"]\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "fbc0b7f5-9eff-4036-99eb-c6eb7cf0820f",
      "connections": {
        "Memory Buffer": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - Extract Entities & Keywords",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Update Sheet Row": {
          "main": [
            [
              {
                "node": "Split URLs In Batches",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Extract Entities & Keywords",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Cluster JSON Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Assign Topic Clusters",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Fetch HTML from URL": {
          "main": [
            [
              {
                "node": "Extract Headings (H1-H6)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Cluster Data": {
          "main": [
            [
              {
                "node": "AI Agent - Generate Internal Links",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare Sheet Update": {
          "main": [
            [
              {
                "node": "Update Sheet Row",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Extracted Data": {
          "main": [
            [
              {
                "node": "AI Agent - Assign Topic Clusters",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Split URLs In Batches": {
          "main": [
            [],
            [
              {
                "node": "Fetch HTML from URL",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Structured JSON Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Extract Entities & Keywords",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Memory Buffer for Links": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - Generate Internal Links",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Weekly Schedule Trigger": {
          "main": [
            [
              {
                "node": "Fetch URL List from Google Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract Headings (H1-H6)": {
          "main": [
            [
              {
                "node": "AI Agent - Extract Entities & Keywords",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model for Links": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Generate Internal Links",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Link Suggestions JSON Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Generate Internal Links",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Memory Buffer for Clustering": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - Assign Topic Clusters",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Assign Topic Clusters": {
          "main": [
            [
              {
                "node": "Format Cluster Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model for Clustering": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Assign Topic Clusters",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Fetch URL List from Google Sheets": {
          "main": [
            [
              {
                "node": "Split URLs In Batches",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Generate Internal Links": {
          "main": [
            [
              {
                "node": "Prepare Sheet Update",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Extract Entities & Keywords": {
          "main": [
            [
              {
                "node": "Format Extracted Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 29,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 3
        },
        "n8n-nodes-base.html": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 8
        },
        "n8n-nodes-base.httpRequest": {
          "count": 1
        },
        "n8n-nodes-base.googleSheets": {
          "count": 2
        },
        "n8n-nodes-base.splitInBatches": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 3
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 3
        }
      }
    },
    "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": 19,
        "icon": "file:httprequest.svg",
        "name": "n8n-nodes-base.httpRequest",
        "codex": {
          "data": {
            "alias": [
              "API",
              "Request",
              "URL",
              "Build",
              "cURL"
            ],
            "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/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-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content 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/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "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/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "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/automate-designs-with-bannerbear-and-n8n/",
                  "icon": "🎨",
                  "label": "Automate Designs with Bannerbear and n8n"
                },
                {
                  "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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/",
                  "icon": "🧰",
                  "label": "How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "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/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "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.httprequest/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HTTP Request",
          "color": "#0004F5"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "HTTP Request",
        "typeVersion": 4,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "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": 39,
        "icon": "fa:sync",
        "name": "n8n-nodes-base.splitInBatches",
        "codex": {
          "data": {
            "alias": [
              "Loop",
              "Concatenate",
              "Batch",
              "Split",
              "Split In Batches"
            ],
            "resources": {
              "generic": [
                {
                  "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/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"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"organization\"]",
        "defaults": {
          "name": "Loop Over Items",
          "color": "#007755"
        },
        "iconData": {
          "icon": "sync",
          "type": "icon"
        },
        "displayName": "Loop Over Items (Split in Batches)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "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": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 842,
        "icon": "file:html.svg",
        "name": "n8n-nodes-base.html",
        "codex": {
          "data": {
            "alias": [
              "extract",
              "template",
              "table"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.html/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "HTML"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguNjQwNjIgMEgxMC40Mzc1VjEuNzgxMjVIMTIuMDkzN1YwSDEzLjg5MDZWNS4zOTA2MkgxMi4wOTM3VjMuNTkzNzVIMTAuNDUzMVY1LjM5MDYySDguNjQwNjJNMTYuMjY1NiAxLjc5Njg3SDE0LjY3OTdWMEgxOS42NTYyVjEuNzk2ODdIMTguMDYyNVY1LjM5MDYySDE2LjI2NTZNMjAuNDQ1MyAwSDIyLjMyODFMMjMuNDg0NCAxLjg5ODQ0TDI0LjY0MDYgMEgyNi41MjM0VjUuMzkwNjJIMjQuNzI2NlYyLjcxODc1TDIzLjQ2ODcgNC42NTYyNUwyMi4yMTA5IDIuNzE4NzVWNS4zOTA2MkgyMC40NDUzTTI3LjQxNDEgMEgyOS4yMTA5VjMuNjA5MzdIMzEuNzU3OFY1LjM5MDYySDI3LjQxNDEiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik04LjU3ODEyIDM2Ljc5NjlMNiA3Ljg1OTM4SDM0LjM0MzdMMzEuNzY1NiAzNi43ODEyTDIwLjE0ODQgNDAiIGZpbGw9IiNFNDREMjYiLz4KPHBhdGggZD0iTTIwLjE3MTkgMzcuNTM5MVYxMC4yMzQ0SDMxLjc1NzhMMjkuNTQ2OSAzNC45MjE5IiBmaWxsPSIjRjE2NTI5Ii8+CjxwYXRoIGQ9Ik0xMS4yNjU2IDEzLjc3MzRIMjAuMTcxOVYxNy4zMjAzSDE1LjE1NjJMMTUuNDg0NCAyMC45NTMxSDIwLjE3MTlWMjQuNDkyMkgxMi4yMzQ0TTEyLjM5MDYgMjYuMjczNEgxNS45NTMxTDE2LjIwMzEgMjkuMTA5NEwyMC4xNzE5IDMwLjE3MTlWMzMuODc1TDEyLjg5MDYgMzEuODQzNyIgZmlsbD0iI0VCRUJFQiIvPgo8cGF0aCBkPSJNMjkuMDQ2OSAxMy43NzM0SDIwLjE1NjJWMTcuMzIwM0gyOC43MTg3TTI4LjM5ODQgMjAuOTUzMUgyMC4xNTYyVjI0LjVIMjQuNTMxMkwyNC4xMTcyIDI5LjEwOTRMMjAuMTU2MiAzMC4xNzE5VjMzLjg1OTRMMjcuNDIxOSAzMS44NDM3IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"
        },
        "displayName": "HTML",
        "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"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 32,
        "name": "Market Research"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}