{
  "name": "Dependency update risk analysis with GPT-4o, Slack, Jira & Google Sheets",
  "nodes": [
    {
      "id": "713381f3-700f-4a63-9d45-1fcb875c89dc",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1136,
        -16
      ]
    },
    {
      "id": "b1a86cf1-b4c7-43ff-8da0-b4ca32b90744",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        144
      ],
      "parameters": {
        "width": 288,
        "height": 384,
        "content": "## 🧩 Parse AI Response to Structured Data\n**Action:**  \n- Converts AI-generated output into structured JSON fields.  \n**Description:**  \n- Extracts risk_level and impact_summary.  \n- Removes markdown "
      }
    },
    {
      "id": "a340ed6c-85ca-48c5-b7ae-a0a4dd93042b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        432
      ],
      "parameters": {
        "width": 368,
        "height": 320,
        "content": "## ⚙️ GPT-4o Model Configuration\n**Action:**  \n- Configures AI model for accurate risk analysis.  \n**Description:**  \n- Defines model parameters like temperature, max tokens, and system prompt.  \n- En"
      }
    },
    {
      "id": "b57a7811-2418-482e-94a1-bb48f79c32ba",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -480
      ],
      "parameters": {
        "width": 272,
        "height": 400,
        "content": "## 🧠 AI-Powered Risk Assessment Analyzer\n**Action:**  \n- Uses GPT-4o to assess risk of dependency updates.  \n**Description:**  \n- Evaluates risk level (Low/Medium/High) and impact summary.  \n- Conside"
      }
    },
    {
      "id": "45410e03-c687-4c4c-a833-42d1de6433be",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -432
      ],
      "parameters": {
        "width": 288,
        "height": 384,
        "content": "## 🔵 Alert DevOps Team in Slack\n**Action:**  \n- Sends a Slack notification about new dependency updates.  \n**Description:**  \n- Message includes issue key, summary, status, priority, assignee, and Jir"
      }
    },
    {
      "id": "29918ceb-631e-4463-9bb1-d40da0eb3e09",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        160
      ],
      "parameters": {
        "width": 304,
        "height": 384,
        "content": "## 💬 Post AI Risk Assessment to Jira Ticket\n**Action:**  \n- Adds AI-generated risk assessment as a Jira comment.  \n**Description:**  \n- Includes risk level, impact summary, and next steps checklist.  "
      }
    },
    {
      "id": "ac6ebd0e-fc6e-4896-9a8c-75eb0d1b816a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        160
      ],
      "parameters": {
        "width": null,
        "height": 464,
        "content": "## 🟠 Extract Relevant Issue Metadata\n**Action:**  \n- Extracts key fields from Jira issues for downstream processing.  \n**Description:**  \n- Keeps only essential fields: key, summary, assignee, priorit"
      }
    },
    {
      "id": "c81ab400-953c-4860-8069-bd335fae4a55",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -464
      ],
      "parameters": {
        "width": 304,
        "height": 416,
        "content": "## 🔴 Identify Dependency Update Issues\n**Action:**  \n- Filters Jira issues to isolate dependency/package updates.  \n**Description:**  \n- Searches summaries and descriptions for keywords like “update,”"
      }
    },
    {
      "id": "e5c13a32-8fb8-4a2e-b6da-c40c0cf377b7",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        -544
      ],
      "parameters": {
        "width": null,
        "height": 512,
        "content": "## ✅ Validate Jira Query Response\n**Action:**  \n- Verifies that Jira successfully returned issue data.  \n**Description:**  \n- Checks if response length > 0 before continuing.  \n- **True Path (Data Exi"
      }
    },
    {
      "id": "d2ce051d-8fb3-47c3-b4f0-333d75a038ae",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        432
      ],
      "parameters": {
        "width": 304,
        "height": 336,
        "content": "## 🟡 Log Jira Query Failures to Error Sheet\n**Action:**  \n- Records Jira API failures or empty responses into a Google Sheet.  \n**Description:**  \n- Captures error type, message, and timestamp for deb"
      }
    },
    {
      "id": "f2107f52-9a8a-4cee-bf2e-fdd85b6ba1e2",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        144
      ],
      "parameters": {
        "width": 304,
        "height": 336,
        "content": "## 🟣 Fetch All Active Jira Issues\n**Action:**  \n- Retrieves all project issues from Jira for processing.  \n**Description:**  \n- Connects via Jira API using OAuth or credentials.  \n- Pulls keys, summar"
      }
    },
    {
      "id": "3f725293-56f6-43ee-9aa5-1f5cb72e065e",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        -752
      ],
      "parameters": {
        "width": 336,
        "height": 400,
        "content": "## 📈 Log Dependency Updates to Tracking Dashboard\n**Action:**  \n- Saves all processed dependency updates into a Google Sheet for tracking.  \n**Description:**  \n- Logs key, summary, assignee, status, r"
      }
    },
    {
      "id": "16c0a63e-1eeb-4408-94f2-11e4b6b74e30",
      "name": "Fetch All Active Jira Issues",
      "type": "n8n-nodes-base.jira",
      "position": [
        -864,
        -16
      ]
    },
    {
      "id": "44a7ac98-cc74-465e-986c-e757963f64fd",
      "name": "Validate Jira Query Response",
      "type": "n8n-nodes-base.if",
      "position": [
        -592,
        -16
      ]
    },
    {
      "id": "5103029f-44a5-401c-ab8a-0376fbdd8216",
      "name": "Log Jira Query Failures to Error Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -320,
        256
      ]
    },
    {
      "id": "b4b6612d-e0c1-41e6-9a16-b0a47bdbcee4",
      "name": "Identify Dependency Update Issues ",
      "type": "n8n-nodes-base.filter",
      "position": [
        -256,
        -16
      ]
    },
    {
      "id": "f3d4484f-23ad-4034-8c6e-aa006a9a28e4",
      "name": "Extract Relevant Issue Metadata",
      "type": "n8n-nodes-base.set",
      "position": [
        48,
        -16
      ]
    },
    {
      "id": "ffb64563-2919-4c1d-845c-7dc6e4b19506",
      "name": "Alert DevOps Team in Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        320,
        -16
      ]
    },
    {
      "id": "83956de1-806c-4022-82d3-b61ee76bf685",
      "name": "AI-Powered Risk Assessment Analyzer",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        576,
        -16
      ]
    },
    {
      "id": "5320a5e4-a76f-4a2b-ad4e-d6233ac6b047",
      "name": "GPT-4o Language Model Configuration",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        496,
        288
      ]
    },
    {
      "id": "74e29a6b-182b-425f-8969-861ddf2becff",
      "name": " Parse AI Response to Structured Data",
      "type": "n8n-nodes-base.code",
      "position": [
        976,
        -16
      ]
    },
    {
      "id": "5fa12a2e-d3c5-496b-820d-d4dad8d9485a",
      "name": "Post AI Risk Assessment to Jira Ticket",
      "type": "n8n-nodes-base.jira",
      "position": [
        1312,
        -16
      ]
    },
    {
      "id": "04aead69-71ed-4dd0-90d8-f4a0dcb09000",
      "name": "Log Dependency Updates to Tracking Dashboard",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1312,
        -320
      ]
    }
  ],
  "connections": {
    "Alert DevOps Team in Slack": {
      "main": [
        [
          {
            "node": "AI-Powered Risk Assessment Analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch All Active Jira Issues": {
      "main": [
        [
          {
            "node": "Validate Jira Query Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Jira Query Response": {
      "main": [
        [
          {
            "node": "Identify Dependency Update Issues ",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Log Jira Query Failures to Error Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Relevant Issue Metadata": {
      "main": [
        [
          {
            "node": "Alert DevOps Team in Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Identify Dependency Update Issues ": {
      "main": [
        [
          {
            "node": "Extract Relevant Issue Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI-Powered Risk Assessment Analyzer": {
      "main": [
        [
          {
            "node": " Parse AI Response to Structured Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT-4o Language Model Configuration": {
      "ai_languageModel": [
        [
          {
            "node": "AI-Powered Risk Assessment Analyzer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Fetch All Active Jira Issues",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " Parse AI Response to Structured Data": {
      "main": [
        [
          {
            "node": "Post AI Risk Assessment to Jira Ticket",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Dependency Updates to Tracking Dashboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post AI Risk Assessment to Jira Ticket": {
      "main": [
        []
      ]
    }
  }
}