{
  "name": "Automate change request approvals with Monday.com, Jira, Slack & Google Sheets",
  "nodes": [
    {
      "id": "4415994b-5b1d-4277-9089-201f714d2770",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2400,
        160
      ],
      "parameters": {
        "width": 389,
        "height": 829,
        "content": "## 🎯 Change Request Approval Workflow\n\nAutomated change management system that routes requests based on risk level and status.\n\n**What it does:**\n\n- Fetches change requests from Monday.com daily\n- Rou"
      }
    },
    {
      "id": "c051e25e-ccee-4210-a131-6ba155486876",
      "name": "Note - Schedule",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1936,
        112
      ],
      "parameters": {
        "width": 262,
        "height": 253,
        "content": "## ⏰ Daily Schedule\n\nRuns weekdays at 3:00 AM to process change requests.\n\n**Schedule:** Mon-Fri at 03:00\n\n**Cron:** `0 3 * * 1-5`\n\n**Customize:** Adjust timing based on your team's timezone and workf"
      }
    },
    {
      "id": "7a86c05e-6d0f-4996-a558-6b0c744715c5",
      "name": "Note - Extract",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        96
      ],
      "parameters": {
        "width": 262,
        "height": 293,
        "content": "## 📄 Data Transformation\n\nExtracts and maps Monday.com columns to clean fields.\n\n**Mapped Fields:**\n\n- ID, Name, Status\n- Component affected\n- Approvers\n- Description\n- Risk Level\n\n**Note:** Adjust co"
      }
    },
    {
      "id": "5c37acc1-3bc0-49af-8949-b0a816783513",
      "name": "Note - Pending Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        80
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## 💬 Slack Alert - Pending\n\n**Setup Required:**\n\n1. Replace channel ID with your Slack channel ID\n2. Connect Slack API credentials\n\n**Sends:** Notification for pending approvals with all request detai"
      }
    },
    {
      "id": "6543192f-0aed-4e37-b6a8-476c11079bd6",
      "name": "Note - Approved Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        656
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## ✅ Approved Router\n\n**True Branch:** Status = \"Approved\"\n\n- Creates Jira ticket\n- Logs to Google Sheets\n\n**False Branch:** Status = \"Rejected\"\n\n- Handles resubmission flow"
      }
    },
    {
      "id": "d9053b68-9c61-42e1-a7ec-260daea118f6",
      "name": "Note - Jira",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -672,
        32
      ],
      "parameters": {
        "width": 262,
        "height": 237,
        "content": "## 🎫 Create Jira Issue\n\n**Setup Required:**\n\n1. Select your Jira project from the dropdown\n2. Update issue type if needed\n3. Connect Jira credentials\n\n**Creates:** Task with request name and descripti"
      }
    },
    {
      "id": "b7c1819c-59ec-4f8e-932e-1ef92c45be41",
      "name": "Note - Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        736
      ],
      "parameters": {
        "width": 262,
        "height": 309,
        "content": "## 📊 Audit Trail\n\n**Setup Required:**\n\n1. Select your Google Sheets document from the dropdown\n2. Select the sheet tab to log data\n3. Connect Google OAuth2 credentials\n\n**Logs:** All approved requests"
      }
    },
    {
      "id": "42234c45-21e7-48c2-a9e7-cce57fb83764",
      "name": "Note - Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -16
      ],
      "parameters": {
        "width": 262,
        "height": 301,
        "content": "## 📧 Email Confirmation\n\n**Setup Required:**\n\n1. Replace email address with recipient\n2. Connect Gmail OAuth2 credentials\n\n**Sends:** Professional confirmation email with Jira ticket link"
      }
    },
    {
      "id": "02732fa9-e577-47b8-a458-fb0cffdd572d",
      "name": "Note - Rejected Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        896
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## ❌ Rejected Router\n\n**True Branch:** Status = \"Rejected\"\n\n- Creates resubmission item in Monday.com\n\n**False Branch:** No action\n\n- End of workflow for other statuses"
      }
    },
    {
      "id": "602b9d11-71de-4fb2-af67-27962728ff67",
      "name": "Note - Resubmit",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        880
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 🔄 Resubmission Handler\n\n**Setup Required:**\n\n1. Use same board ID as fetch node\n2. Same Monday.com credentials\n\n**Creates:** New item prefixed with \"Resubmission:\" for rejected requests"
      }
    },
    {
      "id": "d07b2336-0cc0-4a83-a2a0-dbadf6c1bbee",
      "name": "Note - Approved Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        560
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 💬 Slack Alert - Approved\n\n**Setup Required:**\n\n1. Use same Slack channel ID\n2. Same credentials as pending notification\n\n**Sends:** Confirmation with Jira ticket key for approved requests"
      }
    },
    {
      "id": "e4099998-608c-4273-9d5b-0bc057d83d69",
      "name": "Note - Status Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1280,
        608
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 🔀 Status Router\n\nRoutes requests based on status.\n\n**True Branch:** Status = \"Pending\"\n\n- Sends notification to stakeholders\n\n**False Branch:** Status = \"Approved\" or \"Rejected\"\n\n- Continues to nex"
      }
    },
    {
      "id": "0902612f-4be1-4185-b750-c0a868710ded",
      "name": "Note - Fetch",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        592
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 📋 Fetch Requests\n\n**Setup Required:**\n\n1. Replace board ID with your Monday.com board ID\n2. Update groupId if using different group\n3. Connect Monday.com credentials\n\n**Fetches:** All change reques"
      }
    },
    {
      "id": "cd563c72-6ce4-41ef-81cd-ed6ba950dd65",
      "name": "Route by Risk Level",
      "type": "n8n-nodes-base.if",
      "position": [
        -1008,
        400
      ]
    },
    {
      "id": "88ca5e62-8d3d-44c6-bab1-30ea9e73e789",
      "name": "Route High Risk by Component",
      "type": "n8n-nodes-base.if",
      "position": [
        -560,
        688
      ]
    },
    {
      "id": "a7f1bad3-2585-495b-a951-8a2fe767bd8d",
      "name": "Route Low Risk by Component",
      "type": "n8n-nodes-base.if",
      "position": [
        -784,
        496
      ]
    },
    {
      "id": "e209b20d-78f6-458f-af95-bbe964956487",
      "name": "Get many items",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -1472,
        400
      ]
    },
    {
      "id": "783aa30c-2402-4899-9734-7f05fce7fe02",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -1232,
        400
      ]
    },
    {
      "id": "6cbf14f0-4022-48af-9f29-0a5b1a3803f7",
      "name": "Notify Stackholder Pending Request",
      "type": "n8n-nodes-base.slack",
      "position": [
        -784,
        304
      ]
    },
    {
      "id": "39356117-0088-485e-a937-9a6f193f2efe",
      "name": "Create an issue",
      "type": "n8n-nodes-base.jira",
      "position": [
        -560,
        304
      ]
    },
    {
      "id": "265a13bd-46ef-4152-8619-e81a7ded2b54",
      "name": "Notify Stackholder Approval Request",
      "type": "n8n-nodes-base.slack",
      "position": [
        -336,
        304
      ]
    },
    {
      "id": "7fd3b533-0233-47ac-ad7e-894157180e65",
      "name": "Resubmission Request",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -336,
        688
      ]
    },
    {
      "id": "6ab4dfe5-ab90-44ff-9e41-f3dc4b7ec317",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -560,
        496
      ]
    },
    {
      "id": "64da0343-40c7-47bf-b8f5-01eee31f65f0",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -112,
        304
      ]
    },
    {
      "id": "7de45a65-1eb9-48d5-b786-d55a9634ed0b",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1760,
        400
      ]
    }
  ],
  "connections": {
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Route by Risk Level",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many items": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create an issue": {
      "main": [
        [
          {
            "node": "Notify Stackholder Approval Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get many items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Risk Level": {
      "main": [
        [
          {
            "node": "Notify Stackholder Pending Request",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Route Low Risk by Component",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Low Risk by Component": {
      "main": [
        [
          {
            "node": "Create an issue",
            "type": "main",
            "index": 0
          },
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Route High Risk by Component",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route High Risk by Component": {
      "main": [
        [
          {
            "node": "Resubmission Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Stackholder Approval Request": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}