AutomationFlowsSlack & Telegram › Enforce Pre-release Compliance with Jira, Monday.com, and Slack Alerts

Enforce Pre-release Compliance with Jira, Monday.com, and Slack Alerts

ByRahul Joshi @rahul08 on n8n.io

Description: Guarantee that only fully compliant stories and tasks make it into your release with this n8n automation template. The workflow monitors Jira for issue updates and link changes, validates whether each story meets the Definition of Done (DoD), and automatically flags…

Event trigger★★★★☆ complexity15 nodesJira TriggerSlackJiraMonday.com
Slack & Telegram Trigger: Event Nodes: 15 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #9838 — we link there as the canonical source.

This workflow follows the Jira → Slack recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "A73D8rbRrwu9XDZu",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Release Readiness Gatekeeper (Jira)",
  "tags": [],
  "nodes": [
    {
      "id": "400b8df2-89e3-48c8-98c1-20ab3e0c8a43",
      "name": "Jira Webhook - Detect Issue Changes",
      "type": "n8n-nodes-base.jiraTrigger",
      "position": [
        1040,
        1184
      ],
      "parameters": {
        "events": [
          "issuelink_created",
          "jira:issue_updated"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "de855356-e494-4ed5-90f6-09e399808a17",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        832
      ],
      "parameters": {
        "width": 346,
        "height": 285,
        "content": "## \ud83c\udfaf WORKFLOW START\n\n**Purpose:** This trigger listens for Jira issue updates and link creations.\n\n**When it fires:**\n- When an issue is updated\n- When an issue link is created\n\n**Next Step:** Fetches the full issue details to validate release readiness."
      },
      "typeVersion": 1
    },
    {
      "id": "f619537b-67fe-4c6a-8dc9-952d6c9c5aa2",
      "name": "Process Issues One by One",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1600,
        1184
      ],
      "parameters": {
        "options": {},
        "batchSize": 1
      },
      "typeVersion": 1
    },
    {
      "id": "7bde4ee0-f56e-4edf-b175-06b3b6b7147b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        736
      ],
      "parameters": {
        "width": 346.0397350993378,
        "height": 364.8309178743961,
        "content": "## \ud83d\udd04 BATCH PROCESSOR\n\n**Purpose:** Processes multiple issues individually to ensure each is validated separately.\n\n**Batch Size:** 1 issue at a time\n\n**Why:** Allows proper validation and error handling for each issue independently."
      },
      "typeVersion": 1
    },
    {
      "id": "ffc52fdf-8862-473b-b03a-2ed7e1f5396d",
      "name": "Is Definition of Done Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        1888,
        1072
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{$json[\"fields\"][\"customfield_DoD\"]}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "79a435f5-d858-498a-8175-4d9e2f807b20",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2016,
        608
      ],
      "parameters": {
        "width": 346.0397350993378,
        "height": 364.8309178743961,
        "content": "## \u2705 VALIDATION CHECKPOINT\n\n**Purpose:** Checks if the issue meets the Definition of Done criteria.\n\n**Check:** customfield_DoD = true\n\n**Paths:**\n- \u2705 TRUE \u2192 Issue is ready for release\n- \u274c FALSE \u2192 Issue needs more work (mark non-compliant)"
      },
      "typeVersion": 1
    },
    {
      "id": "8f4ca2ae-8ea8-4be4-8263-9b9287930d62",
      "name": "Flag Issue as Non-Compliant",
      "type": "n8n-nodes-base.set",
      "position": [
        2112,
        1296
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "issueKey",
              "value": "={{$json[\"key\"]}}"
            },
            {
              "name": "reason",
              "value": "Definition of Done not met"
            },
            {
              "name": "status",
              "value": "Non-Compliant"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "6b6c87be-f829-496d-b1c3-310e501bba3a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        1472
      ],
      "parameters": {
        "width": 346.0397350993378,
        "height": 364.8309178743961,
        "content": "## \u26a0\ufe0f NON-COMPLIANT PATH\n\n**Purpose:** Marks issues that don't meet release criteria.\n\n**Data Set:**\n- Issue Key\n- Reason: \"Definition of Done not met\"\n- Status: Non-Compliant\n\n**Next:** Creates tracking item in Monday.com"
      },
      "typeVersion": 1
    },
    {
      "id": "dd5eb686-8dfb-46b4-b570-6fde0856ac6f",
      "name": "Send Slack Alert to Team",
      "type": "n8n-nodes-base.slack",
      "position": [
        2800,
        1184
      ],
      "parameters": {
        "text": "\ud83d\udea6 Release readiness check complete for version {{$json[\"version\"].name}}.\n\n\u2705 Compliant issues: Ready for release\n\u26a0\ufe0f Non-compliant issues: Moved back to In Review\n\nCheck Monday.com board for details.",
        "channel": "#release-updates",
        "attachments": [],
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3219c0a1-2275-4532-a252-5890badade3a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2704,
        944
      ],
      "parameters": {
        "width": 346.0397350993378,
        "height": 364.8309178743961,
        "content": "## \ud83d\udce2 TEAM NOTIFICATION\n\n**Purpose:** Notifies the team about release readiness status.\n\n**Channel:** #release-updates\n\n**Message Includes:**\n- Version name\n- Compliant vs non-compliant count\n- Link to Monday.com board\n\n**Trigger:** Runs after all validations complete"
      },
      "typeVersion": 1
    },
    {
      "id": "35b94e87-c9c7-4eff-9d28-3e7f45e34695",
      "name": "Fetch Full Issue Details",
      "type": "n8n-nodes-base.jira",
      "position": [
        1296,
        1184
      ],
      "parameters": {
        "issueKey": "={{ $json.key }}",
        "operation": "get",
        "additionalFields": {}
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cacda6f1-937c-4f76-b6c3-b76751aaa35d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        1408
      ],
      "parameters": {
        "width": 346,
        "height": 301,
        "content": "## \ud83d\udccb ISSUE RETRIEVAL\n\n**Purpose:** Gets complete issue data from Jira.\n\n**Retrieved Data:**\n- All custom fields\n- Status\n- Definition of Done field\n- Linked issues\n\n**Why:** Webhook only provides basic info; we need full details for validation."
      },
      "typeVersion": 1
    },
    {
      "id": "d9760ef1-f926-4df0-ace9-5a9bcccf0543",
      "name": "Track in Monday.com Board",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        2432,
        1296
      ],
      "parameters": {
        "name": "Non-Compliant: {{ $json.issueKey }}",
        "boardId": "5014935897",
        "groupId": "topics",
        "resource": "boardItem",
        "additionalFields": {
          "columnValues": "={\"text\": \"{{ $json.reason }}\", \"status\": \"{{ $json.status }}\"}"
        }
      },
      "credentials": {
        "mondayComApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9425c263-a246-4ce4-ab2d-cc645eebbd33",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        1456
      ],
      "parameters": {
        "width": 346.0397350993378,
        "height": 364.8309178743961,
        "content": "## \ud83d\udcca PROJECT TRACKING\n\n**Purpose:** Creates a tracking item in Monday.com for non-compliant issues.\n\n**Board:** Release Issues\n**Group:** Topics\n\n**Item Details:**\n- Title: Non-Compliant: [Issue Key]\n- Reason for non-compliance\n- Current status\n\n**Benefit:** Centralized tracking of blockers"
      },
      "typeVersion": 1
    },
    {
      "id": "78b0ee69-7852-4d92-912a-3eb3afcf999b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        1072
      ],
      "parameters": {
        "width": 543,
        "height": 306,
        "content": "## \ud83c\udfaf WORKFLOW SUMMARY\n\n**What This Automation Does:**\n\n1. **Monitors** Jira issues for updates\n2. **Validates** Definition of Done criteria\n3. **Separates** compliant from non-compliant issues\n4. **Tracks** blockers in Monday.com\n5. **Notifies** team via Slack\n\n**Use Case:** Ensures only release-ready issues make it to production\n\n**Team:** Release Management"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a0d0015b-1fd7-42c9-abaf-c286629c9eae",
  "connections": {
    "Fetch Full Issue Details": {
      "main": [
        [
          {
            "node": "Process Issues One by One",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Issues One by One": {
      "main": [
        [
          {
            "node": "Is Definition of Done Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Flag Issue as Non-Compliant": {
      "main": [
        [
          {
            "node": "Track in Monday.com Board",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Definition of Done Complete?": {
      "main": [
        [
          {
            "node": "Send Slack Alert to Team",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Flag Issue as Non-Compliant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira Webhook - Detect Issue Changes": {
      "main": [
        [
          {
            "node": "Fetch Full Issue Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Description: Guarantee that only fully compliant stories and tasks make it into your release with this n8n automation template. The workflow monitors Jira for issue updates and link changes, validates whether each story meets the Definition of Done (DoD), and automatically flags…

Source: https://n8n.io/workflows/9838/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This workflow is an AI-powered roto matte generation and first-pass compositing pipeline designed for VFX production. It transforms structured roto requests into multiple high-precision matte passes u

HTTP Request, Slack, Error Trigger +4
Slack & Telegram

This n8n template from Intuz provides a complete and automated solution for preparing and delivering context-rich briefings directly to attendees before every meeting.

Google Calendar Trigger, Notion, GitHub +3
Slack & Telegram

This workflow automates the incident response lifecycle — from creation to communication and archival. It instantly creates Jira tickets for new incidents, alerts the on-call Slack team, generates tim

Jira, Slack, Google Sheets +1
Slack & Telegram

Automatically convert structured Slack messages into Jira issues with parsed titles, descriptions, and priorities. This workflow also downloads file attachments from Slack (e.g., screenshots, logs, or

Slack Trigger, Jira, Slack +1
Slack & Telegram

New Google Form response triggers the workflow Checks if employee was already onboarded (prevents duplicates) Adds user to department-specific Slack channel If in Software department, grants GitHub re

Google Sheets Trigger, Slack, HTTP Request +2