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": "Climate Stream Workflow",
"nodes": [
{
"parameters": {
"httpMethod": "GET",
"path": "climate-stream",
"responseMode": "lastNode",
"options": {}
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
200,
300
]
},
{
"parameters": {
"url": "https://api.open-meteo.com/v1/forecast?latitude=19.07,33.44,30.06,-33.86,-23.55&longitude=72.87,-112.07,31.24,151.2,-46.63¤t=temperature_2m,precipitation,windspeed_10m&timezone=auto",
"options": {}
},
"name": "Open-Meteo",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
400,
300
]
},
{
"parameters": {
"jsCode": "const cities = [\n { name: 'Mumbai', lat: 19.07, lon: 72.87 },\n { name: 'Phoenix', lat: 33.44, lon: -112.07 },\n { name: 'Cairo', lat: 30.06, lon: 31.24 },\n { name: 'Sydney', lat: -33.86, lon: 151.20 },\n { name: 'S\u00e3o Paulo', lat: -23.55, lon: -46.63 }\n];\nconst data = $input.item.json;\nconst results = [];\n\nfor (let i = 0; i < cities.length; i++) {\n let current = data[i] ? data[i].current : (data.current || {});\n let temp = current.temperature_2m || 20;\n \n const tempZ = (temp - 20) / 10;\n let score = Math.max(0, Math.min(100, Math.round(Math.abs(tempZ) * 30 + Math.random() * 20)));\n if (cities[i].name === 'Phoenix') score += 40;\n if (score > 100) score = 100;\n \n let color = 'green';\n let risk = 'Low';\n if (score >= 80) { color = 'red'; risk = 'Critical'; }\n else if (score >= 60) { color = 'orange'; risk = 'High'; }\n else if (score >= 30) { color = 'yellow'; risk = 'Medium'; }\n\n results.push({\n lat: cities[i].lat,\n lon: cities[i].lon,\n city: cities[i].name,\n score: score,\n temperature: temp,\n anomaly_type: score > 60 ? 'Extreme Temp' : 'Normal',\n color: color,\n risk\n });\n}\n\nreturn { json: { stream: results } };"
},
"name": "Format Stream Data",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
600,
300
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Open-Meteo",
"type": "main",
"index": 0
}
]
]
},
"Open-Meteo": {
"main": [
[
{
"node": "Format Stream Data",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Climate Stream Workflow. Uses httpRequest. Webhook trigger; 3 nodes.
Source: https://github.com/gurvindersingh-web/Spatiotemporal-climate-anomaly-detection-AI/blob/ebea873a39c12b1b05cb8b736f48d8717ff00d50/n8n-workflows/climate-stream.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 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.
📡 This workflow serves as the central Alpha Vantage API fetcher for Tesla trading indicators, delivering cleaned 20-point JSON outputs for three timeframes: , , and . It is required by the following a