{
  "workflow": {
    "id": 10335,
    "name": "Automatically detect & classify GitHub API errors with GPT-4o to Airtable, Notion & Slack",
    "views": 37,
    "recentViews": 0,
    "totalViews": 37,
    "createdAt": "2025-10-30T11:30:01.831Z",
    "description": "Automatically detect, classify, and document GitHub API errors using AI.\nThis workflow connects GitHub, OpenAI (GPT-4o), Airtable, Notion, and Slack to build a real-time, searchable API error knowledge base — helping engineering and support teams respond faster, stay aligned, and maintain clean documentation. ⚙️📘💬\n\n## 🚀 What This Template Does\n1️⃣ Triggers on new or updated GitHub issues (API-related). 🪝\n 2️⃣ Extracts key fields (title, body, repo, and link). 📄\n 3️⃣ Classifies issues using OpenAI GPT-4o, identifying error type, category, root cause, and severity. 🤖\n 4️⃣ Validates & parses AI output into structured JSON format. ✅\n 5️⃣ Creates or updates organized FAQ-style entries in Airtable for quick lookup. 🗂️\n 6️⃣ Logs detailed entries into Notion, maintaining an ongoing issue knowledge base. 📘\n 7️⃣ Notifies the right Slack team channel (DevOps, Backend, API, Support) with concise summaries. 💬\n 8️⃣ Tracks & prevents duplicates, keeping your error catalog clean and auditable. 🔄\n\n## 💡 Key Benefits\n✅ Converts unstructured GitHub issues into AI-analyzed documentation\n ✅ Centralizes API error intelligence across teams\n ✅ Reduces time-to-resolution for recurring issues\n ✅ Maintains synchronized records in Airtable & Notion\n ✅ Keeps DevOps and Support instantly informed through Slack alerts\n ✅ Fully automated, scalable, and low-cost using GPT-4o\n\n## ⚙️ Features\n- Real-time GitHub trigger for API or backend issues\n- GPT-4o-based AI classification (error type, cause, severity, confidence)\n- Smart duplicate prevention logic\n- Bi-directional sync to Airtable + Notion\n- Slack alerts with contextual AI insights\n- Modular design — easy to extend with Jira, Teams, or email integrations\n\n## 🧰 Requirements\n- GitHub OAuth2 credentials\n- OpenAI API key (GPT-4o recommended)\n- Airtable Base & Table IDs (with fields like Error Code, Category, Severity, Root Cause)\n- Notion integration with database access\n- Slack Bot token with chat:write scope\n\n## 👥 Target Audience\n- Engineering & DevOps teams managing APIs\n- Customer support & SRE teams maintaining FAQs\n- Product managers tracking recurring API issues\n- SaaS orgs automating documentation & error visibility\n\n## 🪜 Step-by-Step Setup Instructions\n1️⃣ Connect your GitHub account and enable the “issues” webhook event.\n 2️⃣ Add OpenAI credentials (GPT-4o model for classification).\n 3️⃣ Create an Airtable base with fields: Error Code, Category, Root Cause, Severity, Confidence.\n 4️⃣ Configure your Notion database with matching schema and access.\n 5️⃣ Set up Slack credentials and choose your alert channels.\n 6️⃣ Test with a sample GitHub issue to validate AI classification.\n 7️⃣ Enable the workflow — enjoy continuous AI-powered issue documentation!\n",
    "workflow": {
      "id": "gceCBgo6PVxGolsl",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Build AI-Powered API Error Catalog from GitHub to Airtable, Notion & Slack",
      "tags": [],
      "nodes": [
        {
          "id": "36883e78-6c02-40b3-8749-8f9c2ca8fcfe",
          "name": "Trigger Configuration",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1760,
            -64
          ],
          "parameters": {
            "color": 2,
            "width": 564,
            "height": 376,
            "content": "## 🧭 GitHub Issue Trigger  \n\nListens for new or updated issues marked “bug” or “error.”  \nPrepares clean JSON data (title, body, repo, timestamp) for AI processing.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "7d3e76db-cb71-4139-8771-734579629862",
          "name": "AI Classification",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1168,
            -176
          ],
          "parameters": {
            "color": 2,
            "width": 660,
            "height": 680,
            "content": "## 🤖 AI Classification & Parsing  \n\nAnalyzes the GitHub issue text using GPT-4o.  \nExtracts error type, root cause, and severity, then formats structured results for Airtable, Notion, and Slack."
          },
          "typeVersion": 1
        },
        {
          "id": "5e8dbb53-1a51-4ec8-8147-7bde48282472",
          "name": "Response Parsing",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -480,
            -144
          ],
          "parameters": {
            "color": 2,
            "width": 416,
            "height": 472,
            "content": "## ⚙️ Intelligent Routing  \n\n\nDecides which team should handle the issue based on AI classification.  \nRoutes the data to DevOps, Backend, Support, or API branches automatically."
          },
          "typeVersion": 1
        },
        {
          "id": "911ab0f0-4a1b-4981-9229-39eff9e5fea5",
          "name": "Slack Alerts",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -48,
            -352
          ],
          "parameters": {
            "color": 2,
            "width": 460,
            "height": 988,
            "content": "## 🗂️ Database Logging  \n\nSaves each analyzed error to Airtable and Notion for tracking and documentation.  \nMaps standard fields like Error Code, Category, Severity, and Suggested Action."
          },
          "typeVersion": 1
        },
        {
          "id": "34b1571d-94d4-4c19-83ca-66598c20e5b3",
          "name": "Prepare GitHub Issue Data",
          "type": "n8n-nodes-base.set",
          "position": [
            -1328,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "9dfaa4d6-3b16-48e5-8787-36d45fc877d7",
                  "name": "Issue Title",
                  "type": "string",
                  "value": "={{ $json.body.issue.title }}"
                },
                {
                  "id": "c1d46bc2-0774-4999-aaa2-80dda17efa9b",
                  "name": "Issue Body",
                  "type": "string",
                  "value": "={{ $json.body.issue.body }}"
                },
                {
                  "id": "05f2e592-a943-4fa3-92f7-e635cbd5019b",
                  "name": "Issue URL",
                  "type": "string",
                  "value": "={{ $json.body.issue.html_url }}"
                },
                {
                  "id": "6aeef038-6b7e-4953-9a30-518201d90e12",
                  "name": "Issue Number",
                  "type": "number",
                  "value": "={{ $json.body.issue.number }}"
                },
                {
                  "id": "ead4db1d-0c1a-49d6-83a7-6368feecbc3c",
                  "name": "Repository Name",
                  "type": "string",
                  "value": "={{ $json.body.repository.full_name }}"
                },
                {
                  "id": "0eb094bb-8360-4240-bb60-c1fdf8eebc97",
                  "name": "Created At",
                  "type": "string",
                  "value": "={{ $json.body.repository.created_at }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "5bc68cc4-2dd7-4f06-aee1-720003d1a42e",
          "name": "GitHub Issue Created/Updated",
          "type": "n8n-nodes-base.githubTrigger",
          "position": [
            -1552,
            128
          ],
          "webhookId": "api-error-catalog-webhook",
          "parameters": {
            "owner": {
              "__rl": true,
              "mode": "url",
              "value": "="
            },
            "events": [
              "issues"
            ],
            "options": {},
            "repository": {
              "__rl": true,
              "mode": "url",
              "value": "="
            },
            "authentication": "oAuth2"
          },
          "credentials": {
            "githubOAuth2Api": {
              "id": "credential-id",
              "name": "githubOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "6ac5f56a-aa1b-4236-a8df-ce3d242721c1",
          "name": "AI: Classify API Error (GPT-4o)",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1056,
            128
          ],
          "parameters": {
            "text": "=Analyze this GitHub API error issue:\n\nTitle: {{ $json[\"Issue Title\"] }}\nRepository: {{ $json[\"Repository Name\"] }}\nIssue Number: #{{ $json[\"Issue Number\"] }}\nCreated: {{ $json[\"Created At\"] }}\nURL: {{ $json[\"Issue URL\"] }}\n\nIssue Details:\n{{ $json[\"Issue Body\"] }}\n\nPlease classify this error, identify the root cause, suggest a fix, and determine if it matches any existing FAQ category.",
            "options": {
              "systemMessage": "=You are an expert API error classification assistant for a SaaS engineering team.\n\nYour responsibilities include:\n1. Analyze GitHub issues related to API errors and exceptions.\n2. Extract and identify error codes, messages, and endpoints.\n3. Classify each error into one of the standard categories:\n   - Authentication\n   - Server Error\n   - Rate Limit\n   - Invalid Request\n   - Database\n   - Network\n   - Configuration\n   - Other\n4. Determine the root cause based on error patterns and context.\n5. Suggest a clear and actionable fix or next step.\n6. Assign a confidence level for your analysis (high / medium / low).\n7. Determine the severity level of the issue (critical / high / medium / low).\n8. Map the issue to an existing internal FAQ topic if relevant.\n9. Assign the responsible internal team based on the error category:\n   - **Backend Team** → Authentication, Database, Server Error\n   - **DevOps Team** → Infrastructure, Rate Limit, Network, Deployment\n   - **API Team** → Invalid Request, Configuration, Schema or Integration Issues\n   - **Support Team** → Other or unclear user-facing errors\n\nAlways respond in **valid JSON** following this exact schema:\n{\n  \"errorCode\": \"\",\n  \"category\": \"\",\n  \"faqMatch\": \"\",\n  \"rootCause\": \"\",\n  \"suggestedAction\": \"\",\n  \"confidence\": \"\",\n  \"severity\": \"\",\n  \"affectedEndpoint\": \"\",\n  \"assignedTeam\": \"\"\n}\n\nBe concise but thorough in your reasoning. Avoid non-JSON text or explanations outside the JSON.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "481c36b8-cbbe-49c6-9809-e2dc30f6f665",
          "name": "LLM Model: GPT-4o",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -1104,
            352
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": ""
            },
            "options": {
              "temperature": 0.7
            }
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "ba53d5c2-177f-4ffa-84c8-6c1577c6ce03",
          "name": "Output Parser: Structured JSON Schema",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -848,
            352
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"errorCode\": \"AUTH-401\",\n  \"category\": \"Authentication\",\n  \"faqMatch\": \"Token Expiry Issues\",\n  \"rootCause\": \"Expired access token causing authorization failure on /api/v1/users\",\n  \"suggestedAction\": \"Implement token refresh mechanism and validate expiration logic.\",\n  \"confidence\": \"high\",\n  \"severity\": \"medium\",\n  \"affectedEndpoint\": \"/api/v1/users\",\n  \"assignedTeam\": \"Backend Team\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "dba69663-c2b5-4f83-a378-547092bb9100",
          "name": "AI Memory Buffer",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -976,
            352
          ],
          "parameters": {
            "sessionKey": "\"AI Agent - Error Analyzer\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "baa722d9-3f87-4391-83e1-30a39ec1942f",
          "name": "Parse AI Classification Output",
          "type": "n8n-nodes-base.code",
          "position": [
            -640,
            128
          ],
          "parameters": {
            "jsCode": "// Get all input items\nconst items = $input.all();\n\n// Process each item\nconst formattedItems = items.map(item => {\n  // Get AI output\n  const aiOutput = item.json.output || item.json;\n\n  // Get original issue data from earlier node\n  const issueData = $('Prepare GitHub Issue Data').first().json || {};\n\n  // Format for Airtable, Notion, and Slack\n  return {\n    json: {\n      // Original Issue Data\n      issueTitle: issueData.issueTitle || issueData[\"Issue Title\"] || \"Untitled Issue\",\n      issueUrl: issueData.issueUrl || issueData[\"Issue URL\"] || \"\",\n      issueNumber: issueData.issueNumber || issueData[\"Issue Number\"] || 0,\n      issueBody: issueData.issueBody || issueData[\"Issue Body\"] || \"\",\n      repoName: issueData.repoName || issueData[\"Repository Name\"] || \"\",\n      createdAt: issueData.createdAt || issueData[\"Created At\"] || new Date().toISOString(),\n\n      // AI Analysis Results\n      errorCode: aiOutput.errorCode || \"UNKNOWN\",\n      category: aiOutput.category || \"Uncategorized\",\n      faqMatch: aiOutput.faqMatch || \"No FAQ Match\",\n      rootCause: aiOutput.rootCause || \"Root cause unknown\",\n      suggestedAction: aiOutput.suggestedAction || \"Manual investigation required\",\n      confidence: aiOutput.confidence || \"low\",\n      severity: aiOutput.severity || \"medium\",\n      affectedEndpoint: aiOutput.affectedEndpoint || \"Unknown endpoint\",\n      assignedTeam: aiOutput.assignedTeam || \"Unassigned\",\n\n      // Additional metadata\n      analyzedAt: new Date().toISOString(),\n      status: \"pending_review\",\n\n      // 🧱 Formatted text for Notion description\n      notionDescription: `**Error Code:** ${aiOutput.errorCode}\n**Category:** ${aiOutput.category}\n**Severity:** ${aiOutput.severity}\n**Confidence:** ${aiOutput.confidence}\n**Assigned Team:** ${aiOutput.assignedTeam}\n\n**Root Cause:**\n${aiOutput.rootCause}\n\n**Suggested Action:**\n${aiOutput.suggestedAction}\n\n**Affected Endpoint:**\n${aiOutput.affectedEndpoint}\n\n**Original Issue:**\n${issueData.issueBody || issueData[\"Issue Body\"] || \"\"}`,\n\n      // 💬 Formatted text for Slack\n      slackMessage: `🚨 *New API Error Analyzed*\n\n*Error Code:* ${aiOutput.errorCode}\n*Category:* ${aiOutput.category}\n*Severity:* ${aiOutput.severity}\n*Confidence:* ${aiOutput.confidence}\n👥 *Assigned Team:* ${aiOutput.assignedTeam}\n\n*FAQ Match:* ${aiOutput.faqMatch}\n\n*Root Cause:*\n${aiOutput.rootCause}\n\n*Suggested Action:*\n${aiOutput.suggestedAction}\n\n*GitHub Issue:* ${issueData.issueUrl || issueData[\"Issue URL\"] || \"N/A\"}\n*Repository:* ${issueData.repoName || issueData[\"Repository Name\"] || \"N/A\"}`,\n\n      // 📊 Airtable fields object (ready to use)\n      airtableFields: {\n        \"Error Code\": aiOutput.errorCode,\n        \"Error Category\": aiOutput.category,\n        \"FAQ Match\": aiOutput.faqMatch,\n        \"Root Cause\": aiOutput.rootCause,\n        \"Suggested Action\": aiOutput.suggestedAction,\n        \"Confidence\": aiOutput.confidence,\n        \"Severity\": aiOutput.severity,\n        \"Affected Endpoint\": aiOutput.affectedEndpoint,\n        \"Assigned Team\": aiOutput.assignedTeam || \"Unassigned\",\n        \"Source URL\": issueData.issueUrl || issueData[\"Issue URL\"] || \"\",\n        \"Repository\": issueData.repoName || issueData[\"Repository Name\"] || \"\",\n        \"Issue Number\": issueData.issueNumber || issueData[\"Issue Number\"] || 0,\n        \"Status\": \"New\",\n        \"Created At\": new Date().toISOString()\n      }\n    }\n  };\n});\n\nreturn formattedItems;\n"
          },
          "typeVersion": 2
        },
        {
          "id": "fc8db243-9c6a-417f-a538-1c6c3dbc747b",
          "name": "Check: Valid AI Response or Data Missing",
          "type": "n8n-nodes-base.if",
          "position": [
            -416,
            128
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 1,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "or",
              "conditions": [
                {
                  "id": "32a385f7-3200-4e72-9730-555b90a42751",
                  "operator": {
                    "type": "string",
                    "operation": "isEmpty"
                  },
                  "leftValue": "={{ $json.id }}",
                  "rightValue": ""
                },
                {
                  "id": "0eca57c7-3933-4f19-856a-7f0d4dc08902",
                  "operator": {
                    "type": "object",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.airtableFields }}",
                  "rightValue": ""
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "8cd461a6-208e-4ff1-8fe5-744227986bd8",
          "name": "Route by Assigned Team",
          "type": "n8n-nodes-base.switch",
          "position": [
            -192,
            96
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "6fca3214-bd0f-4b4e-9acc-c6806e43584c",
                        "operator": {
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.assignedTeam }}",
                        "rightValue": "DevOps Team"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "d416b5a4-a371-4f26-b46c-e7e2f8a5b8e3",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.assignedTeam }}",
                        "rightValue": "Backend Team"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "b294f578-9eef-41db-99a4-63372b575be0",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.assignedTeam }}",
                        "rightValue": "Support Team"
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "8d5d93bb-502e-41c5-9df8-18410f493e0e",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.assignedTeam }}",
                        "rightValue": "API Team"
                      }
                    ]
                  }
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.3
        },
        {
          "id": "51f79f94-dc6c-41df-984d-fe25efb895ff",
          "name": "Airtable: Create Record (DevOps)",
          "type": "n8n-nodes-base.airtable",
          "position": [
            32,
            -160
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "list",
              "value": ""
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblZvyR7J8hndLlUZ",
              "cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
              "cachedResultName": "Table 1"
            },
            "columns": {
              "value": {
                "Name": "={{ $json.issueTitle }}",
                "Status": "Todo",
                "Severity": "={{ $json.severity }}",
                "FAQ Match": "={{ $json.faqMatch }}",
                "Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
                "Repository": "={{ $json.airtableFields.Repository }}",
                "Root Cause": "={{ $json.rootCause }}",
                "Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
                "Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
                "Suggested Action": "={{ $json.suggestedAction }}",
                "Affected Endpoint": "={{ $json.affectedEndpoint }}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Notes",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Notes",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Assignee",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Assignee",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Todo",
                      "value": "Todo"
                    },
                    {
                      "name": "In progress",
                      "value": "In progress"
                    },
                    {
                      "name": "Done",
                      "value": "Done"
                    }
                  ],
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachments",
                  "type": "array",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachments",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachment Summary",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachment Summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Code",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Code",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Category",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Category",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "FAQ Match",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "FAQ Match",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Root Cause",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Root Cause",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Suggested Action",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Suggested Action",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Confidence",
                  "type": "number",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Confidence",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Severity",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Severity",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Affected Endpoint",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Affected Endpoint",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Source URL",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Source URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Repository",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Repository",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Issue Number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Issue Number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Created At",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "Created At",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "create"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "be976a3b-ab8e-4095-9ba1-b36d47bc6817",
          "name": "Notion: Log Issue (DevOps)",
          "type": "n8n-nodes-base.notion",
          "position": [
            256,
            -160
          ],
          "parameters": {
            "title": "={{ $json.fields.Name }}",
            "simple": false,
            "options": {},
            "resource": "databasePage",
            "databaseId": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "propertiesUi": {
              "propertyValues": [
                {
                  "key": "Status|status",
                  "statusValue": "Todo"
                },
                {
                  "key": "Error Category|select",
                  "selectValue": "={{ $json.fields[\"Error Category\"] }}"
                },
                {
                  "key": "FAQ Match|rich_text",
                  "textContent": "={{ $json.fields[\"FAQ Match\"] }}"
                },
                {
                  "key": "Root Cause|rich_text",
                  "textContent": "={{ $json.fields[\"Root Cause\"] }}"
                },
                {
                  "key": "Suggested Action|rich_text",
                  "textContent": "={{ $json.fields[\"Suggested Action\"] }}"
                },
                {
                  "key": "Severity|select",
                  "selectValue": "High"
                },
                {
                  "key": "Affected Endpoint|rich_text",
                  "textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
                },
                {
                  "key": "Source URL|url",
                  "urlValue": "={{ $json.fields[\"Source URL\"] }}"
                },
                {
                  "key": "Repository|rich_text",
                  "textContent": "={{ $json.fields.Repository }}"
                },
                {
                  "key": "Created At|date",
                  "date": "={{ $json.fields[\"Created At\"] }}"
                }
              ]
            }
          },
          "credentials": {
            "notionApi": {
              "id": "credential-id",
              "name": "notionApi Credential"
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "63b1b8c7-f049-45e7-9985-ed0da37a66c2",
          "name": "Slack Notify: DevOps Team",
          "type": "n8n-nodes-base.slack",
          "position": [
            480,
            -160
          ],
          "webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
          "parameters": {
            "text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:*  {{ $('Airtable: Create Record (DevOps)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": ""
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "294932fc-d262-4915-98d1-be5d4a2357c5",
          "name": "Notion: Log Issue (Backend)",
          "type": "n8n-nodes-base.notion",
          "position": [
            32,
            32
          ],
          "parameters": {
            "title": "={{ $json.airtableFields[\"Error Code\"] }}",
            "simple": false,
            "options": {},
            "resource": "databasePage",
            "databaseId": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "propertiesUi": {
              "propertyValues": [
                {
                  "key": "Status|status",
                  "statusValue": "Todo"
                },
                {
                  "key": "Error Category|select",
                  "selectValue": "={{ $json.airtableFields[\"Error Category\"] }}"
                },
                {
                  "key": "FAQ Match|rich_text",
                  "textContent": "={{ $json.airtableFields[\"FAQ Match\"] }}"
                },
                {
                  "key": "Root Cause|rich_text",
                  "textContent": "={{ $json.airtableFields[\"Root Cause\"] }}"
                },
                {
                  "key": "Suggested Action|rich_text",
                  "textContent": "={{ $json.airtableFields[\"Suggested Action\"] }}"
                },
                {
                  "key": "Severity|select",
                  "selectValue": "High"
                },
                {
                  "key": "Affected Endpoint|rich_text",
                  "textContent": "={{ $json.airtableFields[\"Affected Endpoint\"] }}"
                },
                {
                  "key": "Source URL|url",
                  "urlValue": "={{ $json.airtableFields[\"Source URL\"] }}"
                },
                {
                  "key": "Repository|rich_text",
                  "textContent": "={{ $json.airtableFields.Repository }}"
                },
                {
                  "key": "Created At|date",
                  "date": "={{ $json.airtableFields[\"Created At\"] }}"
                }
              ]
            }
          },
          "credentials": {
            "notionApi": {
              "id": "credential-id",
              "name": "notionApi Credential"
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "924557fe-310e-43d9-a477-50e195ea9a38",
          "name": "Slack Notify: Backend Team",
          "type": "n8n-nodes-base.slack",
          "position": [
            256,
            32
          ],
          "webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
          "parameters": {
            "text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:*  {{ $('Airtable: Create Record (DevOps)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": ""
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "f2160801-0978-4a63-8bba-07b44f075606",
          "name": "Airtable: Create Record (Support)",
          "type": "n8n-nodes-base.airtable",
          "position": [
            32,
            224
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblZvyR7J8hndLlUZ",
              "cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
              "cachedResultName": "Table 1"
            },
            "columns": {
              "value": {
                "Name": "={{ $json.issueTitle }}",
                "Status": "Todo",
                "Severity": "={{ $json.severity }}",
                "FAQ Match": "={{ $json.faqMatch }}",
                "Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
                "Repository": "={{ $json.airtableFields.Repository }}",
                "Root Cause": "={{ $json.rootCause }}",
                "Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
                "Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
                "Suggested Action": "={{ $json.suggestedAction }}",
                "Affected Endpoint": "={{ $json.affectedEndpoint }}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Notes",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Notes",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Assignee",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Assignee",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Todo",
                      "value": "Todo"
                    },
                    {
                      "name": "In progress",
                      "value": "In progress"
                    },
                    {
                      "name": "Done",
                      "value": "Done"
                    }
                  ],
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachments",
                  "type": "array",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachments",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachment Summary",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachment Summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Code",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Code",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Category",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Category",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "FAQ Match",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "FAQ Match",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Root Cause",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Root Cause",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Suggested Action",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Suggested Action",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Confidence",
                  "type": "number",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Confidence",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Severity",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Severity",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Affected Endpoint",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Affected Endpoint",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Source URL",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Source URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Repository",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Repository",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Issue Number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Issue Number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Created At",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "Created At",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "create"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "c3bcb44a-b3ce-4da0-8fd3-507dad3d1a99",
          "name": "Slack Notify: Support Team",
          "type": "n8n-nodes-base.slack",
          "position": [
            480,
            224
          ],
          "webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
          "parameters": {
            "text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (Support)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (Support)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (Support)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:*  {{ $('Airtable: Create Record (Support)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": ""
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "89a3e79b-89a9-498e-86cd-9fc06a920889",
          "name": "Airtable: Create Record (API Team)",
          "type": "n8n-nodes-base.airtable",
          "position": [
            32,
            416
          ],
          "parameters": {
            "base": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tblZvyR7J8hndLlUZ",
              "cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
              "cachedResultName": "Table 1"
            },
            "columns": {
              "value": {
                "Name": "={{ $json.issueTitle }}",
                "Status": "Todo",
                "Severity": "={{ $json.severity }}",
                "FAQ Match": "={{ $json.faqMatch }}",
                "Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
                "Repository": "={{ $json.airtableFields.Repository }}",
                "Root Cause": "={{ $json.rootCause }}",
                "Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
                "Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
                "Suggested Action": "={{ $json.suggestedAction }}",
                "Affected Endpoint": "={{ $json.affectedEndpoint }}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Notes",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Notes",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Assignee",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Assignee",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "options",
                  "display": true,
                  "options": [
                    {
                      "name": "Todo",
                      "value": "Todo"
                    },
                    {
                      "name": "In progress",
                      "value": "In progress"
                    },
                    {
                      "name": "Done",
                      "value": "Done"
                    }
                  ],
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachments",
                  "type": "array",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachments",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attachment Summary",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Attachment Summary",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Code",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Code",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Error Category",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Error Category",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "FAQ Match",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "FAQ Match",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Root Cause",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Root Cause",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Suggested Action",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Suggested Action",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Confidence",
                  "type": "number",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Confidence",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Severity",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Severity",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Affected Endpoint",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Affected Endpoint",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Source URL",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Source URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Repository",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Repository",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Issue Number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": false,
                  "required": false,
                  "displayName": "Issue Number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Created At",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "Created At",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "create"
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "e619b7fc-f78b-4899-af27-a97d73578515",
          "name": "Notion: Log Issue (Support Team)",
          "type": "n8n-nodes-base.notion",
          "position": [
            256,
            224
          ],
          "parameters": {
            "title": "={{ $json.fields.Name }}",
            "simple": false,
            "options": {},
            "resource": "databasePage",
            "databaseId": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "propertiesUi": {
              "propertyValues": [
                {
                  "key": "Status|status",
                  "statusValue": "Todo"
                },
                {
                  "key": "Error Category|select",
                  "selectValue": "={{ $json.fields[\"Error Category\"] }}"
                },
                {
                  "key": "FAQ Match|rich_text",
                  "textContent": "={{ $json.fields[\"FAQ Match\"] }}"
                },
                {
                  "key": "Root Cause|rich_text",
                  "textContent": "={{ $json.fields[\"Root Cause\"] }}"
                },
                {
                  "key": "Suggested Action|rich_text",
                  "textContent": "={{ $json.fields[\"Suggested Action\"] }}"
                },
                {
                  "key": "Severity|select",
                  "selectValue": "High"
                },
                {
                  "key": "Affected Endpoint|rich_text",
                  "textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
                },
                {
                  "key": "Source URL|url",
                  "urlValue": "={{ $json.fields[\"Source URL\"] }}"
                },
                {
                  "key": "Repository|rich_text",
                  "textContent": "={{ $json.fields.Repository }}"
                },
                {
                  "key": "Created At|date",
                  "date": "={{ $json.fields[\"Created At\"] }}"
                }
              ]
            }
          },
          "credentials": {
            "notionApi": {
              "id": "credential-id",
              "name": "notionApi Credential"
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "eaded3ea-f394-45f8-ad39-cdb71ee40e56",
          "name": "Notion: Log Issue (API Team)",
          "type": "n8n-nodes-base.notion",
          "position": [
            256,
            416
          ],
          "parameters": {
            "title": "={{ $json.fields.Name }}",
            "simple": false,
            "options": {},
            "resource": "databasePage",
            "databaseId": {
              "__rl": true,
              "mode": "url",
              "value": ""
            },
            "propertiesUi": {
              "propertyValues": [
                {
                  "key": "Status|status",
                  "statusValue": "Todo"
                },
                {
                  "key": "Error Category|select",
                  "selectValue": "={{ $json.fields[\"Error Category\"] }}"
                },
                {
                  "key": "FAQ Match|rich_text",
                  "textContent": "={{ $json.fields[\"FAQ Match\"] }}"
                },
                {
                  "key": "Root Cause|rich_text",
                  "textContent": "={{ $json.fields[\"Root Cause\"] }}"
                },
                {
                  "key": "Suggested Action|rich_text",
                  "textContent": "={{ $json.fields[\"Suggested Action\"] }}"
                },
                {
                  "key": "Severity|select",
                  "selectValue": "High"
                },
                {
                  "key": "Affected Endpoint|rich_text",
                  "textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
                },
                {
                  "key": "Source URL|url",
                  "urlValue": "={{ $json.fields[\"Source URL\"] }}"
                },
                {
                  "key": "Repository|rich_text",
                  "textContent": "={{ $json.fields.Repository }}"
                },
                {
                  "key": "Created At|date",
                  "date": "={{ $json.fields[\"Created At\"] }}"
                }
              ]
            }
          },
          "credentials": {
            "notionApi": {
              "id": "credential-id",
              "name": "notionApi Credential"
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "5f83906a-f47d-4fad-99d8-916ddf9249c7",
          "name": "Notify API Team",
          "type": "n8n-nodes-base.slack",
          "position": [
            480,
            416
          ],
          "webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
          "parameters": {
            "text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (API Team)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (API Team)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (API Team)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:*  {{ $('Airtable: Create Record (API Team)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": ""
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "72f825c7-add5-49b8-9458-dd4fa4e916b7",
          "name": "Error Handler Trigger",
          "type": "n8n-nodes-base.errorTrigger",
          "position": [
            -1616,
            640
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "eb4f81f3-7256-4624-b8f5-a8050effbd57",
          "name": "Slack: Send Error Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            -1408,
            640
          ],
          "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": "7c0f800e-2632-4c48-b0ab-da4672f352ae",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1888,
            496
          ],
          "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
        },
        {
          "id": "07514bfc-fd27-44e9-b269-25ef437daa3e",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1776,
            -592
          ],
          "parameters": {
            "width": 512,
            "height": 416,
            "content": "## 🧩 Build AI-Powered API Error Catalog  \n### How it works\nThis workflow automatically listens for new GitHub issues labeled as “bug” or “error”, classifies them with OpenAI GPT-4o, and logs structured insights into Airtable, Notion, and Slack.  \nIt routes each issue to the correct internal team (DevOps, Backend, Support, or API) and provides an AI-suggested fix and FAQ match.\n\n### Setup steps\n1. Connect your **GitHub** account and select your repository.\n2. Add your **OpenAI** credentials (GPT-4o or GPT-4o-mini).\n3. Connect **Airtable** and create a table with matching field names.\n4. Connect **Notion** and select your database (status, category, etc.).\n5. Connect **Slack** and set your target channel IDs.\n6. Run once manually to initialize webhook triggers.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "616d9e85-fd78-40be-9508-1aea10a8896f",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            432,
            -352
          ],
          "parameters": {
            "color": 2,
            "height": 976,
            "content": "## 💬 Slack Alerts  \nSends team-specific alerts summarizing the error, category, and recommended fix.  \nHelps each team act quickly on critical issues."
          },
          "typeVersion": 1
        },
        {
          "id": "8f53d912-7112-4496-bbee-a5c084fc3765",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1248,
            -592
          ],
          "parameters": {
            "width": 320,
            "height": 272,
            "content": "## 🔐 Credentials & Security\n\n  \n- Use OAuth2 for GitHub and Slack.  \n- API Keys for OpenAI, Airtable, and Notion.  \n- Remove personal IDs or base URLs before publishing.  \n- Test with dummy accounts before sharing the workflow.\n"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "7b4afc5d-daca-4124-ac02-953beffca4a2",
      "connections": {
        "AI Memory Buffer": {
          "ai_memory": [
            [
              {
                "node": "AI: Classify API Error (GPT-4o)",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "LLM Model: GPT-4o": {
          "ai_languageModel": [
            [
              {
                "node": "AI: Classify API Error (GPT-4o)",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Error Handler Trigger": {
          "main": [
            [
              {
                "node": "Slack: Send Error Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Route by Assigned Team": {
          "main": [
            [
              {
                "node": "Airtable: Create Record (DevOps)",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Notion: Log Issue (Backend)",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Airtable: Create Record (Support)",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Airtable: Create Record (API Team)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare GitHub Issue Data": {
          "main": [
            [
              {
                "node": "AI: Classify API Error (GPT-4o)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Notion: Log Issue (DevOps)": {
          "main": [
            [
              {
                "node": "Slack Notify: DevOps Team",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Notion: Log Issue (Backend)": {
          "main": [
            [
              {
                "node": "Slack Notify: Backend Team",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "GitHub Issue Created/Updated": {
          "main": [
            [
              {
                "node": "Prepare GitHub Issue Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Notion: Log Issue (API Team)": {
          "main": [
            [
              {
                "node": "Notify API Team",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse AI Classification Output": {
          "main": [
            [
              {
                "node": "Check: Valid AI Response or Data Missing",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI: Classify API Error (GPT-4o)": {
          "main": [
            [
              {
                "node": "Parse AI Classification Output",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Airtable: Create Record (DevOps)": {
          "main": [
            [
              {
                "node": "Notion: Log Issue (DevOps)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Notion: Log Issue (Support Team)": {
          "main": [
            [
              {
                "node": "Slack Notify: Support Team",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Airtable: Create Record (Support)": {
          "main": [
            [
              {
                "node": "Notion: Log Issue (Support Team)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Airtable: Create Record (API Team)": {
          "main": [
            [
              {
                "node": "Notion: Log Issue (API Team)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser: Structured JSON Schema": {
          "ai_outputParser": [
            [
              {
                "node": "AI: Classify API Error (GPT-4o)",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Check: Valid AI Response or Data Missing": {
          "main": [
            [
              {
                "node": "Route by Assigned Team",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 30,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 5
        },
        "n8n-nodes-base.notion": {
          "count": 4
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.airtable": {
          "count": 3
        },
        "n8n-nodes-base.stickyNote": {
          "count": 8
        },
        "n8n-nodes-base.errorTrigger": {
          "count": 1
        },
        "n8n-nodes-base.githubTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "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": 17,
        "icon": "file:github.svg",
        "name": "n8n-nodes-base.githubTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/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-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"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/github/"
                }
              ]
            },
            "categories": [
              "Development"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Github Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTY1IDBDOC45NDc5MSAwIDAgOS4wMTM4OCAwIDIwLjE2NTNDMCAyOS4wNzkyIDUuNzMzMjQgMzYuNjI0NiAxMy42ODY4IDM5LjI5NTJDMTQuNjgxMiAzOS40OTYgMTUuMDQ1NCAzOC44NjEzIDE1LjA0NTQgMzguMzI3NEMxNS4wNDU0IDM3Ljg1OTkgMTUuMDEyNiAzNi4yNTc1IDE1LjAxMjYgMzQuNTg3OUM5LjQ0NDUgMzUuNzkgOC4yODQ5OCAzMi4xODQxIDguMjg0OTggMzIuMTg0MUM3LjM5MDE1IDI5Ljg0NyA2LjA2NDI5IDI5LjI0NjMgNi4wNjQyOSAyOS4yNDYzQzQuMjQxODUgMjguMDExIDYuMTk3MDQgMjguMDExIDYuMTk3MDQgMjguMDExQzguMjE4NjEgMjguMTQ0NiA5LjI3OTM4IDMwLjA4MSA5LjI3OTM4IDMwLjA4MUMxMS4wNjg2IDMzLjE1MjIgMTMuOTUxOCAzMi4yODQ0IDE1LjExMTggMzEuNzUwMkMxNS4yNzczIDMwLjQ0ODEgMTUuODA3OSAyOS41NDY3IDE2LjM3MTMgMjkuMDQ2QzExLjkzMDMgMjguNTc4NSA3LjI1NzgxIDI2Ljg0MjUgNy4yNTc4MSAxOS4wOTY3QzcuMjU3ODEgMTYuODkzMiA4LjA1MjY3IDE1LjA5MDUgOS4zMTIxNiAxMy42ODg0QzkuMTEzNDQgMTMuMTg3NyA4LjQxNzMyIDExLjExNzQgOS41MTEyOCA4LjM0NjQ0QzkuNTExMjggOC4zNDY0NCAxMS4yMDE0IDcuODEyMTcgMTUuMDEyMiAxMC40MTY0QzE2LjY0MzggOS45NzQ5NSAxOC4zMjYzIDkuNzUwNCAyMC4wMTY1IDkuNzQ4NTFDMjEuNzA2NyA5Ljc0ODUxIDIzLjQyOTUgOS45ODI0NiAyNS4wMjA1IDEwLjQxNjRDMjguODMxNyA3LjgxMjE3IDMwLjUyMTggOC4zNDY0NCAzMC41MjE4IDguMzQ2NDRDMzEuNjE1OCAxMS4xMTc0IDMwLjkxOTIgMTMuMTg3NyAzMC43MjA1IDEzLjY4ODRDMzIuMDEzMiAxNS4wOTA1IDMyLjc3NTMgMTYuODkzMiAzMi43NzUzIDE5LjA5NjdDMzIuNzc1MyAyNi44NDI1IDI4LjEwMjggMjguNTQ0OSAyMy42Mjg3IDI5LjA0NkMyNC4zNTggMjkuNjgwMiAyNC45ODczIDMwLjg4MiAyNC45ODczIDMyLjc4NTFDMjQuOTg3MyAzNS40ODkzIDI0Ljk1NDUgMzcuNjU5NiAyNC45NTQ1IDM4LjMyN0MyNC45NTQ1IDM4Ljg2MTMgMjUuMzE5MiAzOS40OTYgMjYuMzEzMiAzOS4yOTU2QzM0LjI2NjcgMzYuNjI0MiAzOS45OTk5IDI5LjA3OTIgMzkuOTk5OSAyMC4xNjUzQzQwLjAzMjcgOS4wMTM4OCAzMS4wNTIgMCAyMC4wMTY1IDBaIiBmaWxsPSIjMjQyOTJGIi8+Cjwvc3ZnPgo="
        },
        "displayName": "Github Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 487,
        "icon": "file:notion.svg",
        "name": "n8n-nodes-base.notion",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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 "
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/notion/"
                }
              ]
            },
            "categories": [
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Notion"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjU4Mjc2IDYuOTc2NzlDOC44MjA0NyA3Ljk4MjM4IDkuMjg0NzkgNy45MDU2NiAxMS42MDkxIDcuNzUwNTdMMzMuNTIwNiA2LjQzNDg4QzMzLjk4NTMgNi40MzQ4OCAzMy41OTg5IDUuOTcxMjcgMzMuNDQzOSA1Ljg5NDIzTDI5LjgwNDkgMy4yNjM0OEMyOS4xMDc2IDIuNzIyMTMgMjguMTc4NiAyLjEwMjE3IDI2LjM5ODIgMi4yNTcyNkw1LjE4MTE1IDMuODA0NzZDNC40MDczNiAzLjg4MTQ4IDQuMjUyODIgNC4yNjgzNyA0LjU2MDk2IDQuNTc4NDdMNy41ODI3NiA2Ljk3Njc5Wk04Ljg5ODI5IDEyLjA4MzNWMzUuMTM4MUM4Ljg5ODI5IDM2LjM3NzEgOS41MTc0NiAzNi44NDA3IDEwLjkxMSAzNi43NjRMMzQuOTkxOSAzNS4zNzA2QzM2LjM4NjIgMzUuMjkzOSAzNi41NDE1IDM0LjQ0MTcgMzYuNTQxNSAzMy40MzUyVjEwLjUzNTFDMzYuNTQxNSA5LjUzMDE5IDM2LjE1NDkgOC45ODgyOSAzNS4zMDE0IDkuMDY1NjRMMTAuMTM2NyAxMC41MzUxQzkuMjA3OTkgMTAuNjEzMSA4Ljg5ODIxIDExLjA3NzcgOC44OTgyMSAxMi4wODMzSDguODk4MjlaTTMyLjY3MDggMTMuMzJDMzIuODI1MiAxNC4wMTcgMzIuNjcwOCAxNC43MTMzIDMxLjk3MjUgMTQuNzkxN0wzMC44MTIzIDE1LjAyMjlWMzIuMDQzNEMyOS44MDQ5IDMyLjU4NDggMjguODc1OSAzMi44OTQ0IDI4LjEwMTggMzIuODk0NEMyNi44NjI1IDMyLjg5NDQgMjYuNTUyMSAzMi41MDcyIDI1LjYyMzcgMzEuMzQ3NEwxOC4wMzQzIDE5LjQzMjlWMzAuOTYwNUwyMC40MzU5IDMxLjUwMjRDMjAuNDM1OSAzMS41MDI0IDIwLjQzNTkgMzIuODk0NCAxOC40OTgzIDMyLjg5NDRMMTMuMTU2OCAzMy4yMDQyQzEzLjAwMTYgMzIuODk0NCAxMy4xNTY4IDMyLjEyMTQgMTMuNjk4NiAzMS45NjY1TDE1LjA5MjUgMzEuNTgwMlYxNi4zMzg1TDEzLjE1NzIgMTYuMTgzNEMxMy4wMDE5IDE1LjQ4NjQgMTMuMzg4NSAxNC40ODE0IDE0LjQ3MzMgMTQuNDAzNUwyMC4yMDM1IDE0LjAxNzJMMjguMTAxOCAyNi4wODY4VjE1LjQwOTdMMjYuMDg4MSAxNS4xNzg2QzI1LjkzMzUgMTQuMzI2NSAyNi41NTIxIDEzLjcwNzggMjcuMzI2NSAxMy42MzExTDMyLjY3MDggMTMuMzJaTTMuMzk5NzMgMS43MTU5OEwyNS40Njg4IDAuMDkwNzQ1N0MyOC4xNzkgLTAuMTQxNjg4IDI4Ljg3NjMgMC4wMTQwMjQ1IDMwLjU3OTYgMS4yNTEzNUwzNy42MjQzIDYuMjAyNzZDMzguNzg2NyA3LjA1NDIxIDM5LjE3NDIgNy4yODYwMiAzOS4xNzQyIDguMjE0MTlWMzUuMzcwNkMzOS4xNzQyIDM3LjA3MjYgMzguNTU0MiAzOC4wNzkxIDM2LjM4NjUgMzguMjMzMUwxMC43NTc3IDM5Ljc4MDdDOS4xMzA0OSAzOS44NTgzIDguMzU2MDcgMzkuNjI2NCA3LjUwMzkyIDM4LjU0MjZMMi4zMTYwOCAzMS44MTE3QzEuMzg2NTggMzAuNTcyNiAxIDI5LjY0NTcgMSAyOC41NjEzVjQuNDIyODNDMSAzLjAzMTA1IDEuNjIwMTkgMS44NzAwNSAzLjM5OTczIDEuNzE1OThWMS43MTU5OFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="
        },
        "displayName": "Notion",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "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": 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": 41,
        "name": "Ticket Management"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}