{
  "name": "Manage engineering change requests via webhooks and Slack approvals",
  "nodes": [
    {
      "id": "df5d467f-a92d-4bb7-82c3-50fe15665dd5",
      "name": "Webhook - Receive Drawing Change Request",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -208,
        0
      ]
    },
    {
      "id": "7d142bd4-d69d-43ef-9384-b1630b8faecb",
      "name": "IF - Validate Required Fields",
      "type": "n8n-nodes-base.if",
      "position": [
        48,
        0
      ]
    },
    {
      "id": "61fa5e4c-35d1-4593-bfbc-14267c572564",
      "name": "Switch - Determine Approver by Impact",
      "type": "n8n-nodes-base.switch",
      "position": [
        896,
        64
      ]
    },
    {
      "id": "dd868a0c-325c-48b4-89e5-d7e5f9c94407",
      "name": "Set Low",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        -224
      ]
    },
    {
      "id": "ed7001d2-e187-4ffd-b1ac-544ce52a9131",
      "name": "Set High",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        128
      ]
    },
    {
      "id": "3e15a561-ef6f-40b1-83ff-a61a6e176cc2",
      "name": "Set Medium",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        -32
      ]
    },
    {
      "id": "0384c030-560b-4f1c-a2a8-881145d88245",
      "name": "Set Medium (Fallback)",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        320
      ]
    },
    {
      "id": "9413b3e4-1858-4fc3-836d-880ac1de6dae",
      "name": "Notify Slack (Approval Request)",
      "type": "n8n-nodes-base.slack",
      "position": [
        1680,
        80
      ]
    },
    {
      "id": "3aaa7b82-9ae8-4f5b-bdeb-4b77ad2ac439",
      "name": "Wait (Form)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1872,
        80
      ]
    },
    {
      "id": "aca62028-ec94-4a5b-b196-66c5ed95842f",
      "name": "Notify Approval (Slack)",
      "type": "n8n-nodes-base.slack",
      "position": [
        2288,
        -16
      ]
    },
    {
      "id": "c48e5ef0-4ba5-49f5-a7d0-863903844a36",
      "name": "Notify Rejection (Slack)",
      "type": "n8n-nodes-base.slack",
      "position": [
        2288,
        176
      ]
    },
    {
      "id": "77b995f1-0376-4e8f-8924-f4c929ad11f1",
      "name": "Return Response (Error)",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        336,
        -128
      ]
    },
    {
      "id": "0c61661d-570e-4cf6-96e3-dc212865eaaf",
      "name": "Generate ECR Metadata (Set Node)",
      "type": "n8n-nodes-base.set",
      "position": [
        704,
        96
      ]
    },
    {
      "id": "c1a765da-51c5-4068-b406-a1f90aae42a1",
      "name": "Return Success (Respond to Webhook)",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1472,
        80
      ]
    },
    {
      "id": "0dc81c06-623d-4123-ac0c-ee4bde72ca62",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        -704
      ],
      "parameters": {
        "width": 3760,
        "height": 1344,
        "content": "## ⚙️ Manage Engineering Change Requests (ECR) via Slack\n\n## 📋 Overview\nStreamline your engineering change management process by integrating generic webhooks with Slack interactive approvals. This wor"
      }
    },
    {
      "id": "6c2fb377-08f3-4ff9-8cfb-6fd66a138fc5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -144
      ],
      "parameters": {
        "width": 752,
        "height": 336,
        "content": "Validate Incoming Request"
      }
    },
    {
      "id": "e491d0d3-7b26-476b-8d95-1eb8ba2456de",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        -272
      ],
      "parameters": {
        "width": 576,
        "height": 768,
        "content": "Determine Impact Level & Assign Metadata"
      }
    },
    {
      "id": "a4398b0b-950b-4f75-99d3-b1d6ee744587",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1632,
        -32
      ],
      "parameters": {
        "width": 416,
        "height": 368,
        "content": " Notify & Wait for Human Approval"
      }
    },
    {
      "id": "f6be5eb3-b3f6-4a49-b67a-1f658b069406",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2048,
        -32
      ],
      "parameters": {
        "width": 416,
        "height": 368,
        "content": " Process Decision"
      }
    },
    {
      "id": "0a650e48-3500-4541-9378-47e66a37b38d",
      "name": "Check Decision",
      "type": "n8n-nodes-base.switch",
      "position": [
        2080,
        80
      ]
    },
    {
      "id": "cd65a39e-d449-4f2c-ba21-88b5901521db",
      "name": "Generate Secure Token",
      "type": "n8n-nodes-base.crypto",
      "position": [
        512,
        96
      ]
    }
  ],
  "connections": {
    "Set Low": {
      "main": [
        [
          {
            "node": "Return Success (Respond to Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set High": {
      "main": [
        [
          {
            "node": "Return Success (Respond to Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Medium": {
      "main": [
        [
          {
            "node": "Return Success (Respond to Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait (Form)": {
      "main": [
        [
          {
            "node": "Check Decision",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Decision": {
      "main": [
        [
          {
            "node": "Notify Approval (Slack)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Rejection (Slack)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Secure Token": {
      "main": [
        [
          {
            "node": "Generate ECR Metadata (Set Node)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Medium (Fallback)": {
      "main": [
        [
          {
            "node": "Return Success (Respond to Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Validate Required Fields": {
      "main": [
        [
          {
            "node": "Return Response (Error)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Secure Token",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Slack (Approval Request)": {
      "main": [
        [
          {
            "node": "Wait (Form)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate ECR Metadata (Set Node)": {
      "main": [
        [
          {
            "node": "Switch - Determine Approver by Impact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Return Success (Respond to Webhook)": {
      "main": [
        [
          {
            "node": "Notify Slack (Approval Request)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch - Determine Approver by Impact": {
      "main": [
        [
          {
            "node": "Set Low",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Medium",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set High",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Medium (Fallback)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook - Receive Drawing Change Request": {
      "main": [
        [
          {
            "node": "IF - Validate Required Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}