从 Monday.com 到 Jira、Slack 和 Google Sheets 的简化变更请求审查

高级

这是一个自动化工作流,包含 25 个节点。主要使用 If、Set、Jira、Gmail、Slack 等节点。 自动化变更请求工作流:从Monday.com到Jira,集成Slack和Sheets

前置要求
  • Google 账号和 Gmail API 凭证
  • Slack Bot Token 或 Webhook URL
  • Google Sheets API 凭证

分类

未分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "qcrbyv2z8OnQhJ8F",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "从 Monday.com 到 Jira、Slack 和 Google Sheets 的简化变更请求审查",
  "tags": [],
  "nodes": [
    {
      "id": "b8a91ff9-d449-45c9-b706-61e83d030052",
      "name": "工作流概览",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        -512
      ],
      "parameters": {
        "color": 4,
        "width": 389,
        "height": 535,
        "content": "## 🎯 变更请求审批工作流"
      },
      "typeVersion": 1
    },
    {
      "id": "0bdc7dc2-9c82-4244-ac4b-705a9614327f",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -880,
        -240
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 3 * * 1-5"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7d410d1e-b7c0-4437-a1bd-a3204182b655",
      "name": "注释 - 计划",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        -512
      ],
      "parameters": {
        "width": 262,
        "height": 253,
        "content": "## ⏰ 每日计划"
      },
      "typeVersion": 1
    },
    {
      "id": "a88be726-9d70-4b65-b27e-8f6de2aa6000",
      "name": "获取变更请求",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -688,
        -240
      ],
      "parameters": {
        "boardId": "YOUR_BOARD_ID",
        "groupId": "topics",
        "resource": "boardItem",
        "operation": "getAll"
      },
      "typeVersion": 1
    },
    {
      "id": "82495c67-2b53-4687-9403-d149fae710b6",
      "name": "注释 - 获取",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        -96
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 📋 获取请求"
      },
      "typeVersion": 1
    },
    {
      "id": "34f52f17-bcae-4ee9-91b2-21bcf735715b",
      "name": "提取请求数据",
      "type": "n8n-nodes-base.set",
      "position": [
        -464,
        -240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1970365-569f-4272-a0a1-cfb19592ae14",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "20ee1686-786d-4702-8786-562dd485ae77",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "3957374a-b750-40d9-889a-0b8cc320d317",
              "name": "Component affected",
              "type": "string",
              "value": "={{ $json.column_values[4].text }}"
            },
            {
              "id": "7724954e-5ab9-493d-ac12-f8da9754561b",
              "name": "Approvers",
              "type": "string",
              "value": "={{ $json.column_values[5].text }}"
            },
            {
              "id": "c749e528-e47e-4de6-b40a-8ae74acfcb52",
              "name": "Status",
              "type": "string",
              "value": "={{ $json.column_values[1].text }}"
            },
            {
              "id": "c74e1543-2ac9-46dc-aa93-0e45ca8f1dbd",
              "name": "Description",
              "type": "string",
              "value": "={{ $json.column_values[6].text }}"
            },
            {
              "id": "59caec12-5c47-498e-a784-28c3b92a2fb0",
              "name": "Risk Level",
              "type": "string",
              "value": "={{ $json.column_values[3].text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "711aebae-2618-4900-8b45-220ca132c4ba",
      "name": "注释 - 提取",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -544
      ],
      "parameters": {
        "width": 262,
        "height": 293,
        "content": "## 🔄 数据转换"
      },
      "typeVersion": 1
    },
    {
      "id": "5f7bbae1-47bd-4093-809b-0a108e4dd5fd",
      "name": "筛选待处理请求",
      "type": "n8n-nodes-base.if",
      "position": [
        -240,
        -240
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.Status }}",
              "value2": "Pending"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "67a96247-6ade-4425-b15d-a27dbc97945a",
      "name": "注释 - 状态路由",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -80
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 🔀 状态路由器"
      },
      "typeVersion": 1
    },
    {
      "id": "7334c79d-6312-4102-878b-e71e6c74a391",
      "name": "通知待处理请求",
      "type": "n8n-nodes-base.slack",
      "position": [
        -16,
        -336
      ],
      "webhookId": "4d3540d3-4828-43ec-a1b9-570a9b02f187",
      "parameters": {
        "text": "=🔔 New Request Requires Your Approval\n\n*Name:* {{ $json.name }}\n*Request:* {{ $json.Description }}\n*Risk Level:* {{ $json['Risk Level'] }}\n*Component:* {{ $json['Component affected'] }}\n*Approver:* {{ $json.Approvers }}\n\nPlease review and update the status in Monday.com",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CHANNEL_ID",
          "cachedResultName": "change-requests"
        },
        "otherOptions": {}
      },
      "typeVersion": 2
    },
    {
      "id": "7e709062-4468-4156-8d6b-e5924dcd055d",
      "name": "注释 - 待处理 Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -608
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## 💬 Slack 警报 - 待处理"
      },
      "typeVersion": 1
    },
    {
      "id": "19f26741-55e1-4414-82e1-7e18eb2a25c6",
      "name": "筛选已批准请求",
      "type": "n8n-nodes-base.if",
      "position": [
        -16,
        -144
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.Status }}",
              "value2": "Approved"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2e1b935e-9a0d-4ae6-8683-1aa981086636",
      "name": "注释 -",
      "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"
      },
      "typeVersion": 1
    },
    {
      "id": "38e773fd-a193-4768-a5b9-a08e09d995e5",
      "name": "创建 Jira 工单",
      "type": "n8n-nodes-base.jira",
      "position": [
        224,
        -336
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_PROJECT_ID",
          "cachedResultName": "Change Management"
        },
        "summary": "={{ $json.name }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10006",
          "cachedResultName": "Task"
        },
        "additionalFields": {
          "description": "={{ $json.Description }}"
        }
      },
      "typeVersion": 1
    },
    {
      "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 description"
      },
      "typeVersion": 1
    },
    {
      "id": "5c7ae18a-9006-4fe2-965b-9158dc97a071",
      "name": "记录到Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        -144
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Component affected",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Component affected",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Approvers",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Approvers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Risk Level",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Risk Level",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_GID",
          "cachedResultName": "Approved Requests"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_ID",
          "cachedResultName": "Change Request Log"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sOplQNr4zvwQul4A",
          "name": "jyothi"
        }
      },
      "typeVersion": 4.7
    },
    {
      "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 approved requests for compliance tracking"
      },
      "typeVersion": 1
    },
    {
      "id": "20d32c52-d750-46b6-96b9-de5973da359d",
      "name": "Notify Approval",
      "type": "n8n-nodes-base.slack",
      "position": [
        448,
        -336
      ],
      "webhookId": "ec9807fb-4b9f-44be-869e-c8b47998bd34",
      "parameters": {
        "text": "=🔔 Request Approved\n\n*Name:* {{ $('Filter Approved Requests').item.json.name }}\n*Request:* {{ $('Filter Approved Requests').item.json.Description }}\n*Risk Level:* {{ $('Filter Approved Requests').item.json[\"Risk Level\"] }}\n*Component:* {{ $('Filter Approved Requests').item.json[\"Component affected\"] }}\n*Approver:* {{ $('Filter Approved Requests').item.json.Approvers }}\n*Jira Ticket:* {{ $json.key }}\n\nPlease proceed with implementation.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CHANNEL_ID",
          "cachedResultName": "change-requests"
        },
        "otherOptions": {}
      },
      "typeVersion": 2
    },
    {
      "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"
      },
      "typeVersion": 1
    },
    {
      "id": "aeb63837-91ff-4cc6-bc41-8535632dfef5",
      "name": "发送确认邮件",
      "type": "n8n-nodes-base.gmail",
      "position": [
        672,
        -336
      ],
      "webhookId": "01e06999-8949-4cea-8b71-03196adf5bb9",
      "parameters": {
        "sendTo": "YOUR_EMAIL@example.com",
        "message": "=Your change request has been approved.\n\nName: {{ $('Filter Approved Requests').item.json.name }}\nComponent affected: {{ $('Filter Approved Requests').item.json[\"Component affected\"] }}\n\nJira Ticket: {{ $('Create Jira Ticket').item.json.key }}\n\nPlease proceed with the implementation as planned.",
        "options": {},
        "subject": "Change Request Approved",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "70f5n8rPahCANHs7",
          "name": "jyothi"
        }
      },
      "typeVersion": 2.1
    },
    {
      "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"
      },
      "typeVersion": 1
    },
    {
      "id": "201bb8ec-0ef7-4477-b0f1-1e1edb305b1f",
      "name": "Filter Rejected Requests",
      "type": "n8n-nodes-base.if",
      "position": [
        224,
        64
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.Status }}",
              "value2": "Rejected"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "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"
      },
      "typeVersion": 1
    },
    {
      "id": "03d9109c-b8ed-4946-904f-0623d2460088",
      "name": "Create Resubmission Item",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        448,
        64
      ],
      "parameters": {
        "name": "=Resubmission: {{ $json.name }}",
        "boardId": "YOUR_BOARD_ID",
        "groupId": "topics",
        "resource": "boardItem",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "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"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ad65aef6-ec63-402b-b1b9-eac62f2064c3",
  "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
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

这是一个高级难度的通用自动化工作流。适合高级用户,包含 16+ 个节点的复杂工作流

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量25
分类-
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Rahul Joshi

Rahul Joshi

@rahul08

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.

外部链接
在 n8n.io 上查看 →

分享此工作流