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.
- Import the workflow JSON into n8n.
- Configure your Webhook, Slack, and Jira credentials.
- Update the IF node to filter for
status = down(already configured). - Set the Jira project and issue type as required.
- Connect your Slack on-call channel.
- Activate the workflow and send a test alert using Postman or your monitoring tool.
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.
This workflow is perfect for:
- DevOps teams managing uptime & system reliability
- Support teams responsible for incident response
- SRE teams using Jira and Slack
- Organizations with an on-call rotation setup
- Teams wanting automated escalation for downtime alerts
- n8n account (self-hosted or cloud)
- Slack API credentials with permission to read user presence and send direct messages
- Jira Software Cloud credentials allowing issue creation
- A monitoring system capable of sending webhook alerts (e.g., UptimeRobot, Uptime Kuma, StatusCake, custom system, etc.)
- Access to a Slack channel that includes your on-call rotation members
- The workflow starts with the Webhook node (
Receive Uptime Alert). - Your monitoring tool must send a POST request with JSON payload including fields like:
serviceNamestatustimestampcustomerImpacterrorCodepriority- etc.
- The IF node (
Filter for Critical Status) checks: - Only when the service is down does the workflow continue to create a Jira incident.
- The Create New Jira Incident node generates a Jira Task with:
- Summary:
serviceName + timestamp - Description: dynamic fields based on the alert payload
- Set your Jira Project and Issue Type as needed.
- The workflow calls Slack API to retrieve all user IDs in a designated channel (e.g.,
#on-call-team).
- Split In Batches Node loops each Slack member individually.
- For each user, their Slack presence is fetched using:
- The Set node (
Collect & Set Final Data) stores: - presence
- member ID
- service details
- Jira ticket ID
- downtime info
- and more
A custom Code node uses presence-based logic:
- If one or more users are active → randomly pick one active user.
- If only one user is active → pick that user.
- If no users are active → default to the first member from the channel.
This ensures you always get a responder.
- The Slack Notify Node sends a formatted direct message with:
- service status
- downtime duration
- error code
- customer impact
- Jira ticket link
- priority
The selected on-call responder receives everything they need to act immediately.
- Change the path to something meaningful (e.g.,
/uptime-alerts). - Customize expected fields based on your monitoring tool's payload.
- Modify status condition for:
"critical""error"- or multiple conditions
You can customize:
- Issue type (Incident, Bug, Task)
- Priority field mapping
- Project ID
- Custom fields or labels
- Change the channel to your team's actual on-call rotation channel.
- Modify message formatting, tone, emojis, or add links.
- Add @mentions or tags.
- Include escalation instructions.
Enhance the workflow by adding:
If the selected user doesn’t respond within X minutes, notify next user.
Trigger paging systems for SEV-1 incidents.
Automatically update public status pages.
When service status returns to up, automatically:
- Update Jira ticket
- Notify the team
- Close the incident
Store incidents in Google Sheets, Notion, or a database.
This workflow can support multiple real-world scenarios:
-
Website Uptime Monitoring
If your main website goes down, instantly create a Jira incident and notify your on-call engineer. -
API Downtime Alerting
When an API endpoint fails health checks, alert active developers only. -
Microservices Monitoring
Each microservice alert triggers a consistent, automated incident creation and notification. -
Infrastructure Failure Detection
When servers, containers, or VMs become unreachable, escalate to your infrastructure team. -
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.
| Issue | Possible Cause | Solution |
|---|---|---|
| Workflow not triggering | Webhook URL not updated in monitoring tool | Copy n8n webhook URL and update in monitoring source |
| No Jira ticket created | Invalid Jira credentials or missing project permissions | Reauthorize Jira credentials and verify permissions |
| Slack users not found | Wrong channel ID or bot not added to channel | Ensure bot is invited to the Slack channel |
| Slack presence not returning | Slack app lacks presence permission (users:read.presence) |
Update Slack API scopes and reinstall |
| No user receives notification | Presence logic always returns empty list | Test Slack presence API and verify real-time presence |
| Wrong user selected | Intended selection logic differs | Update the JS logic in the code node |
| Jira fields not populated | Alert payload fields missing | Verify webhook payload structure and match expected fields |
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:
- Custom Slack/Jira/Monitoring automation
- On-call rotation logic enhancements
- Cloud deployment & workflow optimization
- Any custom n8n automation
- Production-grade monitoring workflows
👉 Contact WeblineIndia for professional support, implementation, and custom workflow development.
Happy Automating!