{"id":"f8Zow3PmilvRq85m","meta":{"instanceId":"a5283507e1917a33cc3ae615b2e7d5ad2c1e50955e6f831272ddd5ab816f3fb6"},"name":"Binance SM News and Sentiment Analyst Webhook Tool","tags":[],"nodes":[{"id":"1d71285d-a4bf-456a-a356-b9fa8b74c9d3","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1020,1220],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"credentials":{"openAiApi":{"id":"yUizd8t0sD5wMYVG","name":"OpenAi account"}},"typeVersion":1.2},{"id":"300cab6c-63ee-4271-a63e-b3afb135bdcf","name":"Set Query","type":"n8n-nodes-base.set","position":[-460,1040],"parameters":{"options":{},"assignments":{"assignments":[{"id":"9128e9e7-d1b8-4e89-8422-849b8dd519d8","name":"query","type":"string","value":"={{ $json.output }}"}]}},"typeVersion":3.4},{"id":"d7307bc3-f7c2-4db1-8674-5c6025ce7e2a","name":"Crypto News & Sentiment Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-960,1040],"parameters":{"text":"={{$json.body.message}}","options":{"systemMessage":"Your job is to analyze the keyword of the question and output it as a single word.  The keyword will always be the name of a cryptocurrency."},"promptType":"define"},"typeVersion":1.8},{"id":"c4ad1805-cb48-45a3-b850-4960f59299f0","name":"RSS Cointelegraph","type":"n8n-nodes-base.rssFeedRead","position":[160,200],"parameters":{"url":"https://cointelegraph.com/rss","options":{}},"typeVersion":1.1},{"id":"5fc71ef5-a376-41a0-9213-15cc4527b049","name":"RSS Bitcoinmagazine","type":"n8n-nodes-base.rssFeedRead","position":[160,360],"parameters":{"url":"https://bitcoinmagazine.com/.rss/full/","options":{}},"typeVersion":1.1},{"id":"bdbf7bab-c3a6-4f65-bbb9-a6cd83763dc5","name":"RSS Coindesk","type":"n8n-nodes-base.rssFeedRead","position":[160,520],"parameters":{"url":"https://www.coindesk.com/arc/outboundfeeds/rss/","options":{}},"typeVersion":1.1},{"id":"836d7edd-62c5-4819-aa30-c48c4b1f005d","name":"RSS Bitcoinist","type":"n8n-nodes-base.rssFeedRead","position":[160,680],"parameters":{"url":"https://bitcoinist.com/feed/","options":{}},"typeVersion":1.1},{"id":"a0778852-e86b-41e5-a3f8-6d4352e397a1","name":"RSS Newsbtc","type":"n8n-nodes-base.rssFeedRead","position":[160,840],"parameters":{"url":"https://www.newsbtc.com/feed/","options":{}},"typeVersion":1.1},{"id":"d5c5cc4f-ef15-40af-be33-31ce2dbdc45e","name":"RSS Cryptopotato","type":"n8n-nodes-base.rssFeedRead","position":[160,1200],"parameters":{"url":"https://cryptopotato.com/feed/","options":{}},"typeVersion":1.1},{"id":"5f02ad60-9b0a-49fc-afd7-558ac5aeee2d","name":"RSS 99bitcoins","type":"n8n-nodes-base.rssFeedRead","position":[160,1380],"parameters":{"url":"https://99bitcoins.com/feed/","options":{}},"typeVersion":1.1},{"id":"cc5373ab-931a-4b95-a1d4-6d21fa18273a","name":"RSS Cryptobriefing","type":"n8n-nodes-base.rssFeedRead","position":[160,1560],"parameters":{"url":"https://cryptobriefing.com/feed/","options":{}},"typeVersion":1.1},{"id":"e5baa2ef-0455-42b0-a597-dedd551ae1aa","name":"RSS Crypto.news","type":"n8n-nodes-base.rssFeedRead","position":[160,1720],"parameters":{"url":"https://crypto.news/feed/","options":{}},"typeVersion":1.1},{"id":"2cb96040-0e47-41b5-9c32-8362d397333c","name":"Merge All Articles","type":"n8n-nodes-base.merge","position":[840,880],"parameters":{"numberInputs":10},"typeVersion":3.1},{"id":"a1f53681-504a-445a-9aa1-35c40f174e0c","name":"Filter by Query","type":"n8n-nodes-base.code","position":[1080,1020],"parameters":{"jsCode":"const term = $node[\"Set Query\"].json.query.toLowerCase();\nreturn items.filter(item => {\n  const j            = item.json;\n  const title        = (j.title || \"\").toLowerCase();\n  const snippet      = (j.contentSnippet || j.description || \"\").toLowerCase();\n  const fullContent  = (j.content || \"\").toLowerCase();\n  return title.includes(term)\n      || snippet.includes(term)\n      || fullContent.includes(term);\n});"},"typeVersion":2},{"id":"3b886f03-884f-4c9a-bb74-46be78c941fe","name":"Build Prompt","type":"n8n-nodes-base.code","position":[1400,1020],"parameters":{"jsCode":"const q   = $node[\"Set Query\"].json.query;\nconst list = items\n  .map(i => `- ${i.json.title} (${i.json.link})`)\n  .join(\"\\n\");\nconst prompt = `\nYou are a crypto-industry news analyst.\nSummarize current news and market sentiment for **${q}** based on these articles:\n${list}\n\nAnswer in 3 parts:\n1. Summary of News\n2. Market Sentiment\n3. Links to reference news articles\n`;\nreturn [{ json: { prompt } }];"},"typeVersion":2},{"id":"936b9c46-0ea4-498a-9dbb-b4f6b62cf70f","name":"Summarize News & Sentiment (GPT-4o)","type":"@n8n/n8n-nodes-langchain.openAi","position":[1680,1020],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"GPT-4O"},"options":{},"messages":{"values":[{"content":"={{ $node[\"Build Prompt\"].json.prompt }}"},{"role":"assistant","content":"You are a crypto‐industry news analyst. Summarize sentiment clearly and concisely."}]}},"credentials":{"openAiApi":{"id":"yUizd8t0sD5wMYVG","name":"OpenAi account"}},"typeVersion":1.8},{"id":"2c1b4212-3675-416d-a0f4-f1bce7b1581b","name":"Prepare Telegram Message","type":"n8n-nodes-base.set","position":[2100,1020],"parameters":{"options":{},"assignments":{"assignments":[{"id":"565fb705-ac83-4a96-9343-2e29e348cc4f","name":"summary","type":"string","value":"={{ $json.message.content }}"}]}},"typeVersion":3.4},{"id":"ae4eacc3-281d-4c40-a1c8-fbd580fb49a8","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1120,900],"parameters":{"color":6,"width":600,"height":460,"content":"##  Extract Keyword \nThis AI agent parses the user input and returns a single-word keyword to help match relevant news articles."},"typeVersion":1},{"id":"ea8734d6-5f17-4587-88aa-fcd342a563c5","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[0,0],"parameters":{"color":5,"width":460,"height":1980,"content":"## News Aggregators\nPulls articles from major crypto news sources. You can add more RSS feeds here to expand coverage."},"typeVersion":1},{"id":"214d3fa9-d3f2-4e8a-bfab-5d4deb2881cf","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[760,680],"parameters":{"color":2,"width":480,"height":760,"content":"## Merge & Filter News\nCombines all RSS articles and filters them using the extracted keyword to match only relevant results."},"typeVersion":1},{"id":"c6942449-1e0b-4bca-b1e0-411a3deaf26d","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1320,840],"parameters":{"color":7,"width":260,"height":360,"content":"## Prepare AI Prompt\nConstructs the input prompt for GPT-4o with a list of filtered articles. Output includes summary, sentiment, and article links."},"typeVersion":1},{"id":"7f401bd0-f14d-49d6-9d4a-fcb6e01bd64c","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1640,800],"parameters":{"color":3,"width":340,"height":440,"content":"## Summarize News & Sentiment (GPT-4o)\nUses OpenAI GPT-4o to generate a concise summary of the news, analyze market sentiment, and return formatted results.\n\n"},"typeVersion":1},{"id":"f60cb8e4-8d3f-4112-a200-6affb3b80cb3","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[2040,760],"parameters":{"color":6,"height":460,"content":"## Format for Telegram\n\nExtracts the AI summary and prepares it for Telegram delivery. Change the variable if you want to include other data.\n\n\n"},"typeVersion":1},{"id":"e19e48b4-36cb-4b0b-87c5-0bae7f6068d7","name":"Webhook","type":"n8n-nodes-base.webhook","position":[-1440,1040],"webhookId":"a41af97d-6bd6-44d2-b79e-dca6df1e6e7e","parameters":{"path":"a41af97d-6bd6-44d2-b79e-dca6df1e6e7e","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"7fae635b-2c8d-44e5-ac2a-b8a458653905","name":"Respond to Webhook","type":"n8n-nodes-base.respondToWebhook","position":[2440,1020],"parameters":{"options":{},"respondWith":"allIncomingItems"},"typeVersion":1.2},{"id":"96b562cd-1a55-40ef-aa0c-5d553d7f9818","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1500,740],"parameters":{"color":4,"height":480,"content":"## Webhook Trigger\nNode: Webhook\nAccepts **incoming HTTP POST requests**.\nExpected body format:\n\njson\n{ \"message\": \"<symbol>\" }\n\nThis kicks off the **full news + sentiment analysis process** for a given crypto asset."},"typeVersion":1},{"id":"8422e6bb-320e-4b5b-b392-2ba3adb215b7","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[2380,760],"parameters":{"color":4,"height":480,"content":"## Return Results to Caller\nNode: Respond to Webhook\n**Sends the final formatted message** back to the parent workflow that triggered the call."},"typeVersion":1},{"id":"f323030f-c92f-4bff-a5df-f498aa70d9c4","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[2780,-360],"parameters":{"width":1340,"height":2360,"content":"# 📰 Binance SM News and Sentiment Analyst Webhook Tool – Documentation\n\nA sentiment intelligence sub-agent that aggregates crypto news from top-tier RSS feeds, filters it based on a given token, and generates a market sentiment summary + headline list formatted for Telegram.\n\n---\n\n## 🎯 Purpose\n\nThis tool is responsible for:\n\n* Accepting a webhook request with a token symbol (e.g., `DOGE`, `SOL`)\n* Aggregating recent articles from 9+ major crypto news feeds\n* Filtering for articles relevant to the symbol\n* Summarizing the sentiment and key headlines using GPT-4o\n* Returning a Telegram-friendly formatted response to the caller\n\n---\n\n## 🛠️ Architecture & Key Components\n\n| Component                          | Role                                                           |\n| ---------------------------------- | -------------------------------------------------------------- |\n| 🔗 `Webhook`                       | Triggered externally with `{ message: \"BTC\" }`                 |\n| 🧠 `Crypto News & Sentiment Agent` | Uses GPT to extract the correct crypto keyword                 |\n| 🔄 RSS Feed Readers                | Pull from Cointelegraph, Coindesk, NewsBTC, Bitcoinist, etc.   |\n| 📦 `Merge All Articles`            | Combines articles into one stream                              |\n| 🧹 `Filter by Query`               | Keeps only the news relevant to the requested token            |\n| 📝 `Build Prompt`                  | Builds natural-language prompt to send to GPT                  |\n| 🧠 `Summarize News & Sentiment`    | GPT-4o summarizes the filtered articles with sentiment scoring |\n| 🧾 `Prepare Telegram Message`      | Formats the final summary in clean, Telegram-readable style    |\n| 📤 `Respond to Webhook`            | Returns the message to the triggering parent workflow          |\n\n---\n\n## 📥 Webhook Input\n\n> Expects a simple HTTP POST to the webhook endpoint:\n\n```json\n{\n  \"message\": \"ETH\"\n}\n```\n\nThis triggers a full pipeline execution, resulting in a text summary like:\n\n---\n\n## 📤 Sample Output Format\n\n```\n📣 ETH Sentiment: Neutral\n\n• BlackRock’s tokenized fund expands to Ethereum mainnet (CoinDesk)  \n• Ethereum fees remain high, analysts call for L2 migration (NewsBTC)  \n• Vitalik warns about centralized risks in staking (Cointelegraph)\n```\n\n---\n\n## 🔍 Use Cases\n\n| Scenario                                   | Outcome                                              |\n| ------------------------------------------ | ---------------------------------------------------- |\n| Sentiment summary for BTC                  | Fetches 8–12 filtered headlines, extracts tone       |\n| Daily news pulse for SOL                   | Shows project-related news with brief sentiment flag |\n| Enhances technical analysis interpretation | Adds macro/emotional context to trend setups         |\n| Telegram bot asks for XRP sentiment        | Sends full response back to user instantly           |\n\n---\n\n## 📚 How to Install\n\n### 1. Import & Activate\n\n1. Load the `.json` into your n8n instance\n2. Enable the webhook\n3. Link to parent agent (`Financial Analyst`, `Quant Agent`)\n\n### 2. Set Credentials\n\n* Requires a working **OpenAI API Key** (for GPT-4o)\n* No authentication required for RSS sources\n\n### 3. Connect to Caller\n\nAny external workflow (like your `Quant AI Agent`) can call this by:\n\n* Using HTTP Request Node\n* POSTing to this webhook with `{ message: \"BTC\" }` in the body\n\n---\n\n## 🧾 Licensing & Support\n\n🔗 **Don Jayamaha – LinkedIn**\n[http://linkedin.com/in/donjayamahajr](http://linkedin.com/in/donjayamahajr)\n\n© 2025 Treasurium Capital Limited Company. All rights reserved.\nThis system—including workflow architecture, prompt design, and logic structure—is protected under U.S. copyright law. Unauthorized resale or reproduction is prohibited.\n\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"9c17a79d-f8a4-413e-a486-2e89229994cf","connections":{"Webhook":{"main":[[{"node":"Crypto News & Sentiment Agent","type":"main","index":0}]]},"Set Query":{"main":[[{"node":"RSS Cointelegraph","type":"main","index":0},{"node":"RSS Bitcoinmagazine","type":"main","index":0},{"node":"RSS Coindesk","type":"main","index":0},{"node":"RSS Bitcoinist","type":"main","index":0},{"node":"RSS Newsbtc","type":"main","index":0},{"node":"RSS Cryptopotato","type":"main","index":0},{"node":"RSS 99bitcoins","type":"main","index":0},{"node":"RSS Cryptobriefing","type":"main","index":0},{"node":"RSS Crypto.news","type":"main","index":0}]]},"RSS Newsbtc":{"main":[[{"node":"Merge All Articles","type":"main","index":4}]]},"Build Prompt":{"main":[[{"node":"Summarize News & Sentiment (GPT-4o)","type":"main","index":0}]]},"RSS Coindesk":{"main":[[{"node":"Merge All Articles","type":"main","index":2}]]},"RSS 99bitcoins":{"main":[[{"node":"Merge All Articles","type":"main","index":7}]]},"RSS Bitcoinist":{"main":[[{"node":"Merge All Articles","type":"main","index":3}]]},"Filter by Query":{"main":[[{"node":"Build Prompt","type":"main","index":0}]]},"RSS Crypto.news":{"main":[[{"node":"Merge All Articles","type":"main","index":9}]]},"RSS Cryptopotato":{"main":[[{"node":"Merge All Articles","type":"main","index":6}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Crypto News & Sentiment Agent","type":"ai_languageModel","index":0}]]},"RSS Cointelegraph":{"main":[[{"node":"Merge All Articles","type":"main","index":0}]]},"Merge All Articles":{"main":[[{"node":"Filter by Query","type":"main","index":0}]]},"RSS Cryptobriefing":{"main":[[{"node":"Merge All Articles","type":"main","index":8}]]},"RSS Bitcoinmagazine":{"main":[[{"node":"Merge All Articles","type":"main","index":1}]]},"Prepare Telegram Message":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Crypto News & Sentiment Agent":{"main":[[{"node":"Set Query","type":"main","index":0}]]},"Summarize News & Sentiment (GPT-4o)":{"main":[[{"node":"Prepare Telegram Message","type":"main","index":0}]]}}}