diff --git a/workflows/AI-Powered Research Assistant with Linear, Scrapeless, and Claude-6220/ai-powered_research_assistant_with_linear_scrapeless_and_claude.json b/workflows/AI-Powered Research Assistant with Linear, Scrapeless, and Claude-6220/ai-powered_research_assistant_with_linear_scrapeless_and_claude.json new file mode 100644 index 000000000..6e9385f68 --- /dev/null +++ b/workflows/AI-Powered Research Assistant with Linear, Scrapeless, and Claude-6220/ai-powered_research_assistant_with_linear_scrapeless_and_claude.json @@ -0,0 +1 @@ +{"id":"yTpEZbAAFcS0Yp4m","meta":{"instanceId":"7d291de9dc3bbf0106d65e069919a3de2507e3365a7b25788a79a3562af9bfc5","templateCredsSetupCompleted":true},"name":"Build an AI-Powered Research Assistant with Linear + Scrapeless + Claude","tags":[],"nodes":[{"id":"9137108b-6a96-4264-bb3f-4f0dc5d5c7a5","name":"Linear Trigger","type":"n8n-nodes-base.linearTrigger","position":[-580,380],"webhookId":"22e62b88-a910-4075-8527-106d75769acd","parameters":{"teamId":"3a89590a-2521-4c4a-b3b2-7e7ad5962666","resources":["issue","comment","reaction"]},"credentials":{"linearApi":{"id":"glWOH78HS1At4s5K","name":"Linear account"}},"typeVersion":1},{"id":"d49110c2-f5f9-4939-b2a3-4ee7b9c1aa77","name":"Switch","type":"n8n-nodes-base.switch","position":[-360,260],"parameters":{"mode":"expression","output":"={{\n $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/search') ? 0 :\n $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/trends') ? 1 :\n $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/unlock') ? 2 :\n $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/scrape') ? 3 :\n $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/crawl') ? 4 :\n -1\n}}","numberOutputs":5},"typeVersion":3.2},{"id":"627d13f1-1617-4a20-aa1f-2ae8cba643d6","name":"Google Search","type":"n8n-nodes-scrapeless.scrapeless","position":[260,60],"parameters":{"q":"={{ $json.data.title }}"},"credentials":{"scrapelessApi":{"id":"B73pdQXNjpqNbIhs","name":"Scrapeless account"}},"typeVersion":1},{"id":"16d29067-9aae-4159-8d31-37465885350d","name":"Google Trends","type":"n8n-nodes-scrapeless.scrapeless","position":[260,220],"parameters":{"q":"={{ $json.data.title }}","operation":"googleTrends"},"credentials":{"scrapelessApi":{"id":"B73pdQXNjpqNbIhs","name":"Scrapeless account"}},"typeVersion":1},{"id":"cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75","name":"Web Unlocker","type":"n8n-nodes-scrapeless.scrapeless","position":[260,360],"parameters":{"url":"={{ $json.data.title.replace(/\\/unlock/gi, '').trim() }}","headless":false,"resource":"universalScrapingApi"},"credentials":{"scrapelessApi":{"id":"B73pdQXNjpqNbIhs","name":"Scrapeless account"}},"typeVersion":1},{"id":"979d5139-2593-4975-afa7-2ac16d8bb5da","name":"Scrape","type":"n8n-nodes-scrapeless.scrapeless","position":[260,540],"parameters":{"url":"={{ $json.data.title }}","resource":"crawler"},"credentials":{"scrapelessApi":{"id":"B73pdQXNjpqNbIhs","name":"Scrapeless account"}},"typeVersion":1},{"id":"58658eec-316e-4fb2-8715-6f7efc49d381","name":"Crawl","type":"n8n-nodes-scrapeless.scrapeless","position":[260,700],"parameters":{"url":"={{ $json.data.title }}","resource":"crawler","operation":"crawl","limitCrawlPages":1},"credentials":{"scrapelessApi":{"id":"B73pdQXNjpqNbIhs","name":"Scrapeless account"}},"typeVersion":1},{"id":"410d82d4-2bdf-4242-b6a3-32e508608be4","name":"Code2","type":"n8n-nodes-base.code","position":[0,0],"parameters":{"jsCode":"const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n data: {\n ...($json.data),\n title: cleanTitle\n }\n};"},"typeVersion":2},{"id":"8f633954-262b-482d-aa29-3a97a0e8cbb6","name":"Code","type":"n8n-nodes-base.code","position":[580,340],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n output: JSON.stringify($json, null, 2)\n};"},"typeVersion":2},{"id":"d8e55c8c-857b-403e-b2ee-afc1253d7aba","name":"Code3","type":"n8n-nodes-base.code","position":[0,180],"parameters":{"mode":"runOnceForEachItem","jsCode":"const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n data: {\n ...($json.data),\n title: cleanTitle\n }\n};"},"typeVersion":2},{"id":"9e9a315e-6915-41a2-b77c-d46c773b9891","name":"Code4","type":"n8n-nodes-base.code","position":[20,360],"parameters":{"jsCode":"const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n data: {\n ...($json.data),\n title: cleanTitle\n }\n};"},"typeVersion":2},{"id":"c076a7a6-c901-481d-8037-f1e06be1f8e4","name":"Code5","type":"n8n-nodes-base.code","position":[20,520],"parameters":{"jsCode":"const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n data: {\n ...($json.data),\n title: cleanTitle\n }\n};"},"typeVersion":2},{"id":"b9e6ac08-8f3c-40cc-b183-a4303d9801cd","name":"Code6","type":"n8n-nodes-base.code","position":[20,720],"parameters":{"jsCode":"const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n data: {\n ...($json.data),\n title: cleanTitle\n }\n};"},"typeVersion":2},{"id":"96631700-d64b-41f7-ba06-263be9acd76e","name":"AI Agent1","type":"@n8n/n8n-nodes-langchain.agent","position":[1040,420],"parameters":{"text":"={{ $json.output }}","options":{"systemMessage":"You are a data analyst. Summarize search/scrape results concisely. Be factual and brief. Format for Linear comments.\n\nAnalyze the provided data and create a structured summary that includes:\n- Key findings and insights\n- Data source and reliability assessment \n- Actionable recommendations\n- Relevant metrics and trends\n- Next steps for further research\n\nFormat your response with clear headers and bullet points for easy reading in Linear."},"promptType":"define"},"typeVersion":2},{"id":"300d7264-86df-485a-9183-ed42df732ccc","name":"Anthropic Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[980,720],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-20250514","cachedResultName":"Claude 4 Sonnet"},"options":{"temperature":0.3,"maxTokensToSample":4000}},"credentials":{"anthropicApi":{"id":"21C7G7zPQRFyxp1T","name":"Anthropic account"}},"typeVersion":1.3},{"id":"20f412e2-4081-40a7-a458-af7b2908cc44","name":"Code7","type":"n8n-nodes-base.code","position":[1540,600],"parameters":{"jsCode":"return {\n output: $json.output\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\')\n .trim()\n};"},"typeVersion":2},{"id":"4379cc64-3b20-4ad5-a62b-470da3338cf8","name":"Add a comment to an issue1","type":"n8n-nodes-base.linear","position":[1760,600],"parameters":{"comment":"={{ $json.output }}","issueId":"={{ $('Linear Trigger').item.json.data.id }}","resource":"comment","additionalFields":{}},"credentials":{"linearApi":{"id":"glWOH78HS1At4s5K","name":"Linear account"}},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"e01eaa88-0eff-40de-b80b-51ca1bcd3acb","connections":{"Code":{"main":[[{"node":"AI Agent1","type":"main","index":0}]]},"Code2":{"main":[[{"node":"Google Search","type":"main","index":0}]]},"Code3":{"main":[[{"node":"Google Trends","type":"main","index":0}]]},"Code4":{"main":[[{"node":"Web Unlocker","type":"main","index":0}]]},"Code5":{"main":[[{"node":"Scrape","type":"main","index":0}]]},"Code6":{"main":[[{"node":"Crawl","type":"main","index":0}]]},"Code7":{"main":[[{"node":"Add a comment to an issue1","type":"main","index":0}]]},"Crawl":{"main":[[{"node":"Code","type":"main","index":0}]]},"Scrape":{"main":[[{"node":"Code","type":"main","index":0}]]},"Switch":{"main":[[{"node":"Code2","type":"main","index":0}],[{"node":"Code3","type":"main","index":0}],[{"node":"Code4","type":"main","index":0}],[{"node":"Code5","type":"main","index":0}],[{"node":"Code6","type":"main","index":0}]]},"AI Agent1":{"main":[[{"node":"Code7","type":"main","index":0}]]},"Web Unlocker":{"main":[[{"node":"Code","type":"main","index":0}]]},"Google Search":{"main":[[{"node":"Code","type":"main","index":0}]]},"Google Trends":{"main":[[{"node":"Code","type":"main","index":0}]]},"Linear Trigger":{"main":[[{"node":"Switch","type":"main","index":0}]]},"Anthropic Chat Model1":{"ai_languageModel":[[{"node":"AI Agent1","type":"ai_languageModel","index":0}]]}}} \ No newline at end of file