{
  "name": "Real-time uptime alerts to Jira with smart Slack on-call routing",
  "nodes": [
    {
      "id": "1b1c8bc3-c0ad-4112-9e4c-8fa1d7a7514f",
      "name": "Receive Uptime Alert",
      "type": "n8n-nodes-base.webhook",
      "position": [
        576,
        720
      ]
    },
    {
      "id": "924594ee-fcb0-42ba-8113-418935b4ce39",
      "name": "Filter for Critical Status",
      "type": "n8n-nodes-base.if",
      "position": [
        784,
        720
      ]
    },
    {
      "id": "ff37c0a2-3cc3-4514-9572-abe46fa6acd1",
      "name": "Create New Jira Incident",
      "type": "n8n-nodes-base.jira",
      "position": [
        1072,
        704
      ]
    },
    {
      "id": "40afe805-f9ea-48f1-abe6-a7aca33ba35f",
      "name": "Get On-Call Channel Members",
      "type": "n8n-nodes-base.slack",
      "position": [
        1328,
        688
      ]
    },
    {
      "id": "46c30b16-3c56-4831-b55f-61ede1a4574e",
      "name": "Split/Process Each Member",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1520,
        704
      ]
    },
    {
      "id": "92d91b30-466d-4cef-8094-a5e5b72faa1c",
      "name": "Check Slack User Presence",
      "type": "n8n-nodes-base.slack",
      "position": [
        1760,
        704
      ]
    },
    {
      "id": "d30ac6d3-233d-4d26-b89f-5f4eb1ba8f91",
      "name": "Collect & Set Final Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2000,
        704
      ]
    },
    {
      "id": "86f6e01f-fed3-4628-88d2-bc942ab008a9",
      "name": "Notify Selected User",
      "type": "n8n-nodes-base.slack",
      "position": [
        1920,
        272
      ]
    },
    {
      "id": "654ccbc6-335d-4380-b365-cbb22da35c86",
      "name": "Select Active On-Call User",
      "type": "n8n-nodes-base.code",
      "position": [
        1728,
        272
      ]
    },
    {
      "id": "32ec235e-bdc6-4fa7-a1ef-af39bb012563",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        496
      ],
      "parameters": {
        "width": 416,
        "height": 400,
        "content": "###  Start Alert & Check Status\nThe workflow is triggered by an external webhook alert containing incident details. It immediately filters the incoming payload based on the alert's status (e.g., 'down"
      }
    },
    {
      "id": "52a2a324-a6be-4d04-9910-34b7ce07d0b1",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        496
      ],
      "parameters": {
        "width": 272,
        "height": 400,
        "content": "### Create Ticket in Jira\nUpon validation, a detailed Jira incident is instantly created. It uses dynamic data from the alert, including service name, downtime duration, and error code, to ensure all "
      }
    },
    {
      "id": "c71adc98-0dda-4c72-bc20-ffa13229146c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        496
      ],
      "parameters": {
        "width": 896,
        "height": 400,
        "content": "### Find Available Team Member\nThe workflow fetches all member IDs from the designated on-call Slack channel. It then loops through each individual member ID to check their current Slack presence stat"
      }
    },
    {
      "id": "d001bdb7-b00e-4453-8a30-6632d6dce3b6",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1632,
        128
      ],
      "parameters": {
        "width": 480,
        "height": 320,
        "content": "### Send Alert to User\nAll incident data and user statuses are combined for processing. A JavaScript code node implements the rotation logic to select a single active user. Finally, a direct Slack mes"
      }
    },
    {
      "id": "4a68b834-c4ef-4e30-833e-25576266ef33",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 448,
        "height": 608,
        "content": "## How it Work\nThis workflow starts when your uptime monitoring tool sends a webhook alert to n8n. The alert payload is checked to ensure the service status is down. Only critical outages pass through"
      }
    }
  ],
  "connections": {
    "Receive Uptime Alert": {
      "main": [
        [
          {
            "node": "Filter for Critical Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect & Set Final Data": {
      "main": [
        [
          {
            "node": "Split/Process Each Member",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create New Jira Incident": {
      "main": [
        [
          {
            "node": "Get On-Call Channel Members",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Slack User Presence": {
      "main": [
        [
          {
            "node": "Collect & Set Final Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split/Process Each Member": {
      "main": [
        [
          {
            "node": "Select Active On-Call User",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check Slack User Presence",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter for Critical Status": {
      "main": [
        [
          {
            "node": "Create New Jira Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select Active On-Call User": {
      "main": [
        [
          {
            "node": "Notify Selected User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get On-Call Channel Members": {
      "main": [
        [
          {
            "node": "Split/Process Each Member",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}