⚙️ Real-time uptime alerts to Jira with smart Slack on-call routing

13 views · ⚙️ DevOps & CI/CD

Description

Real-Time Uptime Alerts to Jira with Smart Slack On-Call Routing

This workflow automatically converts uptime monitoring alerts received via webhook into Jira incident tasks and intelligently notifies an available on-call team member on Slack based on their real-time presence status. It ensures critical service outages never go unnoticed by selecting an active responder and sending a detailed direct message immediately.

⚡ Quick Implementation Steps

  1. Import the workflow JSON into n8n.
  2. Configure your Webhook, Slack, and Jira credentials.
  3. Update the IF node to filter for status = down (already configured).
  4. Set the Jira project and issue type as required.
  5. Connect your Slack on-call channel.
  6. Activate the workflow and send a test alert using Postman or your monitoring tool.

What It Does

This automation listens for incoming alerts from any uptime monitoring service. When a system or service goes down, the workflow instantly validates whether the alert is critical (status = down). Once validated, it automatically creates a detailed Jira Task containing all relevant service details such as timestamp, downtime duration, error code, customer impact and priority.

After the Jira incident is created, the workflow retrieves a list of all members from a dedicated Slack on-call rotation channel. It checks each member’s Slack presence (active, away, offline) and uses smart selection logic to choose the best person to notify. The selected team member then receives a richly formatted direct Slack message containing all incident details and a link to the Jira ticket.

This ensures the alert is not only logged properly but also reaches the right responder at the right time.

Who’s It For

This workflow is perfect for:

Requirements to Use This Workflow

How It Works & How to Set Up

Step 1: Receive Alert from Uptime Monitoring Tool

Step 2: Filter for Critical Status

Step 3: Create Jira Incident Task

Step 4: Fetch Slack On-Call Channel Members

Step 5: Loop Through Each Member

Step 6: Build Final Data for Each User

Step 7: Select the Best On-Call User

A custom Code node uses presence-based logic:

Selection Logic

  1. If one or more users are active → randomly pick one active user.
  2. If only one user is active → pick that user.
  3. If no users are active → default to the first member from the channel.

This ensures you always get a responder.

Step 8: Notify Selected User

The selected on-call responder receives everything they need to act immediately.

How to Customize Nodes

Webhook Node

IF Node

Jira Node

You can customize:

Slack Retrieval Node

Slack Message Node

Add-Ons (Optional Extensions)

Enhance the workflow by adding:

1. Escalation Logic

If the selected user doesn’t respond within X minutes, notify next user.

2. PagerDuty / OpsGenie Integration

Trigger paging systems for SEV-1 incidents.

3. Status Page Updates

Automatically update public status pages.

4. Auto-Resolution

When service status returns to up, automatically:

5. Logging & Analytics

Store incidents in Google Sheets, Notion, or a database.

Use Case Examples

This workflow can support multiple real-world scenarios:

  1. Website Uptime Monitoring
    If your main website goes down, instantly create a Jira incident and notify your on-call engineer.

  2. API Downtime Alerting
    When an API endpoint fails health checks, alert active developers only.

  3. Microservices Monitoring
    Each microservice alert triggers a consistent, automated incident creation and notification.

  4. Infrastructure Failure Detection
    When servers, containers, or VMs become unreachable, escalate to your infrastructure team.

  5. Database Performance Degradation
    If DB uptime drops or error rate spikes, create a Jira ticket and ping the database admin.

And many more variations of outage, error, and performance monitoring events.

Troubleshooting Guide

IssuePossible CauseSolution
Workflow not triggeringWebhook URL not updated in monitoring toolCopy n8n webhook URL and update in monitoring source
No Jira ticket createdInvalid Jira credentials or missing project permissionsReauthorize Jira credentials and verify permissions
Slack users not foundWrong channel ID or bot not added to channelEnsure bot is invited to the Slack channel
Slack presence not returningSlack app lacks presence permission (users:read.presence)Update Slack API scopes and reinstall
No user receives notificationPresence logic always returns empty listTest Slack presence API and verify real-time presence
Wrong user selectedIntended selection logic differsUpdate the JS logic in the code node
Jira fields not populatedAlert payload fields missingVerify webhook payload structure and match expected fields

Need Help?

If you need assistance setting up this workflow, customizing integrations, building escalations or extending the logic with add-ons — WeblineIndia is here to help.

We can assist with:

👉 Contact WeblineIndia for professional support, implementation and custom workflow development.

🔗 Nodes Used

Slack, Webhook, Jira Software

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup