﻿{
  "workflow": {
    "id": 6299,
    "name": "Automated job extraction & publishing with RAG, Jina AI and OpenAI to WordPress",
    "views": 430,
    "recentViews": 0,
    "totalViews": 430,
    "createdAt": "2025-07-23T04:30:55.957Z",
    "description": "Auto repost job with RAG is a workflow designed to automatically extract, process, and publish job listings from monitored sources using Google Drive, OpenAI, Supabase, and WordPress. This integration streamlines job reposting by intelligently extracting relevant job data, mapping categories and types accurately, managing media assets, and publishing posts seamlessly.\n\n## 💡 Why Use Auto repost job with RAG?\n\n**Automated Publishing:** Slash manual entry time by automating job post extraction and publication, freeing hours every week.\n\n**Error-Resistant Workflow:** Avoid incomplete job posts with smart validation checks to ensure all necessary fields are ready before publishing.\n\n**Consistent Content Quality:** Maintain formatting, SEO, and style consistency backed by AI-driven article regeneration adhering strictly to your guidelines.\n\n**Competitive Edge:** Get fresh jobs live faster than your competitors without lifting more than a finger—because robots don't take coffee breaks!\n\n## ⚡ Perfect For\n\n**Recruiters & HR Teams:** Accelerate your job posting funnel with error-free automation.\n\n**Content Managers:** Keep your job boards fresh with AI-enriched standardized listings.\n\n**Digital Marketers:** Automate content flows to boost SEO and engagement without the headache.\n\n## 🔧 How It Works\n\n**⏱ Trigger:** Job link inputs via Telegram.\n\n**📎 Process:** Auto-download of job documents, data extraction using Jina AI and OpenAI's GPT-4 model to parse content and metadata.\n\n**🤖 Smart Logic:** AI agent regenerates articles based on strict RAG dataset rules; category & job type IDs mapped to match WordPress taxonomy; fallback attempts with default images for missing logos.\n\n**💌 Output:** Job posts formatted and published to WordPress; success or failure updates sent back via Telegram notifications.\n\n**🗂 Storage:** Uses Supabase vector store for document embedding and retrieval related to formatting rules and job data.\n\n## 🔐 Quick Setup\n\n1. Import the provided JSON workflow into your [n8n instances](https://n8n.partnerlinks.io/khmuhtadin)\n2. **Add credentials:** Google Drive OAuth, OpenAI API, Supabase API, Telegram API, WordPress API\n3. **Customize:** Set your Google Drive folder ID, WordPress endpoints, and Telegram chat IDs\n4. **Update:** Confirm default logo URLs and fallback settings as needed\n5. **Test:** Submit a new job link via Telegram or add a file to the watched Drive folder\n\n## 🧩 You'll Need\n\n- Active [n8n instances](https://n8n.partnerlinks.io/khmuhtadin)\n- Google Drive Account with OAuth2 credentials\n- OpenAI API access for GPT-4 processing\n- Supabase account configured for vector storage\n- WordPress API credentials for job listing publishing\n- Telegram Bot for notifications and job link inputs\n\n## 🛠️ Level Up Ideas\n\n- Integrate Slack, Gmail or Teams notifications for teams visibility\n- Add a sentiment analysis step to prioritize certain jobs\n- Automate social media posting of new job listings for wider reach\n\n---\n\n**Made by:** [Khmuhtadin](https://khmuhtadin.com)  \n**Tags:** automation, job-posting, AI, OpenAI, Google Drive, WordPress  \n**Category:** content automation  \n**Need custom work?** [Contact me](https://khmuhtadin.com/contact)",
    "workflow": {
      "meta": {
        "instanceId": "c2650793f644091dc80fb900fe63448ad1f4b774008de9608064d67294f8307c",
        "templateCredsSetupCompleted": true
      },
      "nodes": [
        {
          "id": "9db5c8cc-2c9a-4256-94b9-b404fcfed9b8",
          "name": "Search File",
          "type": "n8n-nodes-base.googleDrive",
          "position": [
            -592,
            -464
          ],
          "parameters": {
            "filter": {
              "folderId": {
                "__rl": true,
                "mode": "list",
                "value": "1qarDrwjNIrrx2wk8RMzLpyIq_6r0DHLX",
                "cachedResultUrl": "https://drive.google.com/drive/folders/1qarDrwjNIrrx2wk8RMzLpyIq_6r0DHLX",
                "cachedResultName": "GPT"
              }
            },
            "options": {},
            "resource": "fileFolder",
            "returnAll": true
          },
          "typeVersion": 3
        },
        {
          "id": "a011a33b-a34c-490a-a541-fa44a6d210ad",
          "name": "Get Data",
          "type": "n8n-nodes-base.googleDrive",
          "position": [
            -368,
            -464
          ],
          "parameters": {
            "fileId": {
              "__rl": true,
              "mode": "id",
              "value": "={{ $json.id }}"
            },
            "options": {},
            "operation": "download"
          },
          "typeVersion": 3
        },
        {
          "id": "e9ccaf88-ef3d-4e0d-b341-20674e225c26",
          "name": "Supabase Vector Store",
          "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
          "position": [
            96,
            -464
          ],
          "parameters": {
            "mode": "insert",
            "options": {},
            "tableName": {
              "__rl": true,
              "mode": "list",
              "value": "documents",
              "cachedResultName": "documents"
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "f96b0b9c-ea89-4265-a8b9-7cf7d5b8718c",
          "name": "Embeddings OpenAI",
          "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
          "position": [
            80,
            -240
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "9fac2f4e-8fe6-408b-b2d1-4de537a51654",
          "name": "Default Data Loader",
          "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
          "position": [
            208,
            -240
          ],
          "parameters": {
            "options": {},
            "dataType": "binary"
          },
          "typeVersion": 1
        },
        {
          "id": "01ed8e12-4569-4982-b4b2-86c48c607862",
          "name": "Recursive Character Text Splitter",
          "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
          "position": [
            304,
            -32
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 1
        },
        {
          "id": "5f82a988-cf41-4494-a6ec-ff69b880e940",
          "name": "Loop Over Items",
          "type": "n8n-nodes-base.splitInBatches",
          "position": [
            -144,
            -464
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 3
        },
        {
          "id": "29b8633d-5190-48c7-a2e1-b09eb1a74585",
          "name": "AI Agent",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "disabled": true,
          "position": [
            -3472,
            -272
          ],
          "parameters": {
            "text": "={{ $json.text }}",
            "options": {
              "systemMessage": "=Eres un regenerador de artículos especializado que trabaja exclusivamente con información y reglas almacenadas en la base de conocimientos \"notodoanimacion\".\nFunción Principal\nRegenerar artículos siguiendo estrictamente las reglas de formato, estilo y estructura definidas en el dataset RAG. No inventes reglas ni formatos propios.\nProtocolo de Trabajo\n1. Consulta Obligatoria\n\nSIEMPRE usa la herramienta \"notodoanimacion\" para buscar:\n\nReglas de formato y estructura de artículos\nGuías de estilo de escritura\nEjemplos de formato correcto\nInformación relevante sobre el tema solicitado\n\n2. Cumplimiento Estricto\nSigue EXACTAMENTE las reglas de formato encontradas en el dataset\nRespeta las guías de estilo definidas en la base de conocimientos\nAplica la estructura de artículos especificada en el RAG\nMantén el tono y estilo establecido en las directrices\n\n3. Proceso de Regeneración\nBusca las reglas de formato en la base de conocimientos\nBusca información sobre el tema solicitado\nAplica las reglas encontradas al contenido\nRegenera el artículo siguiendo exactamente esas especificaciones\n\n\nImportante\nNO crees reglas propias de formato\nNO improvises estructura de artículos\nTODO debe basarse en lo que encuentres en \"notodoanimacion\"\nSi no encuentras reglas específicas, pregunta al usuario por más detalles\n\nIdioma\nTrabaja principalmente en español, adaptándote al tono y registro encontrado en el dataset.\nResponde siempre consultando primero la base de conocimientos para obtener las reglas correctas."
            },
            "promptType": "define"
          },
          "typeVersion": 2
        },
        {
          "id": "8fd148f9-604e-471b-b65f-4632b1b484c9",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "disabled": true,
          "position": [
            -3440,
            -48
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini",
              "cachedResultName": "gpt-4.1-mini"
            },
            "options": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "11daf090-c929-4ed5-a4dc-267d0c402e1e",
          "name": "Supabase Vector Store1",
          "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
          "position": [
            -1216,
            448
          ],
          "parameters": {
            "mode": "retrieve-as-tool",
            "options": {
              "queryName": "match_documents"
            },
            "toolName": "document",
            "tableName": {
              "__rl": true,
              "mode": "list",
              "value": "documents",
              "cachedResultName": "documents"
            },
            "toolDescription": "use thisto get information about notodoanimacion"
          },
          "typeVersion": 1.1
        },
        {
          "id": "6f32182f-8acc-4468-a993-f2ba0a31f2d8",
          "name": "Embeddings OpenAI1",
          "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
          "position": [
            -1120,
            656
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "2bf347a0-d2db-4b3f-b339-f82dc00245a2",
          "name": "Google Drive Trigger",
          "type": "n8n-nodes-base.googleDriveTrigger",
          "disabled": true,
          "position": [
            -816,
            -464
          ],
          "parameters": {
            "event": "fileUpdated",
            "options": {
              "fileType": "all"
            },
            "pollTimes": {
              "item": [
                {
                  "hour": 0
                }
              ]
            },
            "triggerOn": "specificFolder",
            "folderToWatch": {
              "__rl": true,
              "mode": "list",
              "value": "1qarDrwjNIrrx2wk8RMzLpyIq_6r0DHLX",
              "cachedResultUrl": "https://drive.google.com/drive/folders/1qarDrwjNIrrx2wk8RMzLpyIq_6r0DHLX",
              "cachedResultName": "GPT"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "11c1c54b-6bad-4ef7-8703-7c80dc60099d",
          "name": "📥 New Job Link via Telegram",
          "type": "n8n-nodes-base.telegramTrigger",
          "position": [
            -3456,
            496
          ],
          "webhookId": "925f5476-09a3-46b9-9b53-0f43a2c84995",
          "parameters": {
            "updates": [
              "message"
            ],
            "additionalFields": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "b8fc0c2c-93ec-4b62-b0da-0948c3dc9661",
          "name": "🔧 Prepare URL for Extraction",
          "type": "n8n-nodes-base.set",
          "position": [
            -3232,
            496
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "8d5bf5e7-0f91-4012-b180-4bef3f9c93cd",
                  "name": "text",
                  "type": "string",
                  "value": "={{ $json.text ||  $json.message.text }}"
                },
                {
                  "id": "1a3739bb-d9c2-449b-929b-a1fb58196458",
                  "name": "cleanUrl",
                  "type": "string",
                  "value": "={{ ($json.message.text && $json.message.text.includes('://')\n    ? $json.message.text.split('/').slice(0,3).join('/')\n    : 'Invalid URL'\n  ).replace(/\\r?\\n$/, '') }}"
                }
              ]
            },
            "includeOtherFields": true
          },
          "typeVersion": 3.4
        },
        {
          "id": "964df60e-eeeb-4c60-b4fc-dca6f083ea0d",
          "name": "🧮 Map Job Type & Category IDs",
          "type": "n8n-nodes-base.code",
          "position": [
            -816,
            176
          ],
          "parameters": {
            "jsCode": "// 1. Ambil array kategori dari input\nconst inputCategories = $('🧠 Extract Job Data with GPT').first().json.choices[0].message.content.categories;\n\n// 1b. Ambil job_type sebagai satu string\nconst inputType = $('🧠 Extract Job Data with GPT').first().json.choices[0].message.content.job_type;\n\n// 2. Array mapping antara `category` dan `id`\nconst categoryMap = [\n  { id: 299, category: \"2d\" },\n  { id: 298, category: \"3d\" },\n  { id: 315, category: \"3DFX\" },\n  { id: 284, category: \"Animación 2d\" },\n  { id: 286, category: \"Animación 3d\" },\n  { id: 617, category: \"Artista de color\" },\n  { id: 312, category: \"Audio SFX\" },\n  { id: 540, category: \"character artist\" },\n  { id: 445, category: \"Character FX (CFX)\" },\n  { id: 596, category: \"Cinematic Artist\" },\n  { id: 462, category: \"Comic\" },\n  { id: 294, category: \"Compositor 3d\" },\n  { id: 487, category: \"Compositor Digital\" },\n  { id: 463, category: \"Concept Art\" },\n  { id: 300, category: \"Creativo\" },\n  { id: 537, category: \"Crowd Artist\" },\n  { id: 301, category: \"Desarrollo de Software\" },\n  { id: 316, category: \"Desarrollo Visual\" },\n  { id: 302, category: \"Dibujante\" },\n  { id: 612, category: \"Dirección\" },\n  { id: 292, category: \"Director de Arte\" },\n  { id: 317, category: \"Diseño de personajes\" },\n  { id: 291, category: \"Diseño Gráfico\" },\n  { id: 310, category: \"Edición de video\" },\n  { id: 533, category: \"Environment Artist\" },\n  { id: 620, category: \"Escultura Digital\" },\n  { id: 622, category: \"Filmmaker\" },\n  { id: 304, category: \"Fotografía\" },\n  { id: 314, category: \"Game Artist\" },\n  { id: 486, category: \"Game Designer\" },\n  { id: 506, category: \"Game developer\" },\n  { id: 482, category: \"Game Producer\" },\n  { id: 576, category: \"Gameplay Animator\" },\n  { id: 290, category: \"Generalista 3d\" },\n  { id: 452, category: \"Grooming Hair/Fur\" },\n  { id: 303, category: \"Guionista\" },\n  { id: 305, category: \"Iluminación\" },\n  { id: 288, category: \"Ilustración\" },\n  { id: 616, category: \"Inteligencia Artificial\" },\n  { id: 311, category: \"Layout Artist\" },\n  { id: 619, category: \"Look Development\" },\n  { id: 464, category: \"Matte Painting\" },\n  { id: 287, category: \"Modelador 3d\" },\n  { id: 524, category: \"Motion Designer\" },\n  { id: 289, category: \"Motion Graphics\" },\n  { id: 588, category: \"Pixel Art\" },\n  { id: 307, category: \"Postproducción\" },\n  { id: 594, category: \"Previs\" },\n  { id: 297, category: \"Producción\" },\n  { id: 483, category: \"Programador\" },\n  { id: 592, category: \"Realidad Virtual (VR)\" },\n  { id: 448, category: \"Render deploy-cli\" },\n  { id: 313, category: \"Rigger\" },\n  { id: 459, category: \"Shading & Texturing\" },\n  { id: 295, category: \"Storyboard\" },\n  { id: 296, category: \"Storytelling\" },\n  { id: 595, category: \"Technical Artist\" },\n  { id: 485, category: \"Technical Director (TD)\" },\n  { id: 308, category: \"UI / UX\" },\n  { id: 309, category: \"VFX\" },\n  { id: 589, category: \"Videojuegos\" },\n  { id: 593, category: \"Virtual Production\" },\n  { id: 293, category: \"Visualización Arquitectónica\" },\n  { id: 590, category: \"VR & AR\" }\n];\n\n// 2b. Array mapping antara `type` dan `id`\nconst typeMap = [\n  { \"id\": 282, \"type\": \"Freelance / Remoto / Teletrabajo\" },\n  { \"id\": 318, \"type\": \"Indiferente\" },\n  { \"id\": 283, \"type\": \"Prácticas\" },\n  { \"id\": 281, \"type\": \"Proyecto\" },\n  { \"id\": 279, \"type\": \"Tiempo completo\" },\n  { \"id\": 280, \"type\": \"Tiempo parcial\" }\n];\n\n// 3. Map kategori input → array ID\nconst fixCategory = Array.isArray(inputCategories)\n  ? inputCategories\n      .map(name => {\n        const match = categoryMap.find(obj => obj.category === name);\n        return match ? match.id : null;\n      })\n      .filter(id => id !== null)\n  : [];\n\n// 4. Cari ID tipe berdasarkan inputType (string), balikan sebagai array\nconst foundType = typeMap.find(obj => obj.type === inputType);\nconst fixType = foundType ? [foundType.id] : [];\n\n// 5. Kembalikan kedua array dalam satu objek JSON\nreturn [\n  {\n    json: {\n      fixCategory,\n      fixType\n    }\n  }\n];\n"
          },
          "typeVersion": 2
        },
        {
          "id": "9c03e317-3ac7-4a5c-9612-02b99746a725",
          "name": "📥 Download Company Logo",
          "type": "n8n-nodes-base.httpRequest",
          "onError": "continueRegularOutput",
          "position": [
            -144,
            176
          ],
          "parameters": {
            "url": "={{ $json.processedIconUrl }}",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "file"
                }
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "609b0e95-43f2-45c2-b5a1-29636581446d",
          "name": "☁️ Upload Logo to WordPress",
          "type": "n8n-nodes-base.httpRequest",
          "onError": "continueRegularOutput",
          "position": [
            80,
            176
          ],
          "parameters": {
            "url": "https://yourwebsite.es/wp-json/wp/v2/media",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "contentType": "binaryData",
            "sendHeaders": true,
            "authentication": "predefinedCredentialType",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Disposition",
                  "value": "=attachment; filename=\"logo-{{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.company }}.jpeg\""
                },
                {
                  "name": "Content-Type",
                  "value": "image/jpeg"
                }
              ]
            },
            "inputDataFieldName": "data",
            "nodeCredentialType": "wordpressApi"
          },
          "retryOnFail": true,
          "typeVersion": 4.2
        },
        {
          "id": "51e02ad8-611e-4738-a92b-8fbde4fe9c90",
          "name": "📦 Format Final Job Post Data",
          "type": "n8n-nodes-base.set",
          "position": [
            304,
            176
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "title",
                  "name": "title",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.title }}"
                },
                {
                  "id": "content",
                  "name": "content",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.html }}\n"
                },
                {
                  "id": "job_listing_type",
                  "name": "job_listing_type",
                  "type": "array",
                  "value": "=[{{ $('🧮 Map Job Type & Category IDs').item.json.fixType[0] }}]"
                },
                {
                  "id": "job_listing_category",
                  "name": "job_listing_category",
                  "type": "array",
                  "value": "={{ $('🧮 Map Job Type & Category IDs').item.json.fixCategory }}"
                },
                {
                  "id": "_job_location",
                  "name": "_job_location",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.location }}"
                },
                {
                  "id": "_company_name",
                  "name": "_company_name",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.company }}"
                },
                {
                  "id": "_company_logo",
                  "name": "_company_logo",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.logo || \"http://www.notodoanimacion.es/wp-content/uploads/2025/06/logo-Sony-Pictures-Animation-1.png\" }}"
                },
                {
                  "id": "_application",
                  "name": "_application",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.original_link || $('🔧 Prepare URL for Extraction').item.json.text }}"
                },
                {
                  "id": "7df4886d-0180-4279-9bff-f8f3ebc2961c",
                  "name": "companyLogo",
                  "type": "string",
                  "value": "={{ $json.guid.raw }}"
                },
                {
                  "id": "b9a766da-8bd6-4950-a243-8005c61c3ca9",
                  "name": "status",
                  "type": "string",
                  "value": "publish"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "591abeb6-03fd-453c-9001-aaae56976d16",
          "name": "✅ All Fields Available?",
          "type": "n8n-nodes-base.if",
          "onError": "continueErrorOutput",
          "position": [
            528,
            160
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "loose"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "8f4efbe7-3fc1-4be3-b4c6-f2b7b1f8f00a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.title }}",
                  "rightValue": ""
                },
                {
                  "id": "8194f924-3ef7-4056-a909-3499d8c116b3",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.job_listing_category }}",
                  "rightValue": ""
                },
                {
                  "id": "373f2081-f7ac-4313-a472-6d10770dd17a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.job_listing_type }}",
                  "rightValue": ""
                },
                {
                  "id": "74166a2f-57e8-4fed-8bcf-cd240779543a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json._job_location }}",
                  "rightValue": ""
                },
                {
                  "id": "bdee50a8-cdff-4570-b88a-8cf560468fa2",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json._application }}",
                  "rightValue": ""
                },
                {
                  "id": "48ab4287-4b6c-4241-a50f-1ddb40456fb2",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.companyLogo }}",
                  "rightValue": ""
                }
              ]
            },
            "looseTypeValidation": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "3f58a822-4aa3-411b-9e5b-ad63be12a940",
          "name": "if not valid",
          "type": "n8n-nodes-base.telegram",
          "position": [
            752,
            -144
          ],
          "webhookId": "033439cf-08eb-4df7-be1a-3a617027ce35",
          "parameters": {
            "text": "=Failed - Missing required fields. Please check extraction process.\n\nTrying another approach...",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "771818fd-47d1-48ab-a83a-7bc232a52ab5",
          "name": "notify: processing job",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -2560,
            400
          ],
          "webhookId": "936a1870-5650-456a-b6bb-be70967ae64a",
          "parameters": {
            "text": "=hi, {{ $('📥 New Job Link via Telegram').item.json.message.chat.first_name }}\n\nprocessing job...",
            "chatId": "={{ $('📥 New Job Link via Telegram').item.json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "5c78034b-8194-4d3b-bf81-1f524f7dcea5",
          "name": "notify: extracting",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -2112,
            400
          ],
          "webhookId": "1c4064cc-c0fb-4100-ad77-3ff236a1e15c",
          "parameters": {
            "text": "<i>Extracting web data... </i>",
            "chatId": "={{ $('📥 New Job Link via Telegram').item.json.message.chat.id }}",
            "messageId": "={{ $json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {
              "parse_mode": "HTML"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "eac3a8c7-bab1-44ad-b199-4c11b563033c",
          "name": "If",
          "type": "n8n-nodes-base.if",
          "position": [
            -1664,
            320
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "loose"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "31d50777-6c34-4a2a-b570-8bcd32073824",
                  "operator": {
                    "type": "boolean",
                    "operation": "exists",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.title }}",
                  "rightValue": ""
                },
                {
                  "id": "9ae85f70-c7c3-4a1a-a2c8-64c3ad388c0b",
                  "operator": {
                    "type": "boolean",
                    "operation": "exists",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.description }}",
                  "rightValue": ""
                },
                {
                  "id": "01c42779-16f4-452b-b328-b91f0f5b9a5b",
                  "operator": {
                    "type": "string",
                    "operation": "exists",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.url }}",
                  "rightValue": ""
                },
                {
                  "id": "7c6414cd-9d44-45bb-b999-30a0e1cd1993",
                  "operator": {
                    "type": "boolean",
                    "operation": "exists",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.content }}",
                  "rightValue": ""
                }
              ]
            },
            "looseTypeValidation": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "9b3c64ac-49ee-4b97-8137-4b87e1a6e902",
          "name": "notify: success extract",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -1440,
            224
          ],
          "webhookId": "51bfc648-4499-4f61-9aa4-61e6b7b617dc",
          "parameters": {
            "text": "Jobs Extracted! Processing input with openAI...",
            "chatId": "={{ $('notify: extracting').item.json.result.chat.id }}",
            "messageId": "={{ $('notify: extracting').item.json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "ad03815f-6870-49da-89b9-4bfd84fe74e8",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -864,
            -512
          ],
          "parameters": {
            "width": 1400,
            "height": 620,
            "content": "## RAG DATA\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
          },
          "typeVersion": 1
        },
        {
          "id": "1378e1e2-6f80-4d75-9694-5906e9df1942",
          "name": "📚 Load Valid Job Types & Categories",
          "type": "n8n-nodes-base.set",
          "position": [
            -3008,
            496
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "5b365fce-7a88-431b-aee7-4bf5a0171a1f",
                  "name": "category",
                  "type": "array",
                  "value": "[\n  { \"id\": 299, \"category\": \"2d\" },\n  { \"id\": 298, \"category\": \"3d\" },\n  { \"id\": 315, \"category\": \"3DFX\" },\n  { \"id\": 284, \"category\": \"Animación 2d\" },\n  { \"id\": 286, \"category\": \"Animación 3d\" },\n  { \"id\": 617, \"category\": \"Artista de color\" },\n  { \"id\": 312, \"category\": \"Audio SFX\" },\n  { \"id\": 540, \"category\": \"character artist\" },\n  { \"id\": 445, \"category\": \"Character FX (CFX)\" },\n  { \"id\": 596, \"category\": \"Cinematic Artist\" },\n  { \"id\": 462, \"category\": \"Comic\" },\n  { \"id\": 294, \"category\": \"Compositor 3d\" },\n  { \"id\": 487, \"category\": \"Compositor Digital\" },\n  { \"id\": 463, \"category\": \"Concept Art\" },\n  { \"id\": 300, \"category\": \"Creativo\" },\n  { \"id\": 537, \"category\": \"Crowd Artist\" },\n  { \"id\": 301, \"category\": \"Desarrollo de Software\" },\n  { \"id\": 316, \"category\": \"Desarrollo Visual\" },\n  { \"id\": 302, \"category\": \"Dibujante\" },\n  { \"id\": 612, \"category\": \"Dirección\" },\n  { \"id\": 292, \"category\": \"Director de Arte\" },\n  { \"id\": 317, \"category\": \"Diseño de personajes\" },\n  { \"id\": 291, \"category\": \"Diseño Gráfico\" },\n  { \"id\": 310, \"category\": \"Edición de video\" },\n  { \"id\": 533, \"category\": \"Environment Artist\" },\n  { \"id\": 620, \"category\": \"Escultura Digital\" },\n  { \"id\": 622, \"category\": \"Filmmaker\" },\n  { \"id\": 304, \"category\": \"Fotografía\" },\n  { \"id\": 314, \"category\": \"Game Artist\" },\n  { \"id\": 486, \"category\": \"Game Designer\" },\n  { \"id\": 506, \"category\": \"Game developer\" },\n  { \"id\": 482, \"category\": \"Game Producer\" },\n  { \"id\": 576, \"category\": \"Gameplay Animator\" },\n  { \"id\": 290, \"category\": \"Generalista 3d\" },\n  { \"id\": 452, \"category\": \"Grooming Hair/Fur\" },\n  { \"id\": 303, \"category\": \"Guionista\" },\n  { \"id\": 305, \"category\": \"Iluminación\" },\n  { \"id\": 288, \"category\": \"Ilustración\" },\n  { \"id\": 616, \"category\": \"Inteligencia Artificial\" },\n  { \"id\": 311, \"category\": \"Layout Artist\" },\n  { \"id\": 619, \"category\": \"Look Development\" },\n  { \"id\": 464, \"category\": \"Matte Painting\" },\n  { \"id\": 287, \"category\": \"Modelador 3d\" },\n  { \"id\": 524, \"category\": \"Motion Designer\" },\n  { \"id\": 289, \"category\": \"Motion Graphics\" },\n  { \"id\": 588, \"category\": \"Pixel Art\" },\n  { \"id\": 307, \"category\": \"Postproducción\" },\n  { \"id\": 594, \"category\": \"Previs\" },\n  { \"id\": 297, \"category\": \"Producción\" },\n  { \"id\": 483, \"category\": \"Programador\" },\n  { \"id\": 592, \"category\": \"Realidad Virtual (VR)\" },\n  { \"id\": 448, \"category\": \"Render deploy-cli\" },\n  { \"id\": 313, \"category\": \"Rigger\" },\n  { \"id\": 459, \"category\": \"Shading & Texturing\" },\n  { \"id\": 295, \"category\": \"Storyboard\" },\n  { \"id\": 296, \"category\": \"Storytelling\" },\n  { \"id\": 595, \"category\": \"Technical Artist\" },\n  { \"id\": 485, \"category\": \"Technical Director (TD)\" },\n  { \"id\": 308, \"category\": \"UI / UX\" },\n  { \"id\": 309, \"category\": \"VFX\" },\n  { \"id\": 589, \"category\": \"Videojuegos\" },\n  { \"id\": 593, \"category\": \"Virtual Production\" },\n  { \"id\": 293, \"category\": \"Visualización Arquitectónica\" },\n  { \"id\": 590, \"category\": \"VR & AR\" }\n]\n"
                },
                {
                  "id": "9c795618-08e9-4ae1-a1b2-f6e45d6d5bf0",
                  "name": "types",
                  "type": "array",
                  "value": "=[\n  { \"id\": 282, \"type\": \"Freelance / Remoto / Teletrabajo\" },\n  { \"id\": 318, \"type\": \"Indiferente\" },\n  { \"id\": 283, \"type\": \"Prácticas\" },\n  { \"id\": 281, \"type\": \"Proyecto\" },\n  { \"id\": 279, \"type\": \"Tiempo completo\" },\n  { \"id\": 280, \"type\": \"Tiempo parcial\" }\n]\n\n"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "fe3fedf2-e2a4-49a7-907a-ecf8d5eb4240",
          "name": "notify: error",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -816,
            528
          ],
          "webhookId": "936a1870-5650-456a-b6bb-be70967ae64a",
          "parameters": {
            "text": "=Something went wrong \n\n<b>error:</b> <code>{{ $json.error.message }}</code>",
            "chatId": "={{ $('📥 New Job Link via Telegram').item.json.message.chat.id }}",
            "messageId": "={{ $('notify: processing job').item.json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {
              "parse_mode": "HTML"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "fdcf1297-9022-48d5-bcd1-c3a2059b60a6",
          "name": "Wait",
          "type": "n8n-nodes-base.wait",
          "position": [
            -2336,
            400
          ],
          "webhookId": "56532de1-7341-4ea7-b315-e1716a1c7815",
          "parameters": {
            "amount": 1.25
          },
          "typeVersion": 1.1
        },
        {
          "id": "f6853ad4-dce9-4577-aa1c-3a900cac6c1e",
          "name": "valid url?",
          "type": "n8n-nodes-base.if",
          "position": [
            -2784,
            496
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "35deee67-0d08-46f8-a0e2-2f75cda4c08e",
                  "operator": {
                    "type": "string",
                    "operation": "notEquals"
                  },
                  "leftValue": "={{ $('🔧 Prepare URL for Extraction').item.json.cleanUrl }}",
                  "rightValue": "Invalid URL"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "9b25199a-31f8-4225-85ef-c122daa1fa2e",
          "name": "notify: wrong url",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -2560,
            592
          ],
          "webhookId": "936a1870-5650-456a-b6bb-be70967ae64a",
          "parameters": {
            "text": "=<i> thats not a valid url, please re-check your input...</i>",
            "chatId": "={{ $('📥 New Job Link via Telegram').item.json.message.chat.id }}",
            "additionalFields": {
              "parse_mode": "HTML",
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "f7ea2c35-ec76-4d71-a412-99359c8e151a",
          "name": "🧠 Extract Job Data with GPT",
          "type": "@n8n/n8n-nodes-langchain.openAi",
          "onError": "continueErrorOutput",
          "position": [
            -1216,
            224
          ],
          "parameters": {
            "modelId": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini-2025-04-14",
              "cachedResultName": "GPT-4.1-MINI-2025-04-14"
            },
            "options": {},
            "messages": {
              "values": [
                {
                  "content": "=Title: {{ $('Extract').item.json.title }}\nurl: {{ $('Extract').item.json.url }}\ncontent: {{ $('Extract').item.json.content }}\n\nmetadata\nauthor: {{ $('Extract').item.json.metadata.author }}\n\nicon: {{ $('Extract').item.json.external.icon['https://sp-tools-website.s3-eu-west-1.amazonaws.com/media/static/favicon.gif'] }}\n\n"
                },
                {
                  "role": "=system",
                  "content": "=You are a specialized article regenerator who works exclusively with information and rules stored in the \"document\" knowledge base.\n\nExtract rigorously the following fields from the provided job-offer HTML:\n\t•\ttitle\n\t•\tjob_type\n\t•\tcategories (array)\n\t•\tlocation (search in text of offer (body), or put \"sin definir\")\n\t•\tcompany\n\t•\tlogo\n\t•\toriginal_link ({{ $('🔧 Prepare URL for Extraction').item.json.message.text }})\n\t•\thtml (only the job description)\n\nPrimary Function\nRegenerate articles strictly following the formatting, style, and structure rules defined in the RAG dataset. Do not invent your own rules or formats.\n\nWork Protocol\n1. Mandatory Consultation\nALWAYS use the \"document\" tool to search for:\n- Article formatting and structure rules\n- Writing style guides\n- Examples of correct formatting\n- Relevant information on the requested topic\n\n2. Strict Compliance\n- Follow EXACTLY the formatting rules found in the dataset\n- Respect the style guides defined in the knowledge base\n- Apply the article structure specified in the RAG\n- Maintain the tone and style established in the guidelines\n\n3. Regeneration Process\n- Search for formatting rules in the knowledge base\n- Search for information on the requested topic\n- Apply the rules found to the content\n- Regenerate the article following those specifications exactly\n\nImportant\nDO NOT create your own formatting rules\nDO NOT improvise article structure\nEVERYTHING should be based on what you find in \"document\"\nIf you don't find specific rules, ask the user for more details\n\n**HTML (DESCRIPCIÓN)**\n\n1. Al principio, escribe un resumen de dos líneas de la oferta de empleo. Menciona la disciplina, el estudio que publica la oferta, y si es remoto o presencial, incluyendo la localización. Puedes añadir otros elementos relevantes si es necesario. **No añadas un título ni encabezado H2 para este párrafo** y justifica el texto de cada párrafo completo.\n\nIncluye solo un espacio: `<p>&nbsp;</p>`\n\n2. Después, añade este código:\n\n```html\n<p style=\"text-align: center; font-size: 14pt;\"><span style=\"font-weight: 400;\">Si quieres más </span><a href=\"https://www.yourwebsite.es/ofertas-de-empleo-para-artistas-digitales/\"><span style=\"font-weight: 400;\">ofertas de empleo de Animación, 3D, VFX y Arte digital</span></a><span style=\"font-weight: 400;\">👈 ENTRA AQUÍ</span></p>\n```\n\nIncluye solo un espacio: `<p>&nbsp;</p>`\n\n3. Escribe lo siguiente:\n\n```html\n<p>[divider style=\"normal\" top=\"20\" bottom=\"20\"]</p>\n<p>&nbsp;</p>\n<p style=\"text-align: center; font-size: 14pt;\">IMPORTANTE: <a href=\"https://www.documen.es/suscripcion\">Suscríbete a nuestra página</a> 👈 Te enviaremos nuestras ofertas de empleo, todas las semanas. ❤️</p>\n<p>&nbsp;</p>\n<p>[divider style=\"normal\" top=\"20\" bottom=\"20\"]</p>\n```\n\nIncluye un espacio: `<p>&nbsp;</p>`\n\n4. AHORA ESCRIBE TODO EL CONTENIDO EN HTML.\n\n**CONTENIDO:**\n\n· Escribe SIEMPRE EN TERCERA PERSONA.\n· No traduzcas términos técnicos como Assets, technical director, senior, rigging, VFX, CGI, Motion Graphics, pipeline, etc.\n· No traduzcas nombres de programas o herramientas, como After Effects, Photoshop, Shotgun, etc.\n· **¡No escribas ningún tipo de información adicional!**\n\n**FORMATO:**\n\n· Organiza el contenido utilizando encabezados H2 para cada sección, todos centrados.\n· Justifica el texto de cada párrafo completo.\n· **SEO**: Usa negrita para los términos importantes utilizando etiquetas `<strong>` para optimizar la lectura y el SEO, siguiendo estrictamente el orden HTML.\n· Utiliza listas con viñetas siempre que sea adecuado.\n· TODOS los enlaces deben abrir en una nueva ventana.\n· Usa negrita con etiquetas `<strong>` para los términos importantes y palabras clave para optimizar el SEO.\n· Después de cada título, añade `<p>&nbsp;</p>`\n\n5. Después del contenido, añade este código:\n\n```html\n<p style=\"text-align: center; font-size: 14pt;\"><span style=\"font-weight: 400;\">Si quieres más </span><a href=\"https://www.yourwebsite.es/ofertas-de-empleo-para-artistas-digitales/\"><span style=\"font-weight: 400;\">ofertas de empleo de Animación, 3D, VFX y Arte digital</span></a><span style=\"font-weight: 400;\">👈 ENTRA AQUÍ</span></p>\n```\n\n6. En la última línea, incluye SIEMPRE un eslogan aleatorio. Usa negrita con `<strong>` y alinea el texto al centro. Elige **UNA** de estas cuatro opciones:\n\n**Bienvenido a yourwebsite.es | Tu web sobre Animación, VFX y Arte Digital en habla Hispana.**\n**Bienvenidos Artistas Digitales a notodoanimacion.es | El portal de Animación, 3D, VFX y Videojuegos que trabaja para ti.**\n**Bienvenido a notodoanimacion.es | El portal sobre animación y arte digital en español, más visitado del mundo.**\n\n\n\n-----\n\n\nCategory Selection Rules:\n\t•\tONLY select categories from this EXACT options: {{ $('📚 Load Valid Job Types & Categories').item.json.category.map(item => item.category) }}\n\t•\tMaximum 3 categories allowed\n\t•\tMust be CASE SENSITIVE - match exactly as written in the array\n\t•\tSelect the 3 MOST RELEVANT categories that best match the extracted job\n\t•\tIf fewer than 3 categories are relevant, select only the appropriate ones\n\t•\tDO NOT CREATE or ADD any categories outside the provided array\n\t•\tDO NOT MODIFY the spelling, capitalization, or format of categories\n\nGuidelines:\n\t•\tDO NOT INVENT ANYTHING\n\t•\tWrite everything in Spanish (Castilian)\n\t•\tStructure the job description using H2 headings\n\t•\tUse strategic bolding for SEO and relevance\n\t•\tIf any field is missing, leave it empty (”” or [])\n\t•\tReturn only valid JSON\n\nCategory Selection Process:\n\t1.\tRead the job description carefully\n\t2.\tIdentify the main job functions and requirements\n\t3.\tMatch these against the provided category array\n\t4.\tSelect maximum 3 categories that are MOST APPROPRIATE\n\t5.\tEnsure exact spelling and case matching from the array\n\njob_type Selection Rules:\n  • THIS Field is a MANDATORY\n  •\tONLY select job_type from this EXACT options:{{ $('📚 Load Valid Job Types & Categories').item.json.types.map(item => item.type) }}\n  • Maximum 1 Job type allowed\n  • Must be CASE SENSITIVE—match exactly as written in the array\n  • DO NOT CREATE or ADD any categories outside the provided array\n  • DO NOT MODIFY the spelling, capitalization, or format of categories\n  • IF there's no type directly stated, find on the body, find relevant details and pick the most appropriate\n\n"
                }
              ]
            },
            "simplify": false,
            "jsonOutput": true
          },
          "retryOnFail": true,
          "typeVersion": 1.8
        },
        {
          "id": "b92d849d-80be-42a2-aff9-3b2681f9ddbf",
          "name": "Postgres Chat Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
          "disabled": true,
          "position": [
            -3312,
            -48
          ],
          "parameters": {
            "sessionKey": "={{ $('📥 New Job Link via Telegram').item.json.message.chat.id }}",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "55a3e64e-d45a-4c21-8c74-bfcfaf7a07a4",
          "name": "Extract",
          "type": "n8n-nodes-base.jinaAi",
          "onError": "continueErrorOutput",
          "position": [
            -1888,
            400
          ],
          "parameters": {
            "url": "={{ $('🔧 Prepare URL for Extraction').item.json.message.text }}",
            "options": {},
            "requestOptions": {}
          },
          "typeVersion": 1
        },
        {
          "id": "3fbf0e5a-176a-4cfe-86a1-64d16e31d09f",
          "name": "Create Url",
          "type": "n8n-nodes-base.code",
          "position": [
            -368,
            176
          ],
          "parameters": {
            "jsCode": "const extractData = $('Extract').first().json;\n\n// Ekstrak icon URL dengan error handling\nlet iconUrl = null;\n\ntry {\n  // Periksa apakah external dan icon ada\n  if (extractData?.external?.icon) {\n    const iconObject = extractData.external.icon;\n    \n    // Ambil key pertama (URL) dari object icon\n    const iconKeys = Object.keys(iconObject);\n    \n    if (iconKeys.length > 0) {\n      iconUrl = iconKeys[0];\n    }\n  }\n} catch (error) {\n  console.error('Error extracting icon URL:', error);\n}\n\n// Return hasil\nreturn [\n  {\n    json: {\n      iconUrl: iconUrl || '', // Return empty string jika tidak ada icon\n      // Atau bisa juga return original data + iconUrl\n      ...extractData,\n      processedIconUrl: iconUrl\n    }\n  }\n];"
          },
          "typeVersion": 2
        },
        {
          "id": "91f978ad-7ca1-4637-b0fe-38df1f7aa549",
          "name": "notify: openai success",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -592,
            176
          ],
          "webhookId": "51bfc648-4499-4f61-9aa4-61e6b7b617dc",
          "parameters": {
            "text": "<i>OpenAI Process Success... one sec...</i>",
            "chatId": "={{ $('notify: extracting').item.json.result.chat.id }}",
            "messageId": "={{ $('notify: extracting').item.json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {
              "parse_mode": "HTML"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "37945719-b7e1-4ae6-89d2-d5fc39f500f3",
          "name": "Edit Fields",
          "type": "n8n-nodes-base.set",
          "position": [
            752,
            576
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "5a72ac2f-e722-4121-91ff-d758520f7fdb",
                  "name": "combine trim & false url",
                  "type": "string",
                  "value": "={{ $('🔧 Prepare URL for Extraction').item.json.cleanUrl }}{{ $json._company_logo }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "486d3276-9a3e-4a78-8ee8-ea56cc2da643",
          "name": "📥 Download Company Logo - Alt",
          "type": "n8n-nodes-base.httpRequest",
          "onError": "continueRegularOutput",
          "position": [
            976,
            576
          ],
          "parameters": {
            "url": "={{ $json['combine trim & false url'] }}",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "file"
                }
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "7bbac7a6-8800-42c7-a72d-576f8df60aeb",
          "name": "☁️ Upload Logo to WordPress - Alt",
          "type": "n8n-nodes-base.httpRequest",
          "onError": "continueRegularOutput",
          "position": [
            1200,
            576
          ],
          "parameters": {
            "url": "https://yourweb.es/wp-json/wp/v2/media",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "contentType": "binaryData",
            "sendHeaders": true,
            "authentication": "predefinedCredentialType",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Disposition",
                  "value": "=attachment; filename=\"logo-{{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.company }}.jpeg\""
                },
                {
                  "name": "Content-Type",
                  "value": "image/jpeg"
                }
              ]
            },
            "inputDataFieldName": "data",
            "nodeCredentialType": "wordpressApi"
          },
          "retryOnFail": true,
          "typeVersion": 4.2
        },
        {
          "id": "b8b9261a-0298-4548-bf93-e8d86a2b68fb",
          "name": "📦 Format Final Job Post Data - Alt",
          "type": "n8n-nodes-base.set",
          "position": [
            1424,
            576
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "title",
                  "name": "title",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.title }}"
                },
                {
                  "id": "content",
                  "name": "content",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.html }}\n"
                },
                {
                  "id": "job_listing_type",
                  "name": "job_listing_type",
                  "type": "array",
                  "value": "=[{{ $('🧮 Map Job Type & Category IDs').item.json.fixType[0] }}]"
                },
                {
                  "id": "job_listing_category",
                  "name": "job_listing_category",
                  "type": "array",
                  "value": "={{ $('🧮 Map Job Type & Category IDs').item.json.fixCategory }}"
                },
                {
                  "id": "_job_location",
                  "name": "_job_location",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.location }}"
                },
                {
                  "id": "_company_name",
                  "name": "_company_name",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.company }}"
                },
                {
                  "id": "_company_logo",
                  "name": "_company_logo",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.logo || \"http://www.notodoanimacion.es/wp-content/uploads/2025/06/logo-Sony-Pictures-Animation-1.png\" }}"
                },
                {
                  "id": "_application",
                  "name": "_application",
                  "type": "string",
                  "value": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.original_link || $('🔧 Prepare URL for Extraction').item.json.text }}"
                },
                {
                  "id": "7df4886d-0180-4279-9bff-f8f3ebc2961c",
                  "name": "companyLogo",
                  "type": "string",
                  "value": "={{ $json.guid.raw }}"
                },
                {
                  "id": "b9a766da-8bd6-4950-a243-8005c61c3ca9",
                  "name": "status",
                  "type": "string",
                  "value": "publish"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "c2d5191b-f159-4430-9c19-93996038cbf8",
          "name": "✅ All Fields Available? - Alt",
          "type": "n8n-nodes-base.if",
          "onError": "continueErrorOutput",
          "position": [
            1648,
            560
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "loose"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "8f4efbe7-3fc1-4be3-b4c6-f2b7b1f8f00a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.title }}",
                  "rightValue": ""
                },
                {
                  "id": "8194f924-3ef7-4056-a909-3499d8c116b3",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.job_listing_category }}",
                  "rightValue": ""
                },
                {
                  "id": "373f2081-f7ac-4313-a472-6d10770dd17a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.job_listing_type }}",
                  "rightValue": ""
                },
                {
                  "id": "74166a2f-57e8-4fed-8bcf-cd240779543a",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json._job_location }}",
                  "rightValue": ""
                },
                {
                  "id": "bdee50a8-cdff-4570-b88a-8cf560468fa2",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json._application }}",
                  "rightValue": ""
                }
              ]
            },
            "looseTypeValidation": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "52dc5cda-9f9e-4762-a772-f6eda4009951",
          "name": "📊 Did Publish Succeed?1",
          "type": "n8n-nodes-base.if",
          "position": [
            2096,
            576
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "loose"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "0e5d1113-a6fe-49bf-bf56-848c852875f6",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.id }}",
                  "rightValue": ""
                },
                {
                  "id": "d00af776-6323-4c62-84f1-30de39d256d0",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.link }}",
                  "rightValue": ""
                },
                {
                  "id": "0cd4f4d5-8c1c-4c98-8d7b-1995a56fcf3f",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.categories }}",
                  "rightValue": ""
                },
                {
                  "id": "2e8ab092-9500-44e9-a32f-99a00dbb7a28",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.date }}",
                  "rightValue": ""
                }
              ]
            },
            "looseTypeValidation": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "734362fc-4cf0-4845-84d1-b82da537f549",
          "name": "📨 Notify Success - Alt",
          "type": "n8n-nodes-base.telegram",
          "position": [
            2320,
            576
          ],
          "webhookId": "4550abb4-5baa-427b-9495-9e6ea219652e",
          "parameters": {
            "text": "=Hello, {{ $('📥 New Job Link via Telegram').item.json.message.from.first_name }}\nJob successfully extracted and Posted! \nmissing value has fill with default image\n\nOriginal Url: {{ $('🔧 Prepare URL for Extraction').item.json.message.text.replace(/_/g, '\\\\_') }}\n\nTitle: {{ $('🚀 Publish to Yourweb - Alt').item.json.title.raw.replace(/_/g, '\\\\_') }}\nCategory: {{ $('🚀 Publish to Yourweb - Alt').item.json.job_listing_category }}\nJob Type: {{ $('🚀 Publish to Yourweb - Alt').item.json.job_listing_types }}\nLogo: {{ $('🚀 Publish to Yourweb - Alt').item.json.meta._company_logo.replace(/_/g, '\\\\_') }}\n\nPublished Post: {{ $json.guid.rendered.replace(/_/g, '\\\\_') }}",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "c1387f6c-95c1-47c2-92f6-535795f8a7d8",
          "name": "📨 Notify Failed - Alt",
          "type": "n8n-nodes-base.telegram",
          "position": [
            2320,
            768
          ],
          "webhookId": "4550abb4-5baa-427b-9495-9e6ea219652e",
          "parameters": {
            "text": "=Hello, {{ $('📥 New Job Link via Telegram').first().json.message.from.first_name }}\nJob Failed!\n\nPlease Check your workflow or contact khairul https://wa.me/6285155431253",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": true
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "4c33212f-24f9-4761-98e9-2353861092df",
          "name": "📊 Did Publish Succeed?2",
          "type": "n8n-nodes-base.if",
          "position": [
            976,
            112
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "loose"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "0e5d1113-a6fe-49bf-bf56-848c852875f6",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.id }}",
                  "rightValue": ""
                },
                {
                  "id": "d00af776-6323-4c62-84f1-30de39d256d0",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.link }}",
                  "rightValue": ""
                },
                {
                  "id": "0cd4f4d5-8c1c-4c98-8d7b-1995a56fcf3f",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.categories }}",
                  "rightValue": ""
                },
                {
                  "id": "2e8ab092-9500-44e9-a32f-99a00dbb7a28",
                  "operator": {
                    "type": "boolean",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.date }}",
                  "rightValue": ""
                }
              ]
            },
            "looseTypeValidation": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "f6621fcd-cd0c-437c-850e-5aec4aced243",
          "name": "notify: failed extract",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -1440,
            432
          ],
          "webhookId": "51bfc648-4499-4f61-9aa4-61e6b7b617dc",
          "parameters": {
            "text": "=Failed in extract using Jina... please inform khairul",
            "chatId": "={{ $('notify: extracting').item.json.result.chat.id }}",
            "messageId": "={{ $('notify: extracting').item.json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {}
          },
          "typeVersion": 1.2
        },
        {
          "id": "f157c006-e030-4022-af65-b31c622ffc84",
          "name": "Error",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1200,
            272
          ],
          "webhookId": "4550abb4-5baa-427b-9495-9e6ea219652e",
          "parameters": {
            "text": "=Hello, {{ $('📥 New Job Link via Telegram').first().json.message.from.first_name }}\nJob Failed!\n\nPlease Check your workflow or contact khairul https://wa.me/6285155431253",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "6850d7c9-d6c3-4238-bfba-26f1a293a2eb",
          "name": "changing method",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1200,
            -144
          ],
          "webhookId": "033439cf-08eb-4df7-be1a-3a617027ce35",
          "parameters": {
            "text": "=Trying Second Attempt!\n<i>Filling empty field with default value...</i>",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "messageId": "={{ $json.result.message_id }}",
            "operation": "editMessageText",
            "additionalFields": {
              "parse_mode": "HTML"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "3d7a6168-1425-4761-83a0-217df65810c0",
          "name": "Wait1",
          "type": "n8n-nodes-base.wait",
          "position": [
            1424,
            -144
          ],
          "webhookId": "20506072-3a7d-4db6-a558-736d917ca82c",
          "parameters": {
            "amount": 2
          },
          "typeVersion": 1.1
        },
        {
          "id": "27c05704-1592-4113-9164-3708cf95939a",
          "name": "Wait2",
          "type": "n8n-nodes-base.wait",
          "position": [
            976,
            -144
          ],
          "webhookId": "54770112-e93a-4b47-b63a-7e98fc2db80f",
          "parameters": {
            "amount": 2
          },
          "typeVersion": 1.1
        },
        {
          "id": "5cd30671-f93e-4d97-83dd-50d2cc61013e",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3472,
            176
          ],
          "parameters": {
            "color": 7,
            "width": 660,
            "height": 260,
            "content": "## Monitoring - leave as it is"
          },
          "typeVersion": 1
        },
        {
          "id": "d5f5cf7f-64df-4e26-a78b-69927c65d92e",
          "name": "Error Trigger",
          "type": "n8n-nodes-base.errorTrigger",
          "position": [
            -3408,
            272
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "3706df36-ce1e-4b6a-9c08-ab6e767f9654",
          "name": "Kirim ke Telegram",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -2960,
            272
          ],
          "webhookId": "13c616bf-a3ad-4035-998a-1dfe6021b89f",
          "parameters": {
            "text": "={{ $json.message }}",
            "chatId": "your-chat-id",
            "additionalFields": {
              "parse_mode": "HTML"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "530ec964-11ab-43e1-8411-b26eabd7c845",
          "name": "Code",
          "type": "n8n-nodes-base.code",
          "position": [
            -3184,
            272
          ],
          "parameters": {
            "jsCode": "// Perfect error access untuk N8N v1.99.1\nconst errorData = $input.first().json;\nconst execution = errorData.execution;\nconst workflow = errorData.workflow;\nconst error = execution.error;\n\nconst message = `🚨 <b>WORKFLOW ERROR</b>\\n\\n` +\n  `📋 Workflow: <b>${workflow.name}</b>\\n` +\n  `⚙️ Node: <code>${error.node.name}</code>\\n` +\n  `❌ Error: <code>${error.message}</code>\\n` +\n  `📝 Description: <i>${error.description}</i>\\n` +\n  `🕐 Waktu: ${new Date(error.timestamp).toLocaleString('id-ID')}\\n` +\n  `🔍 Execution: <a href=\"${execution.url}\">${execution.id}</a>\\n` +\n  `⚠️ Level: ${error.level.toUpperCase()}`;\n\nreturn {\n  message: message,\n  parse_mode: 'HTML',\n  chat_id: '621412350'\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "340a435c-0f51-4136-a7d3-57a847bd490c",
          "name": "Publiched!",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1200,
            64
          ],
          "webhookId": "4550abb4-5baa-427b-9495-9e6ea219652e",
          "parameters": {
            "text": "=Hello, {{ $('📥 New Job Link via Telegram').item.json.message.from.first_name }}\nJob successfully extracted and Posted! \n\nOriginal Url: {{ $('🔧 Prepare URL for Extraction').item.json.message.text.replace(/_/g, '\\\\_') }}\n\nTitle: {{ $('🚀 Publish to Your web').item.json.title.rendered }}\nCategory: {{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.categories }}\nJob Type: {{ $('🧠 Extract Job Data with GPT').item.json.choices[0].message.content.job_type }}\nLogo: {{ $('🚀 Publish to Your web').item.json.meta._company_logo }}\n\nPublished Post: {{ $json.guid.rendered.replace(/_/g, '\\\\_') }}",
            "chatId": "={{ $('📥 New Job Link via Telegram').first().json.message.chat.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "80395252-aa0f-4f96-b49c-4c6a461fb2f4",
          "name": "🚀 Publish to Your web",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            752,
            112
          ],
          "parameters": {
            "url": "https://www.yourweb.es/wp-json/wp/v2/job-listings",
            "method": "POST",
            "options": {},
            "jsonBody": "={\n  \"title\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.title) }},\n  \"content\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.content) }},\n  \"status\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.status) }},\n  \"job_listing_types\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.job_listing_type) }},\n  \"job_listing_category\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.job_listing_category) }},\n  \"meta\": {\n    \"_job_location\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._job_location) }},\n    \"_company_name\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._company_name) }},\n    \"_company_logo\": {{ JSON.stringify($json.companyLogo) }},\n    \"_application\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._application) }}\n  }\n}",
            "sendBody": true,
            "specifyBody": "json",
            "authentication": "predefinedCredentialType",
            "nodeCredentialType": "wordpressApi"
          },
          "retryOnFail": true,
          "typeVersion": 4.2
        },
        {
          "id": "f7c7f5fe-fd08-43a5-a2d7-536d79ac2425",
          "name": "🚀 Publish to Yourweb - Alt",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            1872,
            576
          ],
          "parameters": {
            "url": "https://www.yourweb.es/wp-json/wp/v2/job-listings",
            "method": "POST",
            "options": {},
            "jsonBody": "={\n  \"title\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.title) }},\n  \"content\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.content) }},\n  \"status\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.status) }},\n  \"job_listing_types\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.job_listing_type) }},\n  \"job_listing_category\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json.job_listing_category) }},\n  \"meta\": {\n    \"_job_location\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._job_location) }},\n    \"_company_name\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._company_name) }},\n    \"_company_logo\": {{ JSON.stringify($json._company_logo) }},\n    \"_application\": {{ JSON.stringify($('📦 Format Final Job Post Data').item.json._application) }}\n  }\n}",
            "sendBody": true,
            "specifyBody": "json",
            "authentication": "predefinedCredentialType",
            "nodeCredentialType": "wordpressApi"
          },
          "retryOnFail": true,
          "typeVersion": 4.2
        },
        {
          "id": "3a79707a-fb2a-4ad4-9222-48887e67f5e1",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -832,
            -32
          ],
          "parameters": {
            "color": 3,
            "width": 370,
            "height": 100,
            "content": "## ☕ Appreciate This Workflow?\n\nSupport the creator by sending coffee:\n\n**PayPal:** [paypal.me/khmuhtadin](https://paypal.me/khmuhtadin)\n\nThank you! 🚀"
          },
          "typeVersion": 1
        }
      ],
      "pinData": {},
      "connections": {
        "If": {
          "main": [
            [
              {
                "node": "notify: success extract",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "notify: failed extract",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Code": {
          "main": [
            [
              {
                "node": "Kirim ke Telegram",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Wait": {
          "main": [
            [
              {
                "node": "notify: extracting",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Wait2": {
          "main": [
            [
              {
                "node": "changing method",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract": {
          "main": [
            [
              {
                "node": "If",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "notify: error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Data": {
          "main": [
            [
              {
                "node": "Loop Over Items",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Create Url": {
          "main": [
            [
              {
                "node": "📥 Download Company Logo",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "valid url?": {
          "main": [
            [
              {
                "node": "notify: processing job",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "notify: wrong url",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Edit Fields": {
          "main": [
            [
              {
                "node": "📥 Download Company Logo - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Search File": {
          "main": [
            [
              {
                "node": "Get Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "if not valid": {
          "main": [
            [
              {
                "node": "Wait2",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Error Trigger": {
          "main": [
            [
              {
                "node": "Code",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Loop Over Items": {
          "main": [
            [],
            [
              {
                "node": "Supabase Vector Store",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "changing method": {
          "main": [
            [
              {
                "node": "Wait1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Embeddings OpenAI": {
          "ai_embedding": [
            [
              {
                "node": "Supabase Vector Store",
                "type": "ai_embedding",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Embeddings OpenAI1": {
          "ai_embedding": [
            [
              {
                "node": "Supabase Vector Store1",
                "type": "ai_embedding",
                "index": 0
              }
            ]
          ]
        },
        "notify: extracting": {
          "main": [
            [
              {
                "node": "Extract",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Default Data Loader": {
          "ai_document": [
            [
              {
                "node": "Supabase Vector Store",
                "type": "ai_document",
                "index": 0
              }
            ]
          ]
        },
        "Google Drive Trigger": {
          "main": [
            [
              {
                "node": "Search File",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Postgres Chat Memory": {
          "ai_memory": [
            [
              {
                "node": "AI Agent",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Supabase Vector Store": {
          "main": [
            [
              {
                "node": "Loop Over Items",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Supabase Vector Store1": {
          "ai_tool": [
            [
              {
                "node": "🧠 Extract Job Data with GPT",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "notify: openai success": {
          "main": [
            [
              {
                "node": "Create Url",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "notify: processing job": {
          "main": [
            [
              {
                "node": "Wait",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "notify: success extract": {
          "main": [
            [
              {
                "node": "🧠 Extract Job Data with GPT",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🚀 Publish to Your web": {
          "main": [
            [
              {
                "node": "📊 Did Publish Succeed?2",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "✅ All Fields Available?": {
          "main": [
            [
              {
                "node": "🚀 Publish to Your web",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "if not valid",
                "type": "main",
                "index": 0
              },
              {
                "node": "Edit Fields",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📊 Did Publish Succeed?1": {
          "main": [
            [
              {
                "node": "📨 Notify Success - Alt",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "📨 Notify Failed - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📊 Did Publish Succeed?2": {
          "main": [
            [
              {
                "node": "Publiched!",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📥 Download Company Logo": {
          "main": [
            [
              {
                "node": "☁️ Upload Logo to WordPress",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🚀 Publish to Yourweb - Alt": {
          "main": [
            [
              {
                "node": "📊 Did Publish Succeed?1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📥 New Job Link via Telegram": {
          "main": [
            [
              {
                "node": "🔧 Prepare URL for Extraction",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🧠 Extract Job Data with GPT": {
          "main": [
            [
              {
                "node": "🧮 Map Job Type & Category IDs",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "notify: error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "☁️ Upload Logo to WordPress": {
          "main": [
            [
              {
                "node": "📦 Format Final Job Post Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "✅ All Fields Available? - Alt": {
          "main": [
            [
              {
                "node": "🚀 Publish to Yourweb - Alt",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "📨 Notify Failed - Alt",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "📨 Notify Failed - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📦 Format Final Job Post Data": {
          "main": [
            [
              {
                "node": "✅ All Fields Available?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🔧 Prepare URL for Extraction": {
          "main": [
            [
              {
                "node": "📚 Load Valid Job Types & Categories",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📥 Download Company Logo - Alt": {
          "main": [
            [
              {
                "node": "☁️ Upload Logo to WordPress - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🧮 Map Job Type & Category IDs": {
          "main": [
            [
              {
                "node": "notify: openai success",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Recursive Character Text Splitter": {
          "ai_textSplitter": [
            [
              {
                "node": "Default Data Loader",
                "type": "ai_textSplitter",
                "index": 0
              }
            ]
          ]
        },
        "☁️ Upload Logo to WordPress - Alt": {
          "main": [
            [
              {
                "node": "📦 Format Final Job Post Data - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📦 Format Final Job Post Data - Alt": {
          "main": [
            [
              {
                "node": "✅ All Fields Available? - Alt",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📚 Load Valid Job Types & Categories": {
          "main": [
            [
              {
                "node": "valid url?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 57,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 6
        },
        "n8n-nodes-base.set": {
          "count": 5
        },
        "n8n-nodes-base.code": {
          "count": 3
        },
        "n8n-nodes-base.wait": {
          "count": 3
        },
        "n8n-nodes-base.jinaAi": {
          "count": 1
        },
        "n8n-nodes-base.telegram": {
          "count": 14
        },
        "n8n-nodes-base.stickyNote": {
          "count": 3
        },
        "n8n-nodes-base.googleDrive": {
          "count": 2
        },
        "n8n-nodes-base.httpRequest": {
          "count": 6
        },
        "n8n-nodes-base.errorTrigger": {
          "count": 1
        },
        "n8n-nodes-base.splitInBatches": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.telegramTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.openAi": {
          "count": 1
        },
        "n8n-nodes-base.googleDriveTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.embeddingsOpenAi": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.memoryPostgresChat": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.vectorStoreSupabase": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.documentDefaultDataLoader": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Khairul Muhtadin",
      "username": "khmuhtadin",
      "bio": "",
      "verified": true,
      "links": [
        "https://khmuhtadin.com"
      ],
      "avatar": "https://gravatar.com/avatar/5c05e658f8405977c4ff73ba225c5d0dbdcbf9aff6436e1c740bd86907a07a48?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 12,
        "icon": "fa:bug",
        "name": "n8n-nodes-base.errorTrigger",
        "codex": {
          "data": {
            "details": "In n8n, when a workflow execution fails, it can start another workflow. This second workflow can be any arbitrary workflow on your n8n instance. Use the Error Trigger node as your Trigger in the Error workflow.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in n8n"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Error Trigger",
          "color": "#0000FF"
        },
        "iconData": {
          "icon": "bug",
          "type": "icon"
        },
        "displayName": "Error Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "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": 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": 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": 49,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegram",
        "codex": {
          "data": {
            "alias": [
              "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/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "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/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                },
                {
                  "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/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "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.telegram/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Telegram"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 50,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegramTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/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/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/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "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/trigger-nodes/n8n-nodes-base.telegramtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Telegram Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 58,
        "icon": "file:googleDrive.svg",
        "name": "n8n-nodes-base.googleDrive",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/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/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.googledrive/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Google Drive"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Google Drive",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          }
        ]
      },
      {
        "id": 514,
        "icon": "fa:pause-circle",
        "name": "n8n-nodes-base.wait",
        "codex": {
          "data": {
            "alias": [
              "pause",
              "sleep",
              "delay",
              "timeout"
            ],
            "resources": {
              "generic": [
                {
                  "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/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.wait/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Flow"
              ]
            }
          }
        },
        "group": "[\"organization\"]",
        "defaults": {
          "name": "Wait",
          "color": "#804050"
        },
        "iconData": {
          "icon": "pause-circle",
          "type": "icon"
        },
        "displayName": "Wait",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 531,
        "icon": "file:googleDrive.svg",
        "name": "n8n-nodes-base.googleDriveTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/trigger-nodes/n8n-nodes-base.googledrivetrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Google Drive Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Google Drive Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          }
        ]
      },
      {
        "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": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "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": 1141,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Embeddings"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Embeddings OpenAI"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "Embeddings OpenAI",
        "typeVersion": 1,
        "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": 1191,
        "icon": "fa:grip-lines-vertical",
        "name": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Text Splitters"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Recursive Character Text Splitter"
        },
        "iconData": {
          "icon": "grip-lines-vertical",
          "type": "icon"
        },
        "displayName": "Recursive Character Text Splitter",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1231,
        "icon": "file:supabase.svg",
        "name": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Vector Stores",
                "Tools",
                "Root Nodes"
              ],
              "Tools": [
                "Other Tools"
              ],
              "Vector Stores": [
                "Other Vector Stores"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Supabase Vector Store"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDkiIGhlaWdodD0iMTEzIiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNNjMuNzA4IDExMC4yODRjLTIuODYgMy42MDEtOC42NTggMS42MjgtOC43MjctMi45N2wtMS4wMDctNjcuMjUxaDQ1LjIyYzguMTkgMCAxMi43NTggOS40NiA3LjY2NSAxNS44NzR6Ii8+PHBhdGggZmlsbD0idXJsKCNiKSIgZmlsbC1vcGFjaXR5PSIuMiIgZD0iTTYzLjcwOCAxMTAuMjg0Yy0yLjg2IDMuNjAxLTguNjU4IDEuNjI4LTguNzI3LTIuOTdsLTEuMDA3LTY3LjI1MWg0NS4yMmM4LjE5IDAgMTIuNzU4IDkuNDYgNy42NjUgMTUuODc0eiIvPjxwYXRoIGZpbGw9IiMzRUNGOEUiIGQ9Ik00NS4zMTcgMi4wNzFjMi44Ni0zLjYwMSA4LjY1Ny0xLjYyOCA4LjcyNiAyLjk3bC40NDIgNjcuMjUxSDkuODNjLTguMTkgMC0xMi43NTktOS40Ni03LjY2NS0xNS44NzV6Ii8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNTMuOTc0IiB4Mj0iOTQuMTYzIiB5MT0iNTQuOTc0IiB5Mj0iNzEuODI5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzI0OTM2MSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNFQ0Y4RSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMzYuMTU2IiB4Mj0iNTQuNDg0IiB5MT0iMzAuNTc4IiB5Mj0iNjUuMDgxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3AvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+"
        },
        "displayName": "Supabase Vector Store",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1243,
        "icon": "file:binary.svg",
        "name": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Document Loaders"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Default Data Loader"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NjgiIGhlaWdodD0iMTAyNCI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTAgOTYwVjY0aDU3NmwxOTIgMTkydjcwNHptNzA0LTY0MEw1MTIgMTI4SDY0djc2OGg2NDB6TTMyMCA1MTJIMTI4VjI1NmgxOTJ6bS02NC0xOTJoLTY0djEyOGg2NHptMCA0NDhoNjR2NjRIMTI4di02NGg2NFY2NDBoLTY0di02NGgxMjh6bTI1Ni0zMjBoNjR2NjRIMzg0di02NGg2NFYzMjBoLTY0di02NGgxMjh6bTY0IDM4NEgzODRWNTc2aDE5MnptLTY0LTE5MmgtNjR2MTI4aDY0eiIvPjwvc3ZnPg=="
        },
        "displayName": "Default Data Loader",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1250,
        "icon": "file:openAi.svg",
        "name": "@n8n/n8n-nodes-langchain.openAi",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "ChatGPT",
              "Sora",
              "DallE",
              "whisper",
              "audio",
              "transcribe",
              "tts",
              "assistant"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Miscellaneous",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg1IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NiAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MSA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"
        },
        "displayName": "OpenAI",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1267,
        "icon": "file:postgres.svg",
        "name": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorypostgreschat/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "Other memories"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Postgres Chat Memory"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNzkgODEiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTc3LjM5MSA0Ny45MjJjLS40NjYtMS40MTItMS42ODgtMi4zOTYtMy4yNjgtMi42MzItLjc0NS0uMTExLTEuNTk4LS4wNjQtMi42MDguMTQ0LTEuNzYuMzYzLTMuMDY1LjUwMS00LjAxOC41MjggMy41OTYtNi4wNzIgNi41MjEtMTIuOTk3IDguMjA0LTE5LjUxNSAyLjcyMi0xMC41NCAxLjI2OC0xNS4zNDEtLjQzMi0xNy41MTNDNzAuNzcgMy4xODUgNjQuMjA2LjA5NyA1Ni4yODcuMDAyYy00LjIyNC0uMDUyLTcuOTMzLjc4Mi05Ljg2NyAxLjM4MmEzNyAzNyAwIDAgMC01Ljc3LS41MjhjLTMuODA5LS4wNjEtNy4xNzQuNzctMTAuMDUgMi40NzZhNDYgNDYgMCAwIDAtNy4wOTgtMS43ODJDMTYuNTYxLjQxMSAxMC45NjggMS4yOTkgNi44NzYgNC4xOSAxLjkyMiA3LjY4OS0uMzc1IDEzLjc3LjA1IDIyLjI2MmMuMTM1IDIuNjk2IDEuNjQzIDEwLjkgNC4wMTggMTguNjggMS4zNjUgNC40NzIgMi44MiA4LjE4NSA0LjMyNiAxMS4wMzggMi4xMzUgNC4wNDYgNC40MTkgNi40MjggNi45ODQgNy4yODQgMS40MzguNDc5IDQuMDQ5LjgxNCA2Ljc5Ny0xLjQ3M2E2IDYgMCAwIDAgMS40MjkgMS4yM2MuNzgzLjQ5NCAxLjc0Ljg5NyAyLjY5NiAxLjEzNiAzLjQ0Ni44NjIgNi42NzQuNjQ2IDkuNDI3LS41NjFsLjA0MSAxLjM2Mi4wNiAxLjg5OWMuMTYzIDQuMDY0LjQ0IDcuMjIzIDEuMjU5IDkuNDM0LjA0NS4xMjIuMTA1LjMwNy4xNjkuNTAzLjQwOSAxLjI1MSAxLjA5MiAzLjM0NiAyLjgzIDQuOTg3IDEuOCAxLjY5OSAzLjk3OCAyLjIyIDUuOTcyIDIuMjIgMSAwIDEuOTU1LS4xMzEgMi43OTItLjMxMSAyLjk4NC0uNjM5IDYuMzczLTEuNjE0IDguODI0LTUuMTA0IDIuMzE4LTMuMyAzLjQ0NC04LjI3IDMuNjQ4LTE2LjEwMWwuMDc0LS42MzQuMDQ4LS40MTQuNTQ2LjA0OC4xNDEuMDFjMy4wMzkuMTM4IDYuNzU1LS41MDYgOS4wMzctMS41NjYgMS44MDMtLjgzNyA3LjU4Mi0zLjg4OCA2LjIyMS04LjAwNyIvPjxwYXRoIGZpbGw9IiMzMzY3OTEiIGQ9Ik03Mi4xOTUgNDguNzIzYy05LjAzNiAxLjg2NC05LjY1Ny0xLjE5NS05LjY1Ny0xLjE5NSA5LjU0MS0xNC4xNTcgMTMuNTI5LTMyLjEyNyAxMC4wODctMzYuNTI1QzYzLjIzNS0uOTk0IDQ2Ljk4MSA0LjY4IDQ2LjcxIDQuODI3bC0uMDg3LjAxNmMtMS43ODUtLjM3MS0zLjc4My0uNTkxLTYuMDI5LS42MjgtNC4wODktLjA2Ny03LjE5IDEuMDcyLTkuNTQ0IDIuODU3IDAgMC0yOC45OTUtMTEuOTQ1LTI3LjY0NyAxNS4wMjMuMjg3IDUuNzM3IDguMjIzIDQzLjQxIDE3LjY4OSAzMi4wMzEgMy40Ni00LjE2MSA2LjgwMy03LjY3OSA2LjgwMy03LjY3OSAxLjY2IDEuMTAzIDMuNjQ4IDEuNjY2IDUuNzMyIDEuNDYzbC4xNjItLjEzN2E2LjMgNi4zIDAgMCAwIC4wNjUgMS42MmMtMi40MzkgMi43MjUtMS43MjIgMy4yMDMtNi41OTcgNC4yMDYtNC45MzMgMS4wMTctMi4wMzUgMi44MjYtLjE0MyAzLjI5OSAyLjI5NC41NzQgNy42IDEuMzg2IDExLjE4NS0zLjYzM2wtLjE0My41NzNjLjk1Ni43NjUgMS42MjYgNC45NzggMS41MTQgOC43OTdzLS4xODggNi40NDEuNTY1IDguNDg5IDEuNTAzIDYuNjU2IDcuOTEyIDUuMjgyYzUuMzU1LTEuMTQ4IDguMTMtNC4xMjEgOC41MTYtOS4wODEuMjc0LTMuNTI2Ljg5NC0zLjAwNS45MzMtNi4xNThsLjQ5Ny0xLjQ5M2MuNTczLTQuNzguMDkxLTYuMzIyIDMuMzktNS42MDVsLjgwMi4wN2MyLjQyOC4xMSA1LjYwNi0uMzkxIDcuNDcxLTEuMjU3IDQuMDE2LTEuODY0IDYuMzk4LTQuOTc2IDIuNDM4LTQuMTU4Ii8+PHBhdGggZD0iTTMyLjc0NyAyNC42NmMtLjgxNC0uMTEzLTEuNTUyLS4wMDgtMS45MjUuMjc0YS43LjcgMCAwIDAtLjI5Mi40N2MtLjA0Ny4zMzYuMTg4LjcwNy4zMzMuODk4LjQwOS41NDIgMS4wMDYuOTE1IDEuNTk4Ljk5N2EyIDIgMCAwIDAgLjI1Ni4wMThjLjk4NiAwIDEuODgzLS43NjggMS45NjItMS4zMzUuMDk5LS43MS0uOTMyLTEuMTgzLTEuOTMxLTEuMzIybTI2Ljk3NS4wMjJjLS4wNzgtLjU1Ni0xLjA2OC0uNzE1LTIuMDA3LS41ODRzLTEuODQ4LjU1NC0xLjc3MiAxLjExMmMuMDYxLjQzNC44NDQgMS4xNzQgMS43NzEgMS4xNzRxLjExNyAwIC4yMzctLjAxNmMuNjE5LS4wODYgMS4wNzMtLjQ3OSAxLjI4OC0uNzA1LjMyOS0uMzQ1LjUxOC0uNzMuNDg0LS45OG0xNS40NzcgMjMuODI4Yy0uMzQ1LTEuMDQyLTEuNDUzLTEuMzc3LTMuMjk2LS45OTctNS40NzEgMS4xMjktNy40My4zNDctOC4wNzMtLjEyNyA0LjI1Mi02LjQ3OCA3Ljc1LTE0LjMwOCA5LjYzNy0yMS42MTQuODk0LTMuNDYxIDEuMzg4LTYuNjc1IDEuNDI4LTkuMjk0LjA0NS0yLjg3Ni0uNDQ1LTQuOTg4LTEuNDU1LTYuMjc5LTQuMDcyLTUuMjAzLTEwLjA0OC03Ljk5NC0xNy4yODMtOC4wNy00Ljk3My0uMDU2LTkuMTc1IDEuMjE3LTkuOTkgMS41NzVhMjUgMjUgMCAwIDAtNS42MjItLjcyMmMtMy43MzQtLjA2LTYuOTYxLjgzNC05LjYzMyAyLjY1NWE0MyA0MyAwIDAgMC03LjgyOC0yLjA1MmMtNi4zNDItMS4wMjEtMTEuMzgxLS4yNDgtMTQuOTc4IDIuMy00LjI5MSAzLjA0LTYuMjcyIDguNDc1LTUuODg4IDE2LjE1Mi4xMjkgMi41ODMgMS42MDEgMTAuNTI5IDMuOTIzIDE4LjEzOSAzLjA1NyAxMC4wMTYgNi4zOCAxNS42ODYgOS44NzcgMTYuODUyYTQuNCA0LjQgMCAwIDAgMS40MDIuMjMyYzEuMjc2IDAgMi44MzktLjU3NSA0LjQ2Ni0yLjUzMWExNjEgMTYxIDAgMCAxIDYuMTU2LTYuOTY2IDkuOSA5LjkgMCAwIDAgNC40MjkgMS4xOTFsLjAxLjEyMWMtLjMxLjM2OC0uNTY0LjY5LS43ODEuOTY1LTEuMDcgMS4zNTgtMS4yOTMgMS42NDEtNC43MzggMi4zNTEtLjk4LjIwMi0zLjU4Mi43MzgtMy42MiAyLjU2My0uMDQxIDEuOTkzIDMuMDc2IDIuODMgMy40MzEgMi45MTkgMS4yMzguMzEgMi40My40NjMgMy41NjguNDYzIDIuNzY2IDAgNS4yLS45MDkgNy4xNDUtMi42NjgtLjA2IDcuMTA2LjIzNiAxNC4xMDcgMS4wODkgMTYuMjQxLjY5OSAxLjc0NiAyLjQwNiA2LjAxNCA3Ljc5OCA2LjAxNC43OTEgMCAxLjY2Mi0uMDkyIDIuNjItLjI5NyA1LjYyNy0xLjIwNyA4LjA3MS0zLjY5NCA5LjAxNi05LjE3Ny41MDYtMi45MyAxLjM3NC05LjkyOCAxLjc4Mi0xMy42ODIuODYyLjI2OSAxLjk3MS4zOTIgMy4xNy4zOTIgMi41MDEgMCA1LjM4Ny0uNTMxIDcuMTk3LTEuMzcyIDIuMDMzLS45NDQgNS43MDItMy4yNjEgNS4wMzctNS4yNzR6TTYxLjggMjMuMTQ3Yy0uMDE5IDEuMTA4LS4xNzEgMi4xMTQtLjMzMyAzLjE2NC0uMTc0IDEuMTI5LS4zNTQgMi4yOTctLjM5OSAzLjcxNS0uMDQ1IDEuMzc5LjEyOCAyLjgxNC4yOTQgNC4yLjMzNyAyLjgwMS42ODIgNS42ODUtLjY1NSA4LjUzMWExMSAxMSAwIDAgMS0uNTkyLTEuMjE4Yy0uMTY2LS40MDMtLjUyNy0xLjA1LTEuMDI3LTEuOTQ2LTEuOTQ0LTMuNDg3LTYuNDk3LTExLjY1Mi00LjE2Ny0xNC45ODQuNjk0LS45OTIgMi40NTYtMi4wMTEgNi44NzktMS40NjN6TTU2LjQzOSA0LjM3NGM2LjQ4Mi4xNDMgMTEuNjA5IDIuNTY4IDE1LjI0IDcuMjA3IDIuNzg0IDMuNTU4LS4yODIgMTkuNzQ5LTkuMTU4IDMzLjcxNmwtLjI2OS0uMzM5LS4xMTItLjE0YzIuMjk0LTMuNzg4IDEuODQ1LTcuNTM2IDEuNDQ2LTEwLjg1OS0uMTY0LTEuMzY0LS4zMTktMi42NTItLjI4LTMuODYxLjA0MS0xLjI4My4yMS0yLjM4Mi4zNzQtMy40NDYuMjAyLTEuMzExLjQwNy0yLjY2Ny4zNS00LjI2NWExLjggMS44IDAgMCAwIC4wMzctLjYwMWMtLjE0NC0xLjUzMy0xLjg5NC02LjEyLTUuNDYyLTEwLjI3My0xLjk1MS0yLjI3MS00Ljc5Ny00LjgxMy04LjY4Mi02LjUyN2EyOS4zIDI5LjMgMCAwIDEgNi41MTUtLjYxMnpNMjAuMTY3IDUzLjI5OGMtMS43OTMgMi4xNTUtMy4wMzEgMS43NDItMy40MzggMS42MDctMi42NTMtLjg4NS01LjczLTYuNDkxLTguNDQ0LTE1LjM4Mi0yLjM0OC03LjY5My0zLjcyLTE1LjQyOC0zLjgyOS0xNy41OTctLjM0My02Ljg2IDEuMzItMTEuNjQxIDQuOTQzLTE0LjIxIDUuODk2LTQuMTgxIDE1LjU4OS0xLjY3OSAxOS40ODQtLjQwOWwtLjE3LjE2M2MtNi4zOTEgNi40NTUtNi4yNCAxNy40ODMtNi4yMjQgMTguMTU3YTIyIDIyIDAgMCAwIC4wNTEgMS4xMzVjLjExIDEuODU1LjMxNSA1LjMwNy0uMjMyIDkuMjE3LS41MDggMy42MzMuNjEyIDcuMTg5IDMuMDcyIDkuNzU2cS4zODMuMzk4Ljc5NS43NWExNjQgMTY0IDAgMCAwLTYuMDA4IDYuODE0em02LjgzLTkuMTEzYy0xLjk4My0yLjA2OS0yLjg4NC00Ljk0Ny0yLjQ3MS03Ljg5Ni41NzctNC4xMy4zNjQtNy43MjcuMjUtOS42NTlsLS4wMzktLjY5NGMuOTM0LS44MjggNS4yNjEtMy4xNDYgOC4zNDYtMi40MzkgMS40MDguMzIzIDIuMjY2IDEuMjgxIDIuNjIzIDIuOTMxIDEuODQ2IDguNTM5LjI0NCAxMi4wOTgtMS4wNDMgMTQuOTU3LS4yNjUuNTg5LS41MTYgMS4xNDYtLjczIDEuNzIybC0uMTY2LjQ0NWMtLjQyIDEuMTI2LS44MTEgMi4xNzMtMS4wNTMgMy4xNjctMi4xMDgtLjAwNi00LjE1OS0uOTA3LTUuNzE4LTIuNTM0em0uMzI0IDExLjUxNmE1IDUgMCAwIDEtMS40OTQtLjY0MmMuMjcxLS4xMjguNzU0LS4zMDEgMS41OTEtLjQ3NCA0LjA1Mi0uODM0IDQuNjc4LTEuNDIzIDYuMDQ1LTMuMTU4LjMxMy0uMzk4LjY2OS0uODQ5IDEuMTYtMS4zOTguNzMzLS44MjEgMS4wNjgtLjY4MiAxLjY3Ni0uNDMuNDkzLjIwNC45NzIuODIxIDEuMTY3IDEuNTAxLjA5Mi4zMjEuMTk1LjkzLS4xNDMgMS40MDQtMi44NTUgMy45OTctNy4wMTUgMy45NDYtMTAuMDAzIDMuMTk4em0yMS4yMDcgMTkuNzM1Yy00Ljk1NyAxLjA2Mi02LjcxMy0xLjQ2Ny03Ljg2OS00LjM1OS0uNzQ3LTEuODY3LTEuMTEzLTEwLjI4NS0uODUzLTE5LjU4MmExLjEgMS4xIDAgMCAwLS4wNDgtLjM1NiA1IDUgMCAwIDAtLjEzOS0uNjU3Yy0uMzg3LTEuMzUzLTEuMzMxLTIuNDg0LTIuNDYyLTIuOTUzLS40NS0uMTg2LTEuMjc1LS41MjgtMi4yNjctLjI3NC4yMTItLjg3MS41NzgtMS44NTUuOTc2LTIuOTIxbC4xNjctLjQ0OGMuMTg4LS41MDUuNDIzLTEuMDI5LjY3My0xLjU4MyAxLjM0Ny0yLjk5MiAzLjE5Mi03LjA5MSAxLjE5LTE2LjM1LS43NS0zLjQ2OC0zLjI1NC01LjE2MS03LjA1LTQuNzY4LTIuMjc2LjIzNS00LjM1OCAxLjE1NC01LjM5NiAxLjY4cS0uMzM0LjE2OS0uNjE4LjMyOWMuMjktMy40OTQgMS4zODUtMTAuMDI0IDUuNDgxLTE0LjE1NiAyLjU3OS0yLjYwMSA2LjAxNC0zLjg4NiAxMC4xOTktMy44MTcgOC4yNDYuMTM1IDEzLjUzNCA0LjM2NyAxNi41MTggNy44OTMgMi41NzEgMy4wMzkgMy45NjQgNi4xIDQuNTIgNy43NTEtNC4xNzktLjQyNS03LjAyMi40LTguNDYzIDIuNDYtMy4xMzUgNC40ODEgMS43MTUgMTMuMTc4IDQuMDQ2IDE3LjM1OC40MjcuNzY2Ljc5NiAxLjQyOC45MTIgMS43MDkuNzU5IDEuODM5IDEuNzQyIDMuMDY3IDIuNDU5IDMuOTY0LjIyLjI3NS40MzMuNTQxLjU5Ni43NzQtMS4yNjYuMzY1LTMuNTM5IDEuMjA4LTMuMzMyIDUuNDIyLS4xNjcgMi4xMTUtMS4zNTYgMTIuMDE2LTEuOTU5IDE1LjUxNC0uNzk3IDQuNjIxLTIuNDk3IDYuMzQzLTcuMjc5IDcuMzY4em0yMC42OTMtMjMuNjhjLTEuMjk0LjYwMS0zLjQ2IDEuMDUyLTUuNTE4IDEuMTQ4LTIuMjczLjEwNy0zLjQzLS4yNTUtMy43MDItLjQ3Ny0uMTI4LTIuNjI2Ljg1LTIuOTAxIDEuODg0LTMuMTkxLjE2My0uMDQ2LjMyMS0uMDkuNDc0LS4xNDRhNCA0IDAgMCAwIC4zMTMuMjNjMS44MjcgMS4yMDYgNS4wODUgMS4zMzYgOS42ODUuMzg2bC4wNS0uMDFjLS42Mi41OC0xLjY4MiAxLjM1OS0zLjE4NyAyLjA1OHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Postgres Chat Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1297,
        "icon": "file:jinaAi.svg",
        "name": "n8n-nodes-base.jinaAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jinaai/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/jinaai/"
                }
              ]
            },
            "categories": [
              "Miscellaneous"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Jina AI"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4cHgiIGhlaWdodD0iMTI4cHgiIHZpZXdCb3g9IjAgMCAxMjggMTI4IiB2ZXJzaW9uPSIxLjEiPgo8ZyBpZD0ic3VyZmFjZTEiPgo8cGF0aCBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiIGQ9Ik0gMzUuMjQyMTg4IDExNC4yMTg3NSBDIDQ4LjgxNjQwNiAxMTQuMjE4NzUgNTkuODIwMzEyIDEwMy4yMTQ4NDQgNTkuODIwMzEyIDg5LjY0MDYyNSBDIDU5LjgyMDMxMiA3Ni4wNjY0MDYgNDguODE2NDA2IDY1LjA2MjUgMzUuMjQyMTg4IDY1LjA2MjUgQyAyMS42Njc5NjkgNjUuMDYyNSAxMC42NjQwNjIgNzYuMDY2NDA2IDEwLjY2NDA2MiA4OS42NDA2MjUgQyAxMC42NjQwNjIgMTAzLjIxNDg0NCAyMS42Njc5NjkgMTE0LjIxODc1IDM1LjI0MjE4OCAxMTQuMjE4NzUgWiBNIDExMS40MzM1OTQgMTAuNzQ2MDk0IEMgMTE0LjcxMDkzOCAxMC43NDYwOTQgMTE3LjMzMjAzMSAxMy4zNzEwOTQgMTE3LjMzMjAzMSAxNi42NDQ1MzEgTCAxMTcuMzMyMDMxIDY0LjY1NjI1IEMgMTE3LjMzMjAzMSA5Mi4wMTU2MjUgOTUuMjEwOTM4IDExNC4zMDQ2ODggNjguMTc1NzgxIDExNC42Mjg5MDYgTCA2OC4xNzU3ODEgNjQuNzM0Mzc1IEwgNjguMDE1NjI1IDE2LjU2NjQwNiBDIDY4LjAxNTYyNSAxMy4yODkwNjIgNzAuNjMyODEyIDEwLjY2Nzk2OSA3My45MTQwNjIgMTAuNjY3OTY5IEwgMTEyLjA4OTg0NCAxMC42Njc5NjkgWiBNIDExMS40MzM1OTQgMTAuNzQ2MDk0ICIvPgo8L2c+Cjwvc3ZnPgo="
        },
        "displayName": "Jina AI",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 11,
            "name": "Miscellaneous"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 17,
        "name": "HR"
      },
      {
        "id": 48,
        "name": "AI RAG"
      }
    ],
    "image": []
  }
}