AutomationFlowsSlack & Telegram › Prod 03 Trading Signal Workflow

Prod 03 Trading Signal Workflow

PROD_03_Trading_Signal_Workflow. Uses httpRequest, telegram. Webhook trigger; 5 nodes.

Webhook trigger★★★★☆ complexity5 nodesHTTP RequestTelegram
Slack & Telegram Trigger: Webhook Nodes: 5 Complexity: ★★★★☆ Added:

This workflow follows the HTTP Request → Telegram 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": "PROD_03_Trading_Signal_Workflow",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "trading-signal",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "1",
              "name": "signal_type",
              "value": "{{ $json.body.signal_type }}",
              "type": "string"
            },
            {
              "id": "2",
              "name": "symbol",
              "value": "{{ $json.body.symbol }}",
              "type": "string"
            },
            {
              "id": "3",
              "name": "action",
              "value": "{{ $json.body.action }}",
              "type": "string"
            },
            {
              "id": "4",
              "name": "timestamp",
              "value": "{{ $now }}",
              "type": "string"
            }
          ]
        }
      },
      "id": "2",
      "name": "InitData",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3,
      "position": [
        450,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Trading signal validation\nconst signal = $input.first().json;\nconst validSignals = ['BUY', 'SELL', 'HOLD'];\n\nif (!validSignals.includes(signal.action)) {\n  throw new Error('Invalid signal action');\n}\n\nsignal.validated = true;\nsignal.validation_time = new Date().toISOString();\n\nreturn signal;"
      },
      "id": "3",
      "name": "Validate_Signal",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        650,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.example.com/trading/signals",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "signal",
              "value": "={{ JSON.stringify($json) }}"
            }
          ]
        },
        "options": {}
      },
      "id": "4",
      "name": "Send_To_Trading_API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        850,
        300
      ]
    },
    {
      "parameters": {
        "to": "trading_alerts",
        "text": "={{ 'Trading Signal: ' + $json.symbol + ' | Action: ' + $json.action + ' | Type: ' + $json.signal_type }}",
        "additionalFields": {}
      },
      "id": "5",
      "name": "Telegram_Alert",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        1050,
        300
      ]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "InitData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "InitData": {
      "main": [
        [
          {
            "node": "Validate_Signal",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate_Signal": {
      "main": [
        [
          {
            "node": "Send_To_Trading_API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send_To_Trading_API": {
      "main": [
        [
          {
            "node": "Telegram_Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "prod-03-v1",
  "id": "PROD03TRADINGSIGNAL",
  "tags": [
    {
      "name": "production"
    },
    {
      "name": "trading"
    }
  ]
}
Pro

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

About this workflow

PROD_03_Trading_Signal_Workflow. Uses httpRequest, telegram. Webhook trigger; 5 nodes.

Source: https://gist.github.com/duginsash-spec/c0128580e71defd5f25f609991be219a — 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

WF_UNIFIED_LEGAL_AUTOMATION. Uses googleSheets, httpRequest, telegram, telegramTrigger. Webhook trigger; 53 nodes.

Google Sheets, HTTP Request, Telegram +1
Slack & Telegram

qualiopi. Uses airtable, telegram, emailSend, httpRequest. Webhook trigger; 51 nodes.

Airtable, Telegram, Email Send +3
Slack & Telegram

PsyCardv2. Uses executeCommand, telegram, readBinaryFile, googleDrive. Webhook trigger; 41 nodes.

Execute Command, Telegram, Read Binary File +2
Slack & Telegram

[](https://www.linkedin.com/in/mosaab-yassir-lafrimi/)[](https://t.me/joevenner)

HTTP Request, Redis, S3 +1
Slack & Telegram

How it works • Webhook triggers from content creation system in Airtable • Downloads media (images/videos) from Airtable URLs • Uploads media to Postiz cloud storage • Schedules or publishes content a

Airtable, Telegram, HTTP Request