This workflow follows the Execute Workflow Trigger → HTTP Request 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 →
{
"name": "ClimateGuard - 05 Alerts & Dispatch",
"nodes": [
{
"parameters": {
"httpMethod": "GET",
"path": "alerts",
"responseMode": "responseNode"
},
"name": "Webhook GET /alerts",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
250,
200
]
},
{
"parameters": {},
"name": "Execute Workflow Trigger",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1,
"position": [
250,
400
]
},
{
"parameters": {
"jsCode": "const source = $('Webhook GET /alerts').item ? 'http' : 'internal';\nreturn { source, page: 1, per_page: 50, severity: 'extreme', region_id: null, since: null };"
},
"name": "Normalise",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"method": "GET",
"url": "=http://ml-service:8001/alerts?severity={{$json.severity}}"
},
"name": "GET ml-service alerts",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
650,
300
]
},
{
"parameters": {
"jsCode": "const alerts = $input.item.json.alerts || [];\nconst extremes_for_dispatch = alerts.filter(a => a.severity === 'extreme');\nreturn { ...$input.item.json, extremes_for_dispatch };"
},
"name": "Format Response",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
850,
300
]
},
{
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json.extremes_for_dispatch.length}}",
"operation": "larger",
"value2": 0
}
]
}
},
"name": "IF Extremes",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
1050,
300
]
},
{
"parameters": {
"jsCode": "return { slack_msg: 'EXTREME ALERTS: ' + $json.extremes_for_dispatch.length };"
},
"name": "Build Slack Message",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
1250,
200
]
},
{
"parameters": {
"method": "POST",
"url": "={{$env.SLACK_WEBHOOK_URL}}",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={ \"text\": \"{{$json.slack_msg}}\" }"
},
"name": "Send Slack",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
1450,
200
]
},
{
"parameters": {
"method": "POST",
"url": "={{$env.DISCORD_WEBHOOK_URL}}",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={ \"content\": \"{{$('Build Slack Message').item.json.slack_msg}}\" }"
},
"name": "Send Discord",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
1650,
200
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{JSON.stringify($('Format Response').item.json)}}"
},
"name": "Respond 200",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
1850,
200
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{JSON.stringify($json)}}"
},
"name": "Respond False",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
1250,
400
]
}
],
"connections": {
"Webhook GET /alerts": {
"main": [
[
{
"node": "Normalise",
"type": "main",
"index": 0
}
]
]
},
"Execute Workflow Trigger": {
"main": [
[
{
"node": "Normalise",
"type": "main",
"index": 0
}
]
]
},
"Normalise": {
"main": [
[
{
"node": "GET ml-service alerts",
"type": "main",
"index": 0
}
]
]
},
"GET ml-service alerts": {
"main": [
[
{
"node": "Format Response",
"type": "main",
"index": 0
}
]
]
},
"Format Response": {
"main": [
[
{
"node": "IF Extremes",
"type": "main",
"index": 0
}
]
]
},
"IF Extremes": {
"main": [
[
{
"node": "Build Slack Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond False",
"type": "main",
"index": 0
}
]
]
},
"Build Slack Message": {
"main": [
[
{
"node": "Send Slack",
"type": "main",
"index": 0
}
]
]
},
"Send Slack": {
"main": [
[
{
"node": "Send Discord",
"type": "main",
"index": 0
}
]
]
},
"Send Discord": {
"main": [
[
{
"node": "Respond 200",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
ClimateGuard - 05 Alerts & Dispatch. Uses executeWorkflowTrigger, httpRequest. Webhook trigger; 11 nodes.
Source: https://github.com/gurvindersingh-web/Spatiotemporal-climate-anomaly-detection-AI/blob/ebea873a39c12b1b05cb8b736f48d8717ff00d50/n8n-workflows/05-alerts-dispatch.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n template provides enterprise-level version control for your workflows using GitHub integration. Stop losing hours to broken workflows and manual exports – get proper commit history, visual di
This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .
This workflow receives webhook requests from a content calendar and uses the X API v2 to publish text posts, threads, image/video posts, and polls, as well as delete existing posts and run a credentia
This workflow acts as a central API gateway for all technical indicator agents in the Binance Spot Market Quant AI system. It listens for incoming webhook requests and dynamically routes them to the c
Sign PDF documents with legally-compliant digital signatures using X.509 certificates. Supports multiple PAdES signature levels (B, T, LT, LTA) with optional visible stamps.