使用AI监控股市:新闻分析与多渠道警报

高级

这是一个Ticket Management、AI Summarization领域的自动化工作流,包含 31 个节点。主要使用 Code、Merge、Slack、OpenAi、Switch 等节点。 使用AI监控股市:新闻分析与通过Slack和Telegram的多渠道警报

前置要求
  • Slack Bot Token 或 Webhook URL
  • OpenAI API Key
  • Airtable API Key
  • Telegram Bot Token
  • Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "db30e8ae4100235addbd4638770997b7ef11878d049073c888ba440ca84c55fc",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "bba1c8da-0573-48b8-8d4a-4ec5b9fd4b26",
      "name": "每15分钟",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -624,
        48
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cb1c8499-9a64-428b-822d-d64ee3b71f6b",
      "name": "Bloomberg 市场资讯",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        -288,
        -128
      ],
      "parameters": {
        "url": "https://feeds.bloomberg.com/markets/news.rss",
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "3c790b7e-63ed-4636-90c7-27b63b6c4b16",
      "name": "CNBC 突发新闻",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        -288,
        48
      ],
      "parameters": {
        "url": "https://www.cnbc.com/id/100003114/device/rss/rss.html",
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e6ffacb5-0fd4-43d2-9e92-65fb0479c0e4",
      "name": "路透社商业新闻",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        -288,
        224
      ],
      "parameters": {
        "url": "https://feeds.reuters.com/reuters/businessNews",
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "279a49ac-4be5-405b-8bfd-edef40e1d6ec",
      "name": "聚合新闻源",
      "type": "n8n-nodes-base.merge",
      "position": [
        -32,
        48
      ],
      "parameters": {
        "mode": "combine",
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "27ed15f2-8487-4726-8d39-50b96b1bb376",
      "name": "过滤和提取信号",
      "type": "n8n-nodes-base.code",
      "position": [
        224,
        48
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst now = new Date();\nconst oneHourAgo = new Date(now - 60 * 60 * 1000);\n\n// Filter recent articles and extract keywords\nconst filtered = items\n  .filter(item => {\n    const pubDate = new Date(item.json.pubDate || item.json.isoDate);\n    return pubDate > oneHourAgo;\n  })\n  .map(item => ({\n    json: {\n      title: item.json.title,\n      link: item.json.link,\n      pubDate: item.json.pubDate || item.json.isoDate,\n      content: item.json.contentSnippet || item.json.content || '',\n      source: item.json.link.includes('bloomberg') ? 'Bloomberg' : \n              item.json.link.includes('cnbc') ? 'CNBC' : 'Reuters',\n      \n      // Extract potential stock tickers and keywords\n      tickers: extractTickers(item.json.title + ' ' + (item.json.contentSnippet || '')),\n      keywords: extractKeywords(item.json.title + ' ' + (item.json.contentSnippet || ''))\n    }\n  }));\n\nfunction extractTickers(text) {\n  const tickerPattern = /\\b[A-Z]{1,5}\\b/g;\n  const matches = text.match(tickerPattern) || [];\n  return [...new Set(matches)].filter(t => t.length >= 2).slice(0, 5);\n}\n\nfunction extractKeywords(text) {\n  const keywords = ['earnings', 'acquisition', 'merger', 'bankruptcy', 'profit', 'loss', \n                    'revenue', 'growth', 'decline', 'surge', 'plunge', 'rally', 'crash',\n                    'innovation', 'AI', 'crypto', 'Fed', 'interest', 'inflation'];\n  return keywords.filter(k => text.toLowerCase().includes(k.toLowerCase()));\n}\n\nreturn filtered;"
      },
      "typeVersion": 2
    },
    {
      "id": "7c96b18c-e5bb-4739-9b9c-2ce34a6341b0",
      "name": "AI 情感分析",
      "type": "n8n-nodes-base.openAi",
      "position": [
        464,
        -96
      ],
      "parameters": {
        "prompt": {
          "messages": [
            {
              "role": "system",
              "content": "You are a financial analyst AI. Analyze news articles and provide: 1) Market Sentiment (Bullish/Neutral/Bearish/Crisis), 2) Impact Level (Low/Medium/High/Critical), 3) Affected Sectors (list), 4) Trading Signal (Strong Buy/Buy/Hold/Sell/Strong Sell), 5) Confidence Score (0-100), 6) Key Catalyst (brief explanation), 7) Risk Factors. Return as JSON only."
            },
            {
              "content": "Article: {{ $json.title }}\n\nContent: {{ $json.content }}\n\nSource: {{ $json.source }}\nDetected Tickers: {{ $json.tickers.join(', ') }}\nKeywords: {{ $json.keywords.join(', ') }}"
            }
          ]
        },
        "options": {
          "maxTokens": 800,
          "temperature": 0.2
        },
        "resource": "chat",
        "requestOptions": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "28a0f4d8-eb77-4974-aa81-6d0052ef4b7c",
      "name": "获取股票数据",
      "type": "n8n-nodes-base.code",
      "position": [
        464,
        240
      ],
      "parameters": {
        "jsCode": "// Fetch stock data from Yahoo Finance API\nconst ticker = $input.first().json.tickers[0] || 'SPY';\nconst url = `https://query1.finance.yahoo.com/v8/finance/chart/${ticker}?interval=1d&range=5d`;\n\ntry {\n  const response = await fetch(url, {\n    method: 'GET',\n    headers: {\n      'User-Agent': 'Mozilla/5.0'\n    }\n  });\n  \n  if (!response.ok) {\n    // If API fails, return mock data to keep workflow running\n    return {\n      json: {\n        chart: {\n          result: [{\n            indicators: {\n              quote: [{\n                close: [100, 101, 102, 103, 104],\n                volume: [1000000, 1100000, 1050000, 1200000, 1150000]\n              }]\n            }\n          }]\n        }\n      }\n    };\n  }\n  \n  const data = await response.json();\n  return { json: data };\n  \n} catch (error) {\n  // Fallback with mock data if fetch fails\n  return {\n    json: {\n      chart: {\n        result: [{\n          indicators: {\n            quote: [{\n              close: [100, 101, 102, 103, 104],\n              volume: [1000000, 1100000, 1050000, 1200000, 1150000]\n            }]\n          }\n        }]\n      },\n      error: error.message\n    }\n  };\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "948371be-eb9a-4bc3-8e09-ad113eb95f92",
      "name": "合成情报报告",
      "type": "n8n-nodes-base.code",
      "position": [
        720,
        48
      ],
      "parameters": {
        "jsCode": "const newsData = $('Filter & Extract Signals').first().json;\nconst aiAnalysis = JSON.parse($('AI Sentiment Analysis').first().json.choices[0].message.content);\nconst stockData = $input.first().json;\n\n// Calculate technical indicators\nconst prices = stockData?.chart?.result?.[0]?.indicators?.quote?.[0]?.close || [];\nconst volumes = stockData?.chart?.result?.[0]?.indicators?.quote?.[0]?.volume || [];\n\nconst latestPrice = prices[prices.length - 1];\nconst previousPrice = prices[prices.length - 2];\nconst priceChange = latestPrice && previousPrice ? ((latestPrice - previousPrice) / previousPrice * 100).toFixed(2) : 0;\n\n// Simple Moving Average\nconst sma5 = prices.slice(-5).reduce((a, b) => a + b, 0) / 5;\nconst trend = latestPrice > sma5 ? 'Uptrend' : 'Downtrend';\n\n// Volume analysis\nconst avgVolume = volumes.reduce((a, b) => a + b, 0) / volumes.length;\nconst latestVolume = volumes[volumes.length - 1];\nconst volumeRatio = (latestVolume / avgVolume).toFixed(2);\n\nreturn {\n  json: {\n    timestamp: new Date().toISOString(),\n    \n    // News Data\n    headline: newsData.title,\n    source: newsData.source,\n    link: newsData.link,\n    tickers: newsData.tickers,\n    keywords: newsData.keywords,\n    \n    // AI Analysis\n    sentiment: aiAnalysis.market_sentiment || aiAnalysis.sentiment,\n    impact: aiAnalysis.impact_level || aiAnalysis.impact,\n    sectors: aiAnalysis.affected_sectors || [],\n    signal: aiAnalysis.trading_signal || aiAnalysis.signal,\n    confidence: aiAnalysis.confidence_score || 0,\n    catalyst: aiAnalysis.key_catalyst || '',\n    risks: aiAnalysis.risk_factors || '',\n    \n    // Technical Data\n    ticker: newsData.tickers[0] || 'N/A',\n    current_price: latestPrice,\n    price_change_pct: priceChange,\n    trend: trend,\n    sma_5d: sma5.toFixed(2),\n    volume_ratio: volumeRatio,\n    \n    // Composite Score\n    composite_score: calculateCompositeScore(aiAnalysis, priceChange, volumeRatio),\n    actionable: (aiAnalysis.confidence_score > 70 && Math.abs(priceChange) > 2) || \n                aiAnalysis.impact_level === 'Critical'\n  }\n};\n\nfunction calculateCompositeScore(ai, priceChange, volRatio) {\n  const signalScores = {\n    'Strong Buy': 100, 'Buy': 75, 'Hold': 50, 'Sell': 25, 'Strong Sell': 0\n  };\n  const signalScore = signalScores[ai.trading_signal] || 50;\n  const momentumScore = priceChange * 5; // Price change weight\n  const volumeScore = volRatio > 1.5 ? 20 : 0; // Volume spike bonus\n  const confidenceWeight = ai.confidence_score / 100;\n  \n  return Math.round((signalScore * confidenceWeight + momentumScore + volumeScore) * 0.85);\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "1c37bcc0-cb6b-4aa4-ad31-567a36071f93",
      "name": "过滤可操作信号",
      "type": "n8n-nodes-base.switch",
      "position": [
        976,
        48
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "",
                    "rightValue": ""
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "4e938d32-00de-4ffd-976c-2f2bc5948c16",
      "name": "发送交易警报",
      "type": "n8n-nodes-base.slack",
      "position": [
        1216,
        -128
      ],
      "webhookId": "7683bf14-26c7-44b4-ba33-0170f7d95dd8",
      "parameters": {
        "text": "🚨 *MARKET SIGNAL DETECTED*\n\n*{{ $json.ticker }}* | {{ $json.signal }} Signal\n*Confidence:* {{ $json.confidence }}% | *Impact:* {{ $json.impact }}\n\n📰 *Headline:* {{ $json.headline }}\n*Source:* {{ $json.source }}\n\n📊 *Technical Analysis*\n• Price: ${{ $json.current_price }} ({{ $json.price_change_pct }}%)\n• Trend: {{ $json.trend }}\n• Volume Spike: {{ $json.volume_ratio }}x average\n\n🎯 *AI Analysis*\n• Sentiment: {{ $json.sentiment }}\n• Sectors: {{ $json.sectors.join(', ') }}\n• Catalyst: {{ $json.catalyst }}\n• Composite Score: {{ $json.composite_score }}/100\n\n⚠️ *Risks:* {{ $json.risks }}\n\n🔗 <{{ $json.link }}|Read Full Article>",
        "otherOptions": {
          "mrkdwn": true
        },
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    },
    {
      "id": "5bd4ef56-2dc2-4f4a-af96-3f7a34cdbaae",
      "name": "移动通知",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1216,
        240
      ],
      "webhookId": "6f9fefd3-3aa6-4c75-a367-344db929d50d",
      "parameters": {
        "text": "🎯 *{{ $json.signal }}*\n\n*{{ $json.ticker }}* - ${{ $json.current_price }} ({{ $json.price_change_pct }}%)\n\n{{ $json.headline }}\n\nConfidence: {{ $json.confidence }}%\nComposite Score: {{ $json.composite_score }}\n\n{{ $json.link }}",
        "chatId": "YOUR_TELEGRAM_CHAT_ID",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "81a9974d-686d-4e1c-b205-2943f996a1f6",
      "name": "记录信号数据库",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1472,
        48
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appMARKETINTEL001"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblSignals"
        },
        "columns": {
          "value": {
            "Link": "={{ $json.link }}",
            "Risks": "={{ $json.risks }}",
            "Trend": "={{ $json.trend }}",
            "Impact": "={{ $json.impact }}",
            "Signal": "={{ $json.signal }}",
            "Source": "={{ $json.source }}",
            "Ticker": "={{ $json.ticker }}",
            "Sectors": "={{ $json.sectors.join(', ') }}",
            "Catalyst": "={{ $json.catalyst }}",
            "Headline": "={{ $json.headline }}",
            "Sentiment": "={{ $json.sentiment }}",
            "Timestamp": "={{ $json.timestamp }}",
            "Actionable": "={{ $json.actionable }}",
            "Confidence": "={{ $json.confidence }}",
            "Price_Change": "={{ $json.price_change_pct }}",
            "Volume_Ratio": "={{ $json.volume_ratio }}",
            "Current_Price": "={{ $json.current_price }}",
            "Composite_Score": "={{ $json.composite_score }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "create"
      },
      "typeVersion": 2.1
    },
    {
      "id": "8dc3c119-fa23-4e48-a780-a79f2a44537a",
      "name": "跟踪性能日志",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1712,
        48
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.timestamp.split('T')[0] }}",
            "Time": "={{ $json.timestamp.split('T')[1].split('.')[0] }}",
            "Price": "={{ $json.current_price }}",
            "Score": "={{ $json.composite_score }}",
            "Change": "={{ $json.price_change_pct }}",
            "Signal": "={{ $json.signal }}",
            "Source": "={{ $json.source }}",
            "Ticker": "={{ $json.ticker }}",
            "Sentiment": "={{ $json.sentiment }}",
            "Confidence": "={{ $json.confidence }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1MARKET_INTELLIGENCE_SHEET_ID"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "74d91e79-8bea-4de4-862b-342009e364fa",
      "name": "生成交易策略",
      "type": "n8n-nodes-base.openAi",
      "position": [
        1968,
        48
      ],
      "parameters": {
        "prompt": {
          "messages": [
            {
              "role": "system",
              "content": "You are a portfolio strategist. Based on the trading signal and market conditions, provide: 1) Position sizing recommendation (% of portfolio), 2) Entry strategy (market/limit/staged), 3) Stop loss level, 4) Take profit targets, 5) Time horizon. Return as JSON."
            },
            {
              "content": "Signal: {{ $json.signal }}\nTicker: {{ $json.ticker }}\nPrice: ${{ $json.current_price }}\nConfidence: {{ $json.confidence }}%\nVolatility: {{ $json.price_change_pct }}%\nSentiment: {{ $json.sentiment }}\nRisks: {{ $json.risks }}"
            }
          ]
        },
        "options": {
          "maxTokens": 600,
          "temperature": 0.4
        },
        "resource": "chat",
        "requestOptions": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "631bf7c1-f310-47a9-ad21-c64d377aa359",
      "name": "存储交易计划",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2224,
        48
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appMARKETINTEL001"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblSignals"
        },
        "columns": {
          "value": {
            "Record_ID": "={{ $('Log Signal Database').item.json.id }}",
            "Trading_Strategy": "={{ JSON.stringify(JSON.parse($json.choices[0].message.content)) }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "update"
      },
      "typeVersion": 2.1
    },
    {
      "id": "ae0f76b7-7260-4583-a084-c54cc58a9ea0",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "每15分钟自动触发工作流。"
      },
      "typeVersion": 1
    },
    {
      "id": "5bb5dbb8-27e6-4069-be92-abdf9278600d",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -240
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "通过 RSS 获取最新市场新闻。"
      },
      "typeVersion": 1
    },
    {
      "id": "d679ce10-9a8c-4236-941f-49b0be6c4d92",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "将所有获取的 RSS 源合并为一个流。"
      },
      "typeVersion": 1
    },
    {
      "id": "16b60dfb-0068-4a59-9828-2908d456ee75",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "过滤近期新闻,提取股票代码和关键词。"
      },
      "typeVersion": 1
    },
    {
      "id": "d520509e-3f0d-49de-953c-b828c49042d5",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -208
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "使用 AI 分析市场情绪和影响。"
      },
      "typeVersion": 1
    },
    {
      "id": "bca74330-48fc-49da-8503-9aa91ef85c57",
      "name": "便签说明5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        384
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "从 Yahoo Finance 拉取股票价格和交易量。"
      },
      "typeVersion": 1
    },
    {
      "id": "929da30d-9159-4d8c-a7ae-b819eb2dc4dc",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "将 AI 和股票数据合并为洞察。"
      },
      "typeVersion": 1
    },
    {
      "id": "569db511-28b4-4552-bc59-70bf2a7706ef",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        944,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "仅保留强信号或高置信度的交易信号。"
      },
      "typeVersion": 1
    },
    {
      "id": "ee078f26-d8df-48b9-9589-545feda57844",
      "name": "## 为什么选择 4o 模型?👆",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        -240
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "向 Slack 频道发送详细的交易警报。"
      },
      "typeVersion": 1
    },
    {
      "id": "e5d5df96-20e1-4472-8852-d06a5a71316d",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        400
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "向 Telegram 移动应用发送精简的交易警报。"
      },
      "typeVersion": 1
    },
    {
      "id": "31c50d0c-e788-49ca-a8c4-95107f4c79bf",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "将分析后的信号存储到 Airtable 数据库。"
      },
      "typeVersion": 1
    },
    {
      "id": "545bcd58-562a-495d-8777-215cf8a749c9",
      "name": "便签11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "将每笔交易的数据记录到 Google Sheets。"
      },
      "typeVersion": 1
    },
    {
      "id": "14ed3ab8-de50-4098-81fb-43a54d3ea1d4",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1936,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "创建包含入场和出场计划的 AI 驱动策略。"
      },
      "typeVersion": 1
    },
    {
      "id": "c470e944-df2b-4483-b274-07a8c054c70e",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        -64
      ],
      "parameters": {
        "width": 176,
        "height": 96,
        "content": "使用完整的交易策略 JSON 更新 Airtable 记录。"
      },
      "typeVersion": 1
    },
    {
      "id": "8fe136bc-dbbc-4e6d-a8a7-c8adb6dee954",
      "name": "便签 14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1328,
        -192
      ],
      "parameters": {
        "width": 608,
        "height": 496,
        "content": "# 🧠 AI 驱动的市场情报和交易信号工作流"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Every 15 Minutes": {
      "main": [
        [
          {
            "node": "Bloomberg Markets Feed",
            "type": "main",
            "index": 0
          },
          {
            "node": "CNBC Breaking News",
            "type": "main",
            "index": 0
          },
          {
            "node": "Reuters Business",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Stock Data": {
      "main": [
        [
          {
            "node": "Synthesize Intelligence Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CNBC Breaking News": {
      "main": [
        [
          {
            "node": "Aggregate News Sources",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Send Trading Alert": {
      "main": [
        [
          {
            "node": "Log Signal Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Signal Database": {
      "main": [
        [
          {
            "node": "Track Performance Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mobile Notification": {
      "main": [
        [
          {
            "node": "Log Signal Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Sentiment Analysis": {
      "main": [
        [
          {
            "node": "Synthesize Intelligence Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Track Performance Log": {
      "main": [
        [
          {
            "node": "Generate Trading Strategy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate News Sources": {
      "main": [
        [
          {
            "node": "Filter & Extract Signals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bloomberg Markets Feed": {
      "main": [
        [
          {
            "node": "Aggregate News Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter & Extract Signals": {
      "main": [
        [
          {
            "node": "AI Sentiment Analysis",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch Stock Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Actionable Signals": {
      "main": [
        [
          {
            "node": "Send Trading Alert",
            "type": "main",
            "index": 0
          },
          {
            "node": "Mobile Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Trading Strategy": {
      "main": [
        [
          {
            "node": "Store Trading Plan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Synthesize Intelligence Report": {
      "main": [
        [
          {
            "node": "Filter Actionable Signals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

这是一个高级难度的工作流,适用于Ticket Management、AI Summarization等场景。适合高级用户,包含 16+ 个节点的复杂工作流

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量31
分类2
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Daniel Shashko

Daniel Shashko

@tomax

AI automation specialist and a marketing enthusiast. More than 6 years of experience in SEO/GEO. Senior SEO at Bright Data.

外部链接
在 n8n.io 上查看 →

分享此工作流