{"id":"8v4dynjkHSLVGJSG","meta":{"instanceId":"workflow-40f9f218","versionId":"1.0.0","createdAt":"2025-09-29T07:07:51.844485","updatedAt":"2025-09-29T07:07:51.844497","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Crypto News & Sentiment","nodes":[{"id":"e10ed4da-ab3e-4ff0-b489-a3ed9e88e042","name":"OpenAI Chat Model","type":"n8n-nodes-base.noOp","position":[-1340,1520],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"credentials":{"openAiApi":{"id":"yUizd8t0sD5wMYVG","name":"OpenAi account"}},"typeVersion":1,"notes":"This lmChatOpenAi node performs automated tasks as part of the workflow."},{"id":"edb76989-766a-43e6-bf49-3896a1d257dd","name":"Set Query","type":"n8n-nodes-base.set","position":[-780,1340],"parameters":{"options":{},"assignments":{"assignments":[{"id":"9128e9e7-d1b8-4e89-8422-849b8dd519d8","name":"query","type":"string","value":"={{ $json.output }}"},{"id":"b6adc989-7d3c-4dbb-a659-603591cf1f58","name":"sessionId","type":"string","value":"={{ $('Adds the sessionId').item.json.sessionId }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"0ef0571a-d0c2-4f05-898e-1aed56b02d56","name":"Crypto News & Sentiment Agent","type":"n8n-nodes-base.noOp","position":[-1280,1340],"parameters":{"text":"={{ $('Send Crypto or Company Name for Analysis').item.json.message.text }}","options":{"systemMessage":"Your job is to analyze the keyword of the question and output it as a single word."},"promptType":"define"},"typeVersion":1,"notes":"This agent node performs automated tasks as part of the workflow."},{"id":"8f7859fa-e80c-4c0e-b8b5-5593d5108f5f","name":"RSS Cointelegraph","type":"n8n-nodes-base.rssFeedRead","position":[-160,500],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"5ce9dc61-de8e-4b3a-a0e2-4c077a28e0d4","name":"RSS Bitcoinmagazine","type":"n8n-nodes-base.rssFeedRead","position":[-160,660],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"d2491728-8a51-4384-adfa-8636f8d8cacd","name":"RSS Coindesk","type":"n8n-nodes-base.rssFeedRead","position":[-160,820],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"60b17a68-b7b0-444f-8bbc-4d9ccfba6892","name":"RSS Bitcoinist","type":"n8n-nodes-base.rssFeedRead","position":[-160,980],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"82b50de0-68a7-4660-b6d9-fa01922c2492","name":"RSS Newsbtc","type":"n8n-nodes-base.rssFeedRead","position":[-160,1140],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"90f9a5be-8eb2-4073-9c18-50478ba4890b","name":"RSS Cryptopotato","type":"n8n-nodes-base.rssFeedRead","position":[-160,1500],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"6428c19d-c66c-4577-b6ca-8c0c82a757fa","name":"RSS 99bitcoins","type":"n8n-nodes-base.rssFeedRead","position":[-160,1680],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"b2fc6584-cd64-4b90-91cf-b9bfdc483203","name":"RSS Cryptobriefing","type":"n8n-nodes-base.rssFeedRead","position":[-160,1860],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"8be5859b-bb82-4ece-9aa5-5bfbc27e4cca","name":"RSS Crypto.news","type":"n8n-nodes-base.rssFeedRead","position":[-160,2020],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":1.1,"notes":"This rssFeedRead node performs automated tasks as part of the workflow."},{"id":"b5f393de-a3da-47a4-8a19-ebf53c29051d","name":"Merge All Articles","type":"n8n-nodes-base.merge","position":[520,1180],"parameters":{"numberInputs":10},"typeVersion":3.1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"ce4da50f-ecff-4d13-a90d-e62db6bc3ef9","name":"Filter by Query","type":"n8n-nodes-base.code","position":[760,1320],"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,"notes":"This code node performs automated tasks as part of the workflow."},{"id":"566e842f-8e2c-491c-87b5-5f1d322a9de8","name":"Build Prompt","type":"n8n-nodes-base.code","position":[1080,1320],"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,"notes":"This code node performs automated tasks as part of the workflow."},{"id":"2f5b2eb5-bc2e-432d-b0c8-44c6822b831b","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[2080,1020],"parameters":{"color":3,"width":300,"height":580,"content":"## Send Telegram Response\n\nSends the final AI-generated summary to the user.\n⚠️ Replace chatId with a dynamic value like << Telegram ID here >> to ensure it sends to the right user."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"d9f178d6-b834-4a18-b8a5-ab1261b99ca6","name":"Adds the sessionId","type":"n8n-nodes-base.set","position":[-1740,1340],"parameters":{"options":{},"assignments":{"assignments":[{"id":"87c63e75-94e4-432c-b15f-8762aa340215","name":"sessionId","type":"string","value":"={{ $json.message.chat.id }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"4dd3e531-ab2a-4930-a127-08adb5bde409","name":"Summarize News & Sentiment (GPT-4o)","type":"n8n-nodes-base.noOp","position":[1360,1320],"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,"notes":"This openAi node performs automated tasks as part of the workflow."},{"id":"b0da1d25-9c17-49a1-85f4-82425e7c9f91","name":"Prepare Telegram Message","type":"n8n-nodes-base.set","position":[1780,1320],"parameters":{"options":{},"assignments":{"assignments":[{"id":"565fb705-ac83-4a96-9343-2e29e348cc4f","name":"summary","type":"string","value":"={{ $json.message.content }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"95cb909b-51f4-4661-9db5-e8181a7efffe","name":"Sends Response","type":"n8n-nodes-base.telegram","position":[2180,1320],"webhookId":"8018c16f-426e-4a8b-8fbf-55cc013d1226","parameters":{"text":"={{ $json.summary }}","chatId":"<< Add Telegram ID here >>","additionalFields":{"appendAttribution":false}},"credentials":{"telegramApi":{"id":"YDlV4LtcNcmNqk4y","name":"Crypto_News_and_Sentiment_bot"}},"typeVersion":1.2,"notes":"This telegram node performs automated tasks as part of the workflow."},{"id":"a783bddf-7d70-4345-88f3-c474a50bdea0","name":"Send Crypto or Company Name for Analysis","type":"n8n-nodes-base.telegramTrigger","position":[-2180,1340],"webhookId":"37a1f055-1670-472d-9850-d89555b7ed47","parameters":{"updates":["message"],"additionalFields":{}},"credentials":{"telegramApi":{"id":"YDlV4LtcNcmNqk4y","name":"Crypto_News_and_Sentiment_bot"}},"typeVersion":1.2,"notes":"This telegramTrigger node performs automated tasks as part of the workflow."},{"id":"d847a178-c0f2-482b-8773-ac0362435dfd","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-2320,1200],"parameters":{"color":4,"width":380,"height":360,"content":"## Telegram Setup \nThis bot listens for incoming messages in Telegram. To use it, create a bot with @BotFather and paste your bot token into the credentials."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"75ee14cf-6236-4f45-b864-b422f18c8214","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1860,1220],"parameters":{"width":360,"height":320,"content":"## Initialize Chat Session\nStores the user's chat ID as sessionId, which is used to manage conversation memory across steps."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"674f2555-752d-4ffc-894c-efd705f32887","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1440,1200],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"bece27b1-bc60-44f7-bdc9-6ec61f7a2e5b","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-320,300],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"7f7a2949-4147-4ab9-bb52-99c1bb2205ed","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[440,980],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"d19d53c0-7d23-4ccb-9a68-dc2855e5b73d","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1000,1140],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"17607891-ed84-4cca-ad3d-c398e5652a8c","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1320,1100],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"9d47eb56-4469-4f42-84a1-6f76bb7fa598","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[1720,1060],"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"7c02860b-f865-4ff9-baeb-0903a76278d9","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[1140,320],"parameters":{"width":520,"content":"## ✅ How to Use This Template\n \n🛠 1. Connect your Telegram bot\n🤖 2. Add your OpenAI credentials\n📰 3. Customize the RSS feeds (optional)\n✅ 4. Start your bot and send a query like “Bitcoin” or “NFT”"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"error-3647b855","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"ae250264-5df8-4341-b198-5272baeadc38","connections":{"OpenAI Chat Model":{"main":[[]]},"Summarize News & Sentiment (GPT-4o)":{"main":[[]]},"Sends Response":{"main":[[]]},"Send Crypto or Company Name for Analysis":{"main":[[]]}},"description":"Automated workflow: Crypto News & Sentiment. This workflow integrates 11 different services: stickyNote, telegramTrigger, telegram, code, agent. It contains 34 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Crypto News & Sentiment. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}