{
  "name": "Automate change request workflow: Monday.com to Jira with Slack & Sheets",
  "nodes": [
    {
      "id": "b8a91ff9-d449-45c9-b706-61e83d030052",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        -512
      ],
      "parameters": {
        "width": 389,
        "height": 535,
        "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- Fetches change requests from Monday.com daily\n- Rout"
      }
    },
    {
      "id": "0bdc7dc2-9c82-4244-ac4b-705a9614327f",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -880,
        -240
      ]
    },
    {
      "id": "7d410d1e-b7c0-4437-a1bd-a3204182b655",
      "name": "Note - Schedule",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        -512
      ],
      "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**Cron:** `0 3 * * 1-5`\n\n**Customize:** Adjust timing based on your team's timezone and workfl"
      }
    },
    {
      "id": "a88be726-9d70-4b65-b27e-8f6de2aa6000",
      "name": "Fetch Change Requests",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -688,
        -240
      ]
    },
    {
      "id": "82495c67-2b53-4687-9403-d149fae710b6",
      "name": "Note - Fetch",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        -96
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 📋 Fetch Requests\n\n**Setup Required:**\n1. Replace `YOUR_BOARD_ID` with your Monday.com board ID\n2. Update `groupId` if using different group\n3. Connect Monday.com credentials\n\n**Fetches:** All chang"
      }
    },
    {
      "id": "34f52f17-bcae-4ee9-91b2-21bcf735715b",
      "name": "Extract Request Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -464,
        -240
      ]
    },
    {
      "id": "711aebae-2618-4900-8b45-220ca132c4ba",
      "name": "Note - Extract",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -544
      ],
      "parameters": {
        "width": 262,
        "height": 293,
        "content": "## 🔄 Data Transformation\n\nExtracts and maps Monday.com columns to clean fields.\n\n**Mapped Fields:**\n- ID, Name, Status\n- Component affected\n- Approvers\n- Description\n- Risk Level\n\n**Note:** Adjust col"
      }
    },
    {
      "id": "5f7bbae1-47bd-4093-809b-0a108e4dd5fd",
      "name": "Filter Pending Requests",
      "type": "n8n-nodes-base.if",
      "position": [
        -240,
        -240
      ]
    },
    {
      "id": "67a96247-6ade-4425-b15d-a27dbc97945a",
      "name": "Note - Status Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -80
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 🔀 Status Router\n\nRoutes requests based on status.\n\n**True Branch:** Status = \"Pending\"\n- Sends notification to stakeholders\n\n**False Branch:** Status = \"Approved\" or \"Rejected\"\n- Continues to next "
      }
    },
    {
      "id": "7334c79d-6312-4102-878b-e71e6c74a391",
      "name": "Notify Pending Request",
      "type": "n8n-nodes-base.slack",
      "position": [
        -16,
        -336
      ]
    },
    {
      "id": "7e709062-4468-4156-8d6b-e5924dcd055d",
      "name": "Note - Pending Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -608
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## 💬 Slack Alert - Pending\n\n**Setup Required:**\n1. Replace `YOUR_CHANNEL_ID` with Slack channel ID\n2. Connect Slack API credentials\n\n**Sends:** Notification for pending approvals with all request deta"
      }
    },
    {
      "id": "19f26741-55e1-4414-82e1-7e18eb2a25c6",
      "name": "Filter Approved Requests",
      "type": "n8n-nodes-base.if",
      "position": [
        -16,
        -144
      ]
    },
    {
      "id": "2e1b935e-9a0d-4ae6-8683-1aa981086636",
      "name": "Note - Approved Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        0
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## ✅ Approved Router\n\n**True Branch:** Status = \"Approved\"\n- Creates Jira ticket\n- Logs to Google Sheets\n\n**False Branch:** Status = \"Rejected\"\n- Handles resubmission flow"
      }
    },
    {
      "id": "38e773fd-a193-4768-a5b9-a08e09d995e5",
      "name": "Create Jira Ticket",
      "type": "n8n-nodes-base.jira",
      "position": [
        224,
        -336
      ]
    },
    {
      "id": "3b269183-16cb-472e-ad53-55eec45dcb7a",
      "name": "Note - Jira",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        -592
      ],
      "parameters": {
        "width": 262,
        "height": 237,
        "content": "## 🎫 Create Jira Issue\n\n**Setup Required:**\n1. Replace `YOUR_PROJECT_ID` with Jira project ID\n2. Update issue type if needed\n3. Connect Jira credentials\n\n**Creates:** Task with request name and descri"
      }
    },
    {
      "id": "5c7ae18a-9006-4fe2-965b-9158dc97a071",
      "name": "Log to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        -144
      ]
    },
    {
      "id": "e9131c3a-0780-4327-a6aa-5dfa1b78c6f5",
      "name": "Note - Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        176
      ],
      "parameters": {
        "width": 262,
        "height": 309,
        "content": "## 📊 Audit Trail\n\n**Setup Required:**\n1. Replace `YOUR_SHEET_ID` with Google Sheets document ID\n2. Replace `YOUR_SHEET_GID` with sheet tab ID\n3. Connect Google OAuth2 credentials\n\n**Logs:** All approv"
      }
    },
    {
      "id": "20d32c52-d750-46b6-96b9-de5973da359d",
      "name": "Notify Approval",
      "type": "n8n-nodes-base.slack",
      "position": [
        448,
        -336
      ]
    },
    {
      "id": "f09cf9cc-1a82-4c7e-92f1-ee4c289d10da",
      "name": "Note - Approved Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        -224
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 💬 Slack Alert - Approved\n\n**Setup Required:**\n1. Use same Slack channel ID\n2. Same credentials as pending notification\n\n**Sends:** Confirmation with Jira ticket key for approved requests"
      }
    },
    {
      "id": "aeb63837-91ff-4cc6-bc41-8535632dfef5",
      "name": "Send Confirmation Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        672,
        -336
      ]
    },
    {
      "id": "0af472d6-740a-4fba-9c8e-1048ae537732",
      "name": "Note - Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        -576
      ],
      "parameters": {
        "width": 262,
        "height": 301,
        "content": "## 📧 Email Confirmation\n\n**Setup Required:**\n1. Replace `YOUR_EMAIL@example.com` with recipient\n2. Connect Gmail OAuth2 credentials\n\n**Sends:** Professional confirmation email with Jira ticket link"
      }
    },
    {
      "id": "201bb8ec-0ef7-4477-b0f1-1e1edb305b1f",
      "name": "Filter Rejected Requests",
      "type": "n8n-nodes-base.if",
      "position": [
        224,
        64
      ]
    },
    {
      "id": "b95b46e2-6495-4588-951a-d26e914460e1",
      "name": "Note - Rejected Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        224
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## ❌ Rejected Router\n\n**True Branch:** Status = \"Rejected\"\n- Creates resubmission item in Monday.com\n\n**False Branch:** No action\n- End of workflow for other statuses"
      }
    },
    {
      "id": "03d9109c-b8ed-4946-904f-0623d2460088",
      "name": "Create Resubmission Item",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        448,
        64
      ]
    },
    {
      "id": "041490e8-5ad2-4333-8428-615b07fb2677",
      "name": "Note - Resubmit",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        64
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 🔄 Resubmission Handler\n\n**Setup Required:**\n1. Use same board ID as fetch node\n2. Same Monday.com credentials\n\n**Creates:** New item prefixed with \"Resubmission:\" for rejected requests"
      }
    }
  ],
  "connections": {
    "Notify Approval": {
      "main": [
        [
          {
            "node": "Send Confirmation Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch Change Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Jira Ticket": {
      "main": [
        [
          {
            "node": "Notify Approval",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Request Data": {
      "main": [
        [
          {
            "node": "Filter Pending Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Change Requests": {
      "main": [
        [
          {
            "node": "Extract Request Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Pending Requests": {
      "main": [
        [
          {
            "node": "Notify Pending Request",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Filter Approved Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Approved Requests": {
      "main": [
        [
          {
            "node": "Create Jira Ticket",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Filter Rejected Requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Rejected Requests": {
      "main": [
        [
          {
            "node": "Create Resubmission Item",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}