AutomationFlowsSlack & Telegram › Hourly Price Alert Monitor with Slack & Postgres

Hourly Price Alert Monitor with Slack & Postgres

Original n8n title: Wf-4: Price Alert Monitor

WF-4: Price Alert Monitor. Uses httpRequest, slack, postgres. Scheduled trigger; 6 nodes.

Cron / scheduled trigger★★★★☆ complexity6 nodesHTTP RequestSlackPostgres
Slack & Telegram Trigger: Cron / scheduled Nodes: 6 Complexity: ★★★★☆ Added:

This workflow follows the HTTP Request → Postgres 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 →

Download .json
{
  "name": "WF-4: Price Alert Monitor",
  "nodes": [
    {
      "id": "trigger",
      "name": "Hourly Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        250,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 1
            }
          ]
        }
      }
    },
    {
      "id": "get_watchlist",
      "name": "Get Watchlist",
      "type": "n8n-nodes-base.set",
      "position": [
        450,
        300
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "symbols",
              "value": "[\"NVDA\", \"AMD\", \"INTC\", \"QCOM\", \"AVGO\"]"
            }
          ]
        }
      }
    },
    {
      "id": "fetch_prices",
      "name": "Fetch Current Prices",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        650,
        300
      ],
      "parameters": {
        "method": "POST",
        "url": "http://data-api:8000/mcp/call/get_price",
        "body": {
          "symbol": "={{ JSON.parse($json.symbols)[0] }}",
          "start_date": "={{ new Date().toISOString().split('T')[0] }}",
          "end_date": "={{ new Date().toISOString().split('T')[0] }}",
          "market": "us"
        }
      }
    },
    {
      "id": "check_threshold",
      "name": "Check Alert Threshold",
      "type": "n8n-nodes-base.if",
      "position": [
        850,
        300
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json[0]?.change_percent || 0 }}",
              "operation": "larger",
              "value2": 5
            }
          ]
        }
      }
    },
    {
      "id": "send_alert",
      "name": "Send Alert Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        1050,
        200
      ],
      "parameters": {
        "channel": "#price-alerts",
        "text": "\ud83d\udea8 Price Alert: {{ $json[0].symbol }} moved {{ $json[0].change_percent }}% today!"
      }
    },
    {
      "id": "log_alert",
      "name": "Log Alert",
      "type": "n8n-nodes-base.postgres",
      "position": [
        1250,
        200
      ],
      "parameters": {
        "operation": "executeQuery",
        "query": "INSERT INTO alerts (ticker, price, change_percent, alert_time) VALUES ($1, $2, $3, NOW())",
        "parameters": "={{ [$json[0].symbol, $json[0].close, $json[0].change_percent] }}"
      }
    }
  ],
  "connections": {
    "Hourly Schedule": {
      "main": [
        [
          {
            "node": "Get Watchlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Watchlist": {
      "main": [
        [
          {
            "node": "Fetch Current Prices",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Current Prices": {
      "main": [
        [
          {
            "node": "Check Alert Threshold",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Alert Threshold": {
      "main": [
        [
          {
            "node": "Send Alert Notification",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Send Alert Notification": {
      "main": [
        [
          {
            "node": "Log Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    "alert",
    "price",
    "monitoring"
  ]
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

WF-4: Price Alert Monitor. Uses httpRequest, slack, postgres. Scheduled trigger; 6 nodes.

Source: https://github.com/123qsa/supply-chain-kg/blob/main/n8n-workflows/wf-4-price-alert.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This n8n workflow proactively scans and aggregates threat intelligence, network logs, and vulnerability data every 15 minutes to detect emerging risks across the infrastructure. It analyzes anomalies,

HTTP Request, Slack, Email Send +1
Slack & Telegram

Anomaly Detection Alert System. Uses postgres, openAi, slack, httpRequest. Scheduled trigger; 8 nodes.

Postgres, OpenAI, Slack +1
Slack & Telegram

This workflow is designed for engineering teams, project managers, and IT operations who need consistent visibility into team availability across multiple projects. It’s perfect for organizations that

HTTP Request, Execute Workflow Trigger, Slack
Slack & Telegram

This workflow is an automated system that tracks End-of-Life (EOL) dates for software and technologies used across your projects. It eliminates the need to manually monitor EOL dates in spreadsheets o

HTTP Request, Noco Db, Slack
Slack & Telegram

This workflow continuously monitors the Meta Ads Library for new creatives from a specific competitor pages, logs them into Google Sheets, and sends a concise Telegram notification with the number of

HTTP Request, Telegram, Google Sheets +1