Robot de observación del mercado
Este es unCrypto Tradingflujo de automatización del dominio deautomatización que contiene 14 nodos.Utiliza principalmente nodos como Code, Wait, Slack, HttpRequest, SplitInBatches. API de FinnHub y plantillas de Slack
- •Bot Token de Slack o URL de Webhook
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (14)
Categoría
{
"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": "Activador de Noticias Diarias del Mercado",
"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": "Bucle sobre Elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-2560,
660
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "0da44d7e-1300-4d47-80f2-da63e647dfe8",
"name": "Esperar",
"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": "Formato",
"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": "Sin Operación, no hacer nada",
"type": "n8n-nodes-base.noOp",
"position": [
-2360,
260
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4987c8e4-83da-403c-aca2-f56e77d9f4a9",
"name": "Preparar Tickers",
"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": "Nota Adhesiva7",
"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": "Nota Adhesiva",
"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": "Nota Adhesiva1",
"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": "Nota Adhesiva2",
"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": "Nota Adhesiva3",
"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": "Nota Adhesiva4",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Comercio de criptomonedas
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Fan Luo
@luofan189Hi, 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.
Compartir este flujo de trabajo