Marktbeobachtungs-Roboter

Fortgeschritten

Dies ist ein Crypto Trading-Bereich Automatisierungsworkflow mit 14 Nodes. Hauptsächlich werden Code, Wait, Slack, HttpRequest, SplitInBatches und andere Nodes verwendet. FinnHub API und Slack-Vorlage

Voraussetzungen
  • Slack Bot Token oder Webhook URL
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich

Kategorie

Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "VYmYeHeu5eKYVLXA",
  "meta": {
    "instanceId": "3a80618028e8320a9c63d9239bfaf37c2f20bb22591695cb28556731cef25f4d",
    "templateCredsSetupCompleted": true
  },
  "name": "Market Watcher Bot",
  "tags": [
    {
      "id": "mmCdWnzPkjIpcvuR",
      "name": "Investment",
      "createdAt": "2025-06-15T04:39:59.965Z",
      "updatedAt": "2025-06-15T04:39:59.965Z"
    }
  ],
  "nodes": [
    {
      "id": "a244c890-bc5f-4edd-91f4-37192d7807c2",
      "name": "Trigger für tägliche Marktnachrichten",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -3000,
        660
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "15 9 * * 1-5"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1baa58b8-de7e-469c-a1ab-3c020e87714e",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2340,
        660
      ],
      "parameters": {
        "url": "https://finnhub.io/api/v1/company-news",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "symbol",
              "value": "={{ $json.ticker }}"
            },
            {
              "name": "from",
              "value": "={{ $now.toLocal().toISO().split('T')[0] }}"
            },
            {
              "name": "to",
              "value": "={{ $now.toLocal().toISO().split('T')[0] }}"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "Tj0aIslgiVQgNZb4",
          "name": "Header Auth - Finnhub"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "c36458a6-50c2-4219-b459-6629147c205e",
      "name": "Über Elemente iterieren",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -2560,
        660
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "0da44d7e-1300-4d47-80f2-da63e647dfe8",
      "name": "Warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1260,
        740
      ],
      "webhookId": "6c990829-24a2-4dfd-a689-4bdbd37a8bd3",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "64246872-3c95-429f-93e8-561ad6b6b940",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        -1740,
        660
      ],
      "webhookId": "4a63a5b5-e257-430e-8956-8cd1a620c4f2",
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#stock-market"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "CBElgW2pS2InXBCW",
          "name": "Slack Market Bot"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "35e91c84-e051-4b71-91ea-2800d5919751",
      "name": "Formatieren",
      "type": "n8n-nodes-base.code",
      "position": [
        -2120,
        660
      ],
      "parameters": {
        "jsCode": "let msg = '*' + ($input.first().json.related ? $input.first().json.related : $('Loop Over Items').first().json.ticker) + '* - Daily Market News :newspaper: \\n\\n';\n\nlet count = 0;\n\nif ($input.first().json.related) {\n  for (const item of $input.all()) {\n    count++;\n    if (count <= 5) {\n      msg += '- <' + item.json.url + '|' + item.json.headline + '>\\n';\n    } else {\n      break;\n    }\n    \n  }\n} else {\n  msg += 'No news found for this ticker'\n}\n\nreturn {\n  output: msg\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "4ab6c87d-536e-4d40-a6c3-e92ed3f30e13",
      "name": "Keine Operation, nichts tun",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -2360,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4987c8e4-83da-403c-aca2-f56e77d9f4a9",
      "name": "Ticker vorbereiten",
      "type": "n8n-nodes-base.code",
      "position": [
        -2780,
        660
      ],
      "parameters": {
        "jsCode": "const tickers = [\"AAPL\", \"META\", \"NVDA\", \"TSLA\", \"MSFT\", \"AMZN\", \"GOOG\", \"IAU\", \"IBIT\", \"QQQ\", \"SPY\"];\n\nlet output = [];\n\nfor(const item of tickers) {\n  output.push({ticker: item});\n}\n\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "8914ece4-d42b-4db9-a6dd-ef6310320e53",
      "name": "Haftnotiz7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3820,
        320
      ],
      "parameters": {
        "width": 460,
        "height": 960,
        "content": "## Daily Company News Bot\n### This n8n template demonstrates how to use Free FinnHub API to retrieve the company news from a list stock tickers and post messages in Slack channel with a pre-scheduled time.\n\n### How it works\n* We firstly define the list of stock tickers you are interested\n* Loop over items to call FinnHub API to get the latest company news via the ticker\n* Then we format the company news as a markdown text content which could be sent to Slack\n* Post a new message in Slack channel\n* Wait for 5 seconds, then move to the next ticker\n\n### How to use\n* Simply setup a scheduler trigger to automatically trigger the workflow\n\n### Requirements\n* FinnHub API Key\n* Slack channel webhook\n\n\n### Need Help?\nContact me via [My Blog](https://fans-ai-lab.com/contact) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
      },
      "typeVersion": 1
    },
    {
      "id": "553353ca-c848-4110-91a5-ffdd9edabc28",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2840,
        460
      ],
      "parameters": {
        "content": "## Prepare the list of the tickers \nFeel free to update the list of the tickers"
      },
      "typeVersion": 1
    },
    {
      "id": "957ee9cc-3f32-4bed-aaf8-6ff3d9e8f1d3",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2380,
        420
      ],
      "parameters": {
        "width": 440,
        "height": 440,
        "content": "## Retrieve company news via FinnHub API\n\n### FinnHub FREE API\n- go to [FinnHub API site](https://finnhub.io/)\n- get a free API key\n- create a FinnHub Header Auth credential in n8n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "eea4abee-a783-452c-afb1-496e658f2e38",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1900,
        420
      ],
      "parameters": {
        "width": 440,
        "height": 440,
        "content": "## Post to Slack Channel via webhook\n\n### Slack Channel webhook\n- go your slack app management dashboard\n- create a new app\n- enable webhook for the newly created app\n\ndetails to follow this instruction [Sending messages using incoming webhooks](https://api.slack.com/messaging/webhooks)\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "45362a93-2523-44e4-8e3e-1b642eaa7381",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        420
      ],
      "parameters": {
        "width": 440,
        "height": 440,
        "content": "## Wait for 5 seconds\n\nYou can customize it to other waiting time you want. The main purpose here is to avoid sending too many requests to Finnhub at one time due to limited usage of FinnHub Free API\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "51f5c38c-3fd9-4022-9c24-d83b4d98818d",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3060,
        860
      ],
      "parameters": {
        "content": "## Cron scheduler\ncurrently it is scheduled every weekday morning at 9:15AM. You can customize it to any time you want"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "timeSavedPerExecution": 15
  },
  "versionId": "e2ac836d-ee4b-4f78-b43b-e8054c511bc1",
  "connections": {
    "0da44d7e-1300-4d47-80f2-da63e647dfe8": {
      "main": [
        [
          {
            "node": "c36458a6-50c2-4219-b459-6629147c205e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "64246872-3c95-429f-93e8-561ad6b6b940": {
      "main": [
        [
          {
            "node": "0da44d7e-1300-4d47-80f2-da63e647dfe8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "35e91c84-e051-4b71-91ea-2800d5919751": {
      "main": [
        [
          {
            "node": "64246872-3c95-429f-93e8-561ad6b6b940",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1baa58b8-de7e-469c-a1ab-3c020e87714e": {
      "main": [
        [
          {
            "node": "35e91c84-e051-4b71-91ea-2800d5919751",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4987c8e4-83da-403c-aca2-f56e77d9f4a9": {
      "main": [
        [
          {
            "node": "c36458a6-50c2-4219-b459-6629147c205e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c36458a6-50c2-4219-b459-6629147c205e": {
      "main": [
        [
          {
            "node": "4ab6c87d-536e-4d40-a6c3-e92ed3f30e13",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "1baa58b8-de7e-469c-a1ab-3c020e87714e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a244c890-bc5f-4edd-91f4-37192d7807c2": {
      "main": [
        [
          {
            "node": "4987c8e4-83da-403c-aca2-f56e77d9f4a9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Krypto-Handel

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes14
Kategorie1
Node-Typen8
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Fan Luo

Fan Luo

@luofan189

Hi, there, I am Fan Luo, father of two lovely daughters Chloe and Claire. My family and I live in a small beautiful town in Toronto area, Canada. I have extensive experience as a developer, technical leader and AI automation expert and solopreneur. My expertise are web app development, hybrid app development and process automation.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34