{
  "workflow": {
    "id": 11526,
    "name": "Analyze high-priority tenders from Airtable to Slack for Go/No-Go approval",
    "views": 120,
    "recentViews": 1,
    "totalViews": 120,
    "createdAt": "2025-12-05T11:00:40.077Z",
    "description": "## 📊 Description\nStreamline management decision-making by automatically evaluating high-priority tenders, generating AI-powered executive summaries, and routing them for approval inside Slack. 🤖📩 This workflow pulls pending tenders from Airtable, uses GPT-4o-mini to evaluate urgency, business opportunity, and risk, and generates a structured summary with a Go/No-Go recommendation. Tenders that qualify are pushed to Slack with interactive approval buttons, and the final decision instantly updates Airtable and triggers a confirmation email to your bid team. Perfect for fast-moving procurement, bidding, and sales teams that require structured, high-quality tender assessments. 📊⚡\n\n## 🔁 What This Template Does\n1️⃣ Runs daily via Schedule Trigger to fetch high-priority pending tenders from Airtable. ⏰\n 2️⃣ Sends each tender to the AI agent for evaluation (urgency, risk, opportunity). 🤖\n 3️⃣ Generates structured JSON output:\n — urgency\n — priorityScore\n — executive summary\n — Go/No-Go recommendation\n — reasoning\n 4️⃣ Formats AI output for Slack review and Airtable updates. 📝\n 5️⃣ Checks if tender qualifies as “High urgency + High score + Go.” 🚦\n 6️⃣ Sends interactive Slack message with Approve/Reject buttons. 💬\n 7️⃣ If approved → updates Airtable status to Approved and sends Gmail confirmation. 📧\n 8️⃣ If rejected or low-score → updates Airtable status accordingly. ✏️\n 9️⃣ If no priority tenders exist → sends fallback Slack notification. 📭\n\n## ⭐ Key Benefits\n✅ Eliminates manual tender review and scoring\n ✅ AI creates consistent, executive-ready summaries\n ✅ Fast approval flow inside Slack with built-in decision logging\n ✅ Clear Go/No-Go framework for quality tender selection\n ✅ Updates Airtable automatically with final decision\n ✅ Sends email confirmation for approved tenders — ensuring next steps start immediately\n\n## 🧩 Features\nDaily Airtable lookup for high-priority tenders\nGPT-4o-mini AI scoring & structured evaluation\nAutomatic Go/No-Go decision logic\nSlack interactive approval (Approve / Reject)\nAuto-update to Airtable (Status = Approved / Pending)\nGmail confirmation email to the bid team\nJSON output parser for reliable AI formatting\nTender link embedding for quick access\n\n## 🔐 Requirements\nAirtable Personal Access Token\nOpenAI API key (GPT-4o-mini)\nSlack API credentials\nGmail OAuth2 credentials\nAirtable table with tender fields (Priority, Status, Summary, Dates, etc.)\n\n## 🎯 Target Audience\nProcurement teams evaluating multiple tenders\nManagement teams needing fast approval workflows\nBusiness development & bidding teams\nCompanies tracking tenders in Airtable\nOrganizations adopting AI-assisted decision processes\n",
    "workflow": {
      "id": "nJczKJtEWmzqltAb",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Analyze high-priority tenders from Airtable to Slack for Go/No-Go approval",
      "tags": [],
      "nodes": [
        {
          "id": "2d6c2104-638f-4610-ad67-28c27b711445",
          "name": "Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -144,
            128
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "triggerAtHour": 9
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "cf09573d-ce4e-4fd0-8380-a7d95bd4ee24",
          "name": "Parse AI Output (Structured JSON)",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            560,
            352
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"urgency\": \"High | Medium | Low | Review Required\",\n  \"priorityScore\": 1,\n  \"summary\": \"Short executive-ready description\",\n  \"goNoGo\": \"Go | No-Go\",\n  \"reason\": \"Why this priority was assigned\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "c59eaac9-4d1c-445a-8557-e95234a46840",
          "name": "AI Model: GPT-4 Priority Engine",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            304,
            352
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {
              "temperature": 0.7
            }
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "ac5156e6-89d8-4caa-bdf5-a26b42886c39",
          "name": "AI Memory: Priority Context",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            432,
            352
          ],
          "parameters": {
            "sessionKey": "=\"AI Agenda\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "47a57079-fa4a-4500-b777-8c4e1adfcf94",
          "name": "AI Agent OpenAI — RFP Summary + Scoring with JSON output",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            368,
            128
          ],
          "parameters": {
            "text": "=Tender Details:\n- Tender Reference: {{ $json.TenderRefNo }}\n- Company: {{ $json[\"Company Name\"] }}\n- Country: {{ $json.Country }}\n- State: {{ $json.State }}\n- City: {{ $json.City }}\n- Tender Brief: {{ $json.TenderBrief }}\n- Opening Date: {{ $json[\"Opening Date\"] }}\n- Closing Date: {{ $json[\"Closing Date\"] }}\n- Link: {{ $json[\"Description Link\"] }}\n- Original Source: {{ $json.Original_Source }}\n- Status: {{ $json.Status }}\n\nEvaluation Rules:\n- Short deadlines (less than 3 days left) → High urgency\n- High-value technical/government tenders → High opportunity\n- New markets or compliance concerns → Higher risk\n- Private small tenders with long deadlines → Lower urgency\n",
            "options": {
              "systemMessage": "=You are an expert in procurement and tender evaluation. \nYour job is to analyze tenders and produce a priority score, clear summary, and decision recommendation.\n\nRULES:\n- Respond ONLY in valid JSON according to the schema provided\n- Do NOT include any commentary outside JSON format\n- Determine urgency: High / Medium / Low\n- Evaluate business opportunity and risk\n- If critical data like closing date is missing → urgency = \"Review Required\"\n- Highlight why the tender is important or risky\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "b3e3c54d-5cbd-44de-bb09-ff7952e2d1d4",
          "name": "Format Data From AI Agent",
          "type": "n8n-nodes-base.set",
          "position": [
            768,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "4e7e185e-3c18-4804-a33a-14400226d351",
                  "name": "Urgency",
                  "type": "string",
                  "value": "={{ $json.output.urgency }}"
                },
                {
                  "id": "35348b68-c1f0-463b-a78f-a67ceda00416",
                  "name": "PriorityScore",
                  "type": "number",
                  "value": "={{ $json.output.priorityScore }}"
                },
                {
                  "id": "5ffe5538-de01-470d-ab09-6af9ea7e4d6f",
                  "name": "Summary",
                  "type": "string",
                  "value": "={{ $json.output.summary }}"
                },
                {
                  "id": "3e48b97e-94b4-4bd0-bfe7-4b552134084e",
                  "name": "goNoGo",
                  "type": "string",
                  "value": "={{ $json.output.goNoGo }}"
                },
                {
                  "id": "3b0bcadd-cf94-49d9-ae28-330f7a156f21",
                  "name": "Reason",
                  "type": "string",
                  "value": "={{ $json.output.reason }}"
                },
                {
                  "id": "0cf88632-3467-42e1-b34f-40147e69e036",
                  "name": "AirtableURL",
                  "type": "string",
                  "value": "=https://airtable.com/appJvCVz7mUkqNQwx/tblEX8rbZIv5xYAwb/viw56bw9zmEwRevO7/{{ $('Fetch Pending Record From Airtable').item.json.id }}?blocks=hide"
                },
                {
                  "id": "fc8f1a4c-5f6d-411e-af1e-e388108bdaa1",
                  "name": "TenderRefNo",
                  "type": "string",
                  "value": "={{ $('Fetch Pending Record From Airtable').item.json.TenderRefNo }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "202670d9-dd42-493b-a934-f01c70e5f418",
          "name": "Check Priority",
          "type": "n8n-nodes-base.if",
          "position": [
            992,
            128
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "e58454e5-72b1-46a2-9c0e-0729a9694498",
                  "operator": {
                    "name": "filter.operator.equals",
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.Urgency }}",
                  "rightValue": "High"
                },
                {
                  "id": "640124ab-7419-4c45-97a4-47986f7dd747",
                  "operator": {
                    "type": "number",
                    "operation": "gt"
                  },
                  "leftValue": "={{ $json.PriorityScore }}",
                  "rightValue": 70
                },
                {
                  "id": "9ea4094c-b2d4-4881-a57f-7d9c58b4d3fc",
                  "operator": {
                    "name": "filter.operator.equals",
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.goNoGo }}",
                  "rightValue": "Go"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "590fa14f-7e38-411b-ab98-ae767d8d6ab2",
          "name": "Update Pending Status",
          "type": "n8n-nodes-base.airtable",
          "position": [
            1664,
            224
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "list",
              "value": "appJvCVz7mUkqNQwx",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx",
              "cachedResultName": "Tender Info"
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblEX8rbZIv5xYAwb",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx/tblEX8rbZIv5xYAwb",
              "cachedResultName": "Tender Details"
            },
            "columns": {
              "value": {
                "Status": "Approved",
                "TenderRefNo": "={{ $('Check Priority').item.json.TenderRefNo }}"
              },
              "schema": [
                {
                  "id": "id",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "id",
                  "defaultMatch": true
                },
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderRefNo",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderRefNo",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TcNo",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TcNo",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderProcId",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderProcId",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Country",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Country",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "State",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "State",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "City",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "City",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderBrief",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderBrief",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Company Name",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Company Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Tender Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Tender Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Opening Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Opening Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Closing Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Closing Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Original_Source",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Original_Source",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Description Link",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Description Link",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Priority",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Low",
                      "value": "Low"
                    },
                    {
                      "name": "Medium",
                      "value": "Medium"
                    },
                    {
                      "name": "High",
                      "value": "High"
                    }
                  ],
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Priority",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "AI Summary",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "AI Summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "AI Reason",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "AI Reason",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Pending",
                      "value": "Pending"
                    },
                    {
                      "name": "Approved",
                      "value": "Approved"
                    },
                    {
                      "name": "Rejected",
                      "value": "Rejected"
                    }
                  ],
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "TenderRefNo"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "088a5b61-23c0-4dc5-aac4-c408867e030b",
          "name": "Fetch Pending Record From Airtable",
          "type": "n8n-nodes-base.airtable",
          "position": [
            80,
            128
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "list",
              "value": "appJvCVz7mUkqNQwx",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx",
              "cachedResultName": "Tender Info"
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblEX8rbZIv5xYAwb",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx/tblEX8rbZIv5xYAwb",
              "cachedResultName": "Tender Details"
            },
            "options": {},
            "operation": "search",
            "filterByFormula": "AND(   {Priority} = \"High\",   {Status} = \"Pending\" )"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "c2551c4b-21ed-4ec0-b11f-d01895bca412",
          "name": "Send Tender Details and wait for response",
          "type": "n8n-nodes-base.slack",
          "position": [
            1216,
            32
          ],
          "webhookId": "02333750-cda8-4c41-a464-bb1432c7a66c",
          "parameters": {
            "select": "channel",
            "message": "=📌 *Tender Analysis Ready* \n\nRef No:{{ $json.TenderRefNo }}\nSummary: {{ $json.Summary }}\nGoNoGo: {{ $json.goNoGo }}\nReason:{{ $json.Reason }}  \nPriorityScore:{{ $json.PriorityScore }}\n\n\n👉 Review on Airtable: {{ $json.AirtableURL }}\n",
            "options": {},
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C09GNB90TED",
              "cachedResultName": "general-information"
            },
            "operation": "sendAndWait",
            "approvalOptions": {
              "values": {
                "approvalType": "double",
                "approveLabel": "Accept",
                "disapproveLabel": "Reject"
              }
            }
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "0489e0b7-5d86-47d5-b26c-918c4ec61770",
          "name": "Send Message",
          "type": "n8n-nodes-base.slack",
          "position": [
            1216,
            224
          ],
          "webhookId": "695f5ecd-ccb6-431d-afe1-0365aa481945",
          "parameters": {
            "text": "There is No Priority Tender Available .",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C09GNB90TED",
              "cachedResultName": "general-information"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "9a36b7b8-a215-47b4-bc26-0d2e1726e5c7",
          "name": "Check Approved",
          "type": "n8n-nodes-base.if",
          "position": [
            1440,
            32
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "3340fc50-9b37-4554-9b26-57fbf7573b55",
                  "operator": {
                    "type": "boolean",
                    "operation": "true",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.data.approved }}",
                  "rightValue": ""
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "1501fa6a-6202-417a-9648-82a56a1fe7b2",
          "name": "Update Approved Status",
          "type": "n8n-nodes-base.airtable",
          "position": [
            1664,
            32
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "list",
              "value": "appJvCVz7mUkqNQwx",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx",
              "cachedResultName": "Tender Info"
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblEX8rbZIv5xYAwb",
              "cachedResultUrl": "https://airtable.com/appJvCVz7mUkqNQwx/tblEX8rbZIv5xYAwb",
              "cachedResultName": "Tender Details"
            },
            "columns": {
              "value": {
                "Status": "Approved",
                "TenderRefNo": "={{ $('Check Priority').item.json.TenderRefNo }}"
              },
              "schema": [
                {
                  "id": "id",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "id",
                  "defaultMatch": true
                },
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderRefNo",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderRefNo",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TcNo",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TcNo",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderProcId",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderProcId",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Country",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Country",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "State",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "State",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "City",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "City",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "TenderBrief",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "TenderBrief",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Company Name",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Company Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Tender Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Tender Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Opening Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Opening Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Closing Date",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Closing Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Original_Source",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Original_Source",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Description Link",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Description Link",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Priority",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Low",
                      "value": "Low"
                    },
                    {
                      "name": "Medium",
                      "value": "Medium"
                    },
                    {
                      "name": "High",
                      "value": "High"
                    }
                  ],
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Priority",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "AI Summary",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "AI Summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "AI Reason",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "AI Reason",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Pending",
                      "value": "Pending"
                    },
                    {
                      "name": "Approved",
                      "value": "Approved"
                    },
                    {
                      "name": "Rejected",
                      "value": "Rejected"
                    }
                  ],
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "TenderRefNo"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "10302eab-5c03-4fe1-a7b3-077e630fdeec",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -240,
            -608
          ],
          "parameters": {
            "width": 512,
            "height": 544,
            "content": "## Tender Summary Generator for Management Approval \n\n**How it works**\n\nThis workflow evaluates high-priority tenders already stored in Airtable and prepares an executive-ready summary for management approval. AI reviews each tender’s urgency, value and risk, and generates a clean JSON report. The highest-scoring tenders are sent directly to Slack for review, where decision-makers can approve or reject in one click. Approved opportunities are instantly updated in Airtable and a confirmation email is sent to the bid team for next steps.\n\nTender Summary Generator for Ma…\n\n**Setup steps**\n\nConnect Airtable and set correct Base + Table for tender data\n\nAdd OpenAI and Slack credentials\n\nUpdate Priority filter in Airtable search if needed\n\nCustomize Slack approval labels or messaging\n\nEnable schedule trigger after initial test run"
          },
          "typeVersion": 1
        },
        {
          "id": "2d054e4c-1c87-4e0b-894b-cd9652ef37ef",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -240,
            -16
          ],
          "parameters": {
            "color": 2,
            "width": 480,
            "height": 304,
            "content": "## 📡 Trigger & Fetch Pending Tenders\n\nDaily trigger checks Airtable for tenders marked High Priority and still Pending approval. These are routed for AI evaluation.\nNodes: Schedule Trigger → Fetch Pending Record From Airtable"
          },
          "typeVersion": 1
        },
        {
          "id": "a114b90e-8d46-46b5-b07f-b2145f815dae",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            256,
            -48
          ],
          "parameters": {
            "color": 2,
            "width": 656,
            "height": 544,
            "content": "## 🧠 AI Analysis & Summary\n\nEvaluates urgency, business opportunity, and risks. Produces a short management-quality summary and Go/No-Go decision in JSON.\nNodes: AI Model, AI Agent, AI Memory, Parse JSON Output, Format AI Result"
          },
          "typeVersion": 1
        },
        {
          "id": "0898f511-d8f1-44aa-880f-be8c1761f6dc",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            944,
            -96
          ],
          "parameters": {
            "color": 2,
            "width": 608,
            "height": 480,
            "content": "## 🏛 Management Approval Flow\n\nHigh-value tenders are shared to Slack with Approve/Reject options. Decisions drive automated updates.\nNodes: Check Priority → Slack Approval → Check Approved"
          },
          "typeVersion": 1
        },
        {
          "id": "0b55517e-3c9b-4625-879d-e920e7c49db2",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1600,
            -400
          ],
          "parameters": {
            "color": 2,
            "height": 800,
            "content": "## 📊 Status Update & Notifications\n\nApproved tenders are marked in Airtable and emailed for action. If no qualified tenders exist, a notice is sent to Slack.\nNodes: Update Status, Send Email, Send Message (fallback)"
          },
          "typeVersion": 1
        },
        {
          "id": "c5f95a5e-20da-4362-b7be-478220e22239",
          "name": "Send Confirmation Mail",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1664,
            -160
          ],
          "webhookId": "094d2347-21d5-40ac-9502-dae6fb889243",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "=Hello Team,\n\nThe following tender has been approved by management for bid preparation and submission:\n\n📌 Tender Reference:{{ $('Check Priority').item.json.TenderRefNo }}\n\n🔎 Summary:\n{{ $('Check Priority').item.json.Summary }}\n\n📈 Priority Score: {{ $('Check Priority').item.json.PriorityScore }}\n📝 Recommendation: {{ $('Check Priority').item.json.goNoGo }} \n\nNext Steps:\n• Assign proposal owner\n• Collect technical and financial requirements\n• Confirm submission process and documentation needs\n\nYou can review full tender details here:\n{{ $('Check Priority').item.json.AirtableURL }}\n\nPlease proceed with procurement and bid formalities.\n\nRegards,  \nProcurement Automation System",
            "options": {},
            "subject": "=Tender Approved: {{ $('Check Priority').item.json.TenderRefNo }} — Proceed with Bid",
            "emailType": "text"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "f09ce67b-200f-47cd-a823-ab72c39c2fb4",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1888,
            192
          ],
          "parameters": {
            "color": 3,
            "width": 304,
            "height": 192,
            "content": "## 🔐 Credentials & Security\n\nStore tokens securely in n8n credentials. Replace personal emails and workspace links with placeholders before publishing."
          },
          "typeVersion": 1
        },
        {
          "id": "e6daded6-b58e-4d50-8e42-21102e13ca8e",
          "name": "Error Handler Trigger",
          "type": "n8n-nodes-base.errorTrigger",
          "position": [
            -192,
            1024
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "d628b44f-8124-4a2f-9919-c9b7b1e7c3e5",
          "name": "Slack: Send Error Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            176,
            1024
          ],
          "webhookId": "d5eff2c3-ff6e-4116-bdda-59455acd861b",
          "parameters": {
            "text": "=❌ *Error in API Error Catalog Workflow* *Node:* {{ $json.node.name }} *Message:* {{ $json.error.message }} *Time:* {{ $json.timestamp }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": ""
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "1fa02a3b-04f9-4c64-8fbb-58c6e1005054",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -256,
            848
          ],
          "parameters": {
            "color": 2,
            "width": 672,
            "height": 336,
            "content": "## 🚨 Error Handling \n\n \nCatches any workflow failure and posts an alert to Slack.  \nIncludes node name, error message, and timestamp for quick debugging.\n"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "f1aed48d-34e4-4dd1-b1f5-aaeb20e5025c",
      "connections": {
        "Check Approved": {
          "main": [
            [
              {
                "node": "Send Confirmation Mail",
                "type": "main",
                "index": 0
              },
              {
                "node": "Update Approved Status",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Update Pending Status",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Check Priority": {
          "main": [
            [
              {
                "node": "Send Tender Details and wait for response",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Send Message",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Schedule Trigger": {
          "main": [
            [
              {
                "node": "Fetch Pending Record From Airtable",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Error Handler Trigger": {
          "main": [
            [
              {
                "node": "Slack: Send Error Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Data From AI Agent": {
          "main": [
            [
              {
                "node": "Check Priority",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Memory: Priority Context": {
          "ai_memory": [
            [
              {
                "node": "AI Agent OpenAI — RFP Summary + Scoring with JSON output",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "AI Model: GPT-4 Priority Engine": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent OpenAI — RFP Summary + Scoring with JSON output",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Parse AI Output (Structured JSON)": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent OpenAI — RFP Summary + Scoring with JSON output",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Pending Record From Airtable": {
          "main": [
            [
              {
                "node": "AI Agent OpenAI — RFP Summary + Scoring with JSON output",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send Tender Details and wait for response": {
          "main": [
            [
              {
                "node": "Check Approved",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent OpenAI — RFP Summary + Scoring with JSON output": {
          "main": [
            [
              {
                "node": "Format Data From AI Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 23,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 2
        },
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 3
        },
        "n8n-nodes-base.airtable": {
          "count": 3
        },
        "n8n-nodes-base.stickyNote": {
          "count": 7
        },
        "n8n-nodes-base.errorTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 2,
        "icon": "file:airtable.svg",
        "name": "n8n-nodes-base.airtable",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/",
                  "icon": "🎯",
                  "label": "2021 Goals: Level Up Your Vocabulary With Vonage and n8n"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-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/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "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/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/",
                  "icon": "📱",
                  "label": "Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automating-conference-organization-processes-with-n8n/",
                  "icon": "🙋‍♀️",
                  "label": "Automating Conference Organization Processes with n8n"
                },
                {
                  "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/app-nodes/n8n-nodes-base.airtable/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/airtable/"
                }
              ]
            },
            "categories": [
              "Data & Storage"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Airtable"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="
        },
        "displayName": "Airtable",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          }
        ]
      },
      {
        "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": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 39,
        "name": "CRM"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}