{"workflow":{"id":12533,"name":"Curate and generate an AI newsletter from RSS feeds with OpenAI and Slack","views":171,"recentViews":0,"totalViews":171,"createdAt":"2026-01-07T08:19:09.421Z","description":"## Who’s it for\nThis workflow is for content creators, newsletter editors, and AI enthusiasts who want to automate the heavy lifting of news gathering. It acts as an autonomous research agent that monitors industry sources and drafts high-quality summaries for your review.\n\n## How it works\nThis workflow serves as a \"human-in-the-loop\" publishing agent:\n1. **Ingestion & Normalization:** It monitors 15+ sources including RSS feeds (TechCrunch), Reddit (r/OpenAI), and company blogs (Anthropic, Google). It normalizes these diverse inputs into a standard format.\n2. **Filtering & Curating:** Using OpenAI (GPT-4o), it filters out noise to identify only high-impact stories. It then selects the top 4 stories based on relevance to a tech-savvy audience.\n3. **Drafting:** It writes a complete newsletter, including a catchy subject line, an intro hook, deep-dive summaries, and a \"quick hits\" list. It even generates viral short-form video scripts based on the news.\n4. **Slack Approval:** The draft is sent to Slack. You can approve it immediately or reply with feedback (e.g., \"Make the tone punchier\"), prompting the AI to revise the draft before generating the final file.\n\n## How to set up\n1. **Credentials:** Connect your OpenAI, Anthropic, Google Sheets, and Slack accounts in n8n.\n2. **Google Sheets:** Create a sheet with columns for `Title`, `URL`, `Source`, `Published`, and `Content`. Paste the **Sheet ID** into the \"Log to Google Sheets\" and \"Get_Stories\" nodes.\n3. **Slack:** Update the Slack nodes with your specific **Channel ID** where you want to receive drafts.\n\n## Requirements\n* **n8n version:** 1.0+ (requires LangChain nodes).\n* **LLM API Keys:** OpenAI and Anthropic.\n* **Google Sheets:** For logging processed history.\n* **Slack:** For the approval interface.\n\n## How to customize\n* **Change Sources:** Edit the RSS Trigger nodes to track Finance, SaaS, or Crypto news instead of AI.\n* **Adjust Tone:** Open the `stories_prompt` node to change the persona of the AI editor (e.g., from \"Professional\" to \"Witty\").\n* **Publishing:** Connect the final output to a CMS like WordPress or Ghost to publish automatically upon approval.","workflow":{"meta":{"instanceId":"0b44ef404dc7e82cf99a7bae83498ebd34b3f55bea74398be5300a7655634aba","templateCredsSetupCompleted":true},"nodes":[{"id":"80ce8e50-6fef-4430-94af-d54ae3bd92e1","name":"evaluate_content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-3856,-4176],"parameters":{"text":"=Given content fetched from a web page, analyze this content to determine if it is a full piece of content that would be considered relevent to our AI Newsletter which features stories, advancements, and other interesting happenings in the tech and AI space.\n\n- Job postings are not relevant content\n- Content centered around unrelated industries is not relevant\n- Only AI and AI Adjacent content should be considered relevant\n\n---\n{{ $json.data.json.content }}","promptType":"define","hasOutputParser":true},"typeVersion":1.5},{"id":"5a2095ec-ee2d-43f3-bcaf-1b6121f573d2","name":"is_revelant_content_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-3728,-3952],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n        \"chainOfThought\": {\n          \"type\": \"string\",\n          \"description\": \"Sequential reasoning to determine if the provided content is a valid and relevant piece of content that an AI or tech enthusiast would be interested in reading and learning about.\"\n        },\n\t\t\"is_revelant_content\": {\n\t\t\t\"type\": \"boolean\",\n            \"description\": \"Indicator if the provided content is relevant piece of content to the AI industry.\"\n\t\t}\n\t}\n}"},"typeVersion":1.2},{"id":"39584ce1-3723-4e77-bb3d-8741bca951fe","name":"o3-mini","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-3856,-3952],"parameters":{"model":{"__rl":true,"mode":"list","value":"o3-mini","cachedResultName":"o3-mini"},"options":{}},"credentials":{"openAiApi":{"id":"OZyy42euCKAFFRMH","name":"OpenAi account"}},"typeVersion":1.2},{"id":"82ac3a51-9309-434d-8a94-6e5bd25993c1","name":"Log to Google Sheets","type":"n8n-nodes-base.googleSheets","position":[-3056,-4048],"parameters":{"columns":{"value":{"URL":"={{ $json.data.metadata.url }}","Title":"={{ $json.data.metadata['og:title'] }}","Source":"={{ $json.data.metadata.ogSiteName }}","Authors":"=","Content":"={{ $json.data.json.content }}","Published":"={{ $json.data.metadata.publishedTime }}","External Sources":"={{ $json.data.metadata.externalSources || '' }}"},"schema":[{"id":"Title","type":"string","display":true,"removed":false,"required":false,"displayName":"Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"URL","type":"string","display":true,"removed":false,"required":false,"displayName":"URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Source","type":"string","display":true,"removed":false,"required":false,"displayName":"Source","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Published","type":"string","display":true,"removed":false,"required":false,"displayName":"Published","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Identifier","type":"string","display":true,"removed":false,"required":false,"displayName":"Identifier","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Authors","type":"string","display":true,"removed":false,"required":false,"displayName":"Authors","defaultMatch":false,"canBeUsedToMatch":true},{"id":"External Sources","type":"string","display":true,"removed":false,"required":false,"displayName":"External Sources","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Title"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU","cachedResultUrl":"https://docs.google.com/spreadsheets/d/17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU/edit?usp=drivesdk","cachedResultName":"AI News Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BhSW4FPIcXTf1KFA","name":"Google Sheets account"}},"typeVersion":4.5},{"id":"7c459962-96cd-4816-bb36-dc74d2cbd111","name":"the_neuron_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-1184],"parameters":{"feedUrl":"https://rss.app/feeds/e2QjBpEDLPfVUeoI.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"a964ae49-3360-4a50-96df-6ffdeb0734d8","name":"futurepedia_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-960],"parameters":{"feedUrl":"https://rss.app/feeds/x8T02B3GXYy18pNy.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"ca2e269d-8c4a-4b01-9423-6033e8eed05a","name":"superhuman_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-736],"parameters":{"feedUrl":"https://rss.app/feeds/3tDyvQwHp8cgL7qs.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"b043e12d-1e40-49ca-8dc0-621f05362683","name":"normalize_neuron","type":"n8n-nodes-base.set","position":[-5520,-1184],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"the-neuron"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://www.theneurondaily.com/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"2e2dae26-cd7c-48f5-886a-a959feb679f4","name":"normalize_futurepedia","type":"n8n-nodes-base.set","position":[-5520,-960],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"futurepedia"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://futurepedia.beehiiv.com/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"d33caffb-512c-4422-8fb0-d16b90a75fca","name":"normalize_superhuman","type":"n8n-nodes-base.set","position":[-5520,-736],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"superhuman"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://www.superhuman.ai/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"78c539d7-cf08-4cb4-a000-618821486d26","name":"the_rundown_ai_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-1392],"parameters":{"feedUrl":"https://rss.app/feeds/Kc554BCmk9PUValj.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"6af009fd-340b-4db1-92b6-ea14695bd4ee","name":"normalize_the_rundown_ai","type":"n8n-nodes-base.set","position":[-5520,-1392],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"the-rundown-ai"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://www.therundown.ai/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"678c10a4-2a8a-49cc-b47d-bfbea4d15a83","name":"taaft_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-512],"parameters":{"feedUrl":"https://rss.beehiiv.com/feeds/22I6c0vJXV.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"a49acb85-064b-4c5b-8083-238b50f1163c","name":"normalize_taaft","type":"n8n-nodes-base.set","position":[-5520,-512],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"taaft"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://newsletter.theresanaiforthat.com/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"cbe92f70-736f-4b2b-b5e9-41d3e10f3cb3","name":"bens_bites_trigger","type":"n8n-nodes-base.rssFeedReadTrigger","position":[-6640,-1616],"parameters":{"feedUrl":"https://rss.app/feeds/O60XfEFYoxJhYVkS.xml","pollTimes":{"item":[{"mode":"everyX","value":4}]}},"typeVersion":1},{"id":"521874da-c920-4c9f-8c5a-759e85dea736","name":"normalize_bens_bites","type":"n8n-nodes-base.set","position":[-5520,-1616],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3261021f-54d8-4cce-a78a-12e40520d2c1","name":"sourceName","type":"string","value":"bens-bites"},{"id":"a7a3c290-4b8c-46e5-a9e2-d7c9c03d3bee","name":"feedType","type":"string","value":"newsletter"},{"id":"efb8285b-9def-4cef-883f-af6fbdafa0c7","name":"feedUrl","type":"string","value":"https://bensbites.beehiiv.com/archive"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"05544443-ede2-4925-a5e7-cb8f647172fb","name":"google_news_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-1840],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":3}]}},"typeVersion":1.2},{"id":"071b1832-3025-4ad2-b2f7-c331c52b2682","name":"fetch_google_news_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-1840],"parameters":{"url":"https://rss.app/feeds/v1.1/AkOariu1C7YyUUMv.json","options":{}},"typeVersion":4.2},{"id":"84292f47-dfed-4ce1-812b-c3deb6c43e49","name":"normalize_google_news_articles","type":"n8n-nodes-base.code","position":[-5520,-1840],"parameters":{"mode":"runOnceForEachItem","jsCode":"const domainSourceMap = {\n  \"engadget.com\": \"engadget\",\n  \"gizmodo.com\": \"gizmodo\",\n  \"techcrunch.com\": \"techcrunch\",\n  \"theverge.com\": \"the-verge\",\n  \"cnbc.com\": \"cnbc\",\n  \"forbes.com\": \"forbes\",\n  \"tradingview.com\": \"trading-view\",\n  \"economist.com\": \"economist\",\n  \"tomshardware.com\": \"toms-hardware\",\n  \"timesofindia.indiatimes.com\": \"times-of-india\",\n  \"seekingalpha.com\": \"seeking-alpha\",\n  \"fool.com\": \"the-motley-fool\",\n  \"sherwood.news\": \"sherwood-news\",\n  \"theregister.com\": \"the-register\",\n  \"yahoo.com\": \"yahoo\",\n  \"finance.yahoo.com\": \"yahoo-finance\",\n  \"venturebeat.com\": \"venture-beat\",\n  \"gurufocus.com\": \"guru-focus\",\n  \"yourstory.com\": \"your-story\",\n  \"theguardian.com\": \"the-guardian\",\n  \"spectrum.ieee.org\": \"spectrum-ieee\",\n  \"nasdaq.com\": \"nasdaq\",\n  \"euractiv.com\": \"euractiv\",\n  \"fortune.com\": \"fortune\",\n  \"indexbox.io\": \"indexbox\",\n  \"phys.org\": \"phys\",\n  \"reuters.com\": \"reuters\",\n  \"bloomberg.com\": \"bloomberg\",\n  \"ign.com\": \"ign\",\n  \"japantimes.co.jp\": \"japan-times\",\n  \"thehindu.com\": \"the-hindu\",\n  \"ft.com\": \"financial-times\",\n  \"nytimes.com\": \"the-new-york-times\",\n  \"aftermath.site\": \"aftermath\",\n  \"computerworld.com\": \"computer-world\",\n  \"business.inquirer.net\": \"business-inquirer\",\n  \"androidpolice.com\": \"android-police\",\n  \"scmp.com\": \"scmp\",\n  \"azure.microsoft.com\": \"microsoft-azure\",\n  \"benzinga.com\": \"benzinga\"\n}\n\n// Use a regex to extract the hostname.\n// The regex breakdown:\n// ^(?:https?:\\/\\/)?  --> Optionally match the protocol (http:// or https://)\n// (?:www\\.)?         --> Optionally match \"www.\"\n// ([^\\/]+)           --> Capture all characters until the first \"/\" (the hostname)\nconst match = $input.item.json.url.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\n\nif (!match) {\n  throw new Error(\"Unable to regex match url\")\n}\n\nconst domain = match[1];\nlet sourceName = domainSourceMap[domain];\n\nif (!sourceName) {\n  // Fallback: generate a friendly name by removing any leading \"www.\", \n  // then removing the TLD (the last dot segment),\n  // and finally replacing any remaining dots with dashes.\n  sourceName = domain\n    .replace(/^www\\./, '')\n    .replace(/\\.[^.]+$/, '') // removes the TLD\n    .replace(/\\./g, '-');\n}\n\nif (!sourceName) {\n    throw new Error(`Unknown source detected: ${domain}`);\n}\n\nreturn {\n  sourceName: sourceName,\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/AkOariu1C7YyUUMv.json\"\n}"},"typeVersion":2},{"id":"8ad2081a-a139-41a4-bc2d-233ca9281dcf","name":"hacker_news_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-2080],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":3}]}},"typeVersion":1.2},{"id":"68004b5b-a278-48bc-94b8-faf3ecdb4f0e","name":"fetch_hacker_news_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-2080],"parameters":{"url":"https://rss.app/feeds/v1.1/jf3MZ9ZlVZhrVEjD.json","options":{}},"typeVersion":4.2},{"id":"e81d2abe-c512-479c-86a6-6049fc1b7c64","name":"split_google_news_items","type":"n8n-nodes-base.splitOut","position":[-6192,-1840],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"60778d8a-a04d-4f63-83fd-e9ed3d4bbf34","name":"split_hacker_news_items","type":"n8n-nodes-base.splitOut","position":[-6192,-2080],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"2c12197c-2941-4d58-8d4d-5d1487095360","name":"normalize_hacker_news_articles","type":"n8n-nodes-base.code","position":[-5520,-2080],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Use a regex to extract the hostname.\n// The regex breakdown:\n// ^(?:https?:\\/\\/)?  --> Optionally match the protocol (http:// or https://)\n// (?:www\\.)?         --> Optionally match \"www.\"\n// ([^\\/]+)           --> Capture all characters until the first \"/\" (the hostname)\nconst match = $input.item.json.url.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\n\nif (!match) {\n  throw new Error(\"Unable to regex match url\")\n}\n\nconst domain = match[1];\nconst sourceName = domain\n  .replace(/^www\\./, '')\n  .replace(/\\.[^.]+$/, '') // removes the TLD\n  .replace(/\\./g, '-');\n\nif (!sourceName) {\n    throw new Error(`Unknown source detected: ${domain}`);\n}\n\nreturn {\n  sourceName: sourceName,\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/AkOariu1C7YyUUMv.json\"\n}"},"typeVersion":2},{"id":"3f9138cb-0c97-4138-a3ff-d5fe5767b565","name":"fetch_reddit_artificial_inteligence_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-2320],"parameters":{"url":"https://rss.app/feeds/v1.1/F3rBf24jLxG6mNoJ.json","options":{}},"typeVersion":4.2},{"id":"7da7f397-5afb-42f9-979b-344a649ae46a","name":"split_reddit_artificial_inteligence_items","type":"n8n-nodes-base.splitOut","position":[-6192,-2320],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"d46b31d1-0747-49e7-baf0-bed4f06cb59e","name":"get_reddit_artificial_inteligence_items","type":"n8n-nodes-base.reddit","onError":"continueRegularOutput","disabled":true,"position":[-5984,-2320],"parameters":{"postId":"={{ $json.url.match(/comments\\/([^/]+)/)[1] }}","operation":"get","subreddit":"ArtificialInteligence"},"typeVersion":1},{"id":"471c45d5-ca95-46f5-9ea4-f0d84a678f6c","name":"filter_reddit_artificial_inteligence_items","type":"n8n-nodes-base.filter","position":[-5760,-2320],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"701be722-6eb4-48f5-bc12-ed858a58bce1","operator":{"type":"string","operation":"notExists","singleValue":true},"leftValue":"={{ $json.error }}","rightValue":""},{"id":"7e9f6852-ccf6-488e-8019-899aaa1ef6ff","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"79bc5622-4063-48a8-835b-8b45746a7f2e","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"1a4ca682-edac-47b1-8e84-dbaa3f79a819","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"reddit.com"},{"id":"f29b29c7-d183-450a-b9e6-b02635a2dead","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtube.com"},{"id":"ab07ea23-fe91-4669-8417-396fe65765bf","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtu.be"},{"id":"eb92ce45-bdb8-4e8e-bf6b-d3d27a3d9108","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"x.com"},{"id":"6f51a62d-08ca-4ef4-abf1-cb29f8b3734e","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"github.com"},{"id":"5ae77967-31a2-4f52-85c8-ee4b06c86fbf","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"i.redd.it"},{"id":"264842c1-8d69-4d4e-8c0b-0982cc9db627","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"=v.redd.it"}]}},"typeVersion":2.2},{"id":"7fdecb08-7bee-4aab-bd7a-435b40bae148","name":"normalize_reddit_artificial_inteligence_items","type":"n8n-nodes-base.code","position":[-5520,-2320],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Use a regex to extract the hostname.\n// The regex breakdown:\n// ^(?:https?:\\/\\/)?  --> Optionally match the protocol (http:// or https://)\n// (?:www\\.)?         --> Optionally match \"www.\"\n// ([^\\/]+)           --> Capture all characters until the first \"/\" (the hostname)\nconst match = $input.item.json.url.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\n\nif (!match) {\n  throw new Error(\"Unable to regex match url\")\n}\n\nconst domain = match[1];\nconst sourceName = domain\n  .replace(/^www\\./, '')\n  .replace(/\\.[^.]+$/, '') // removes the TLD\n  .replace(/\\./g, '-');\n\nif (!sourceName) {\n    throw new Error(`Unknown source detected: ${domain}`);\n}\n\nreturn {\n  sourceName: sourceName,\n  title: $input.item.json.title,\n  link: $input.item.json.url,\n  pubDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  isoDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  feedType: \"subreddit\",\n  feedUrl: \"https://rss.app/feeds/v1.1/AkOariu1C7YyUUMv.json\"\n}"},"typeVersion":2},{"id":"176d773d-b080-4571-b42f-40b26d17ae9b","name":"reddit_artificial_inteligence_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-2320],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":3}]}},"typeVersion":1.2},{"id":"e38f5cc4-fc42-474b-89c6-c00afe693301","name":"reddit_open_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-2576],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":3}]}},"typeVersion":1.2},{"id":"0ec5ded5-9864-435c-973a-bb4d20ecd2ac","name":"fetch_reddit_open_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-2576],"parameters":{"url":"https://rss.app/feeds/v1.1/1LDBacY8BC2qJaZh.json","options":{}},"typeVersion":4.2},{"id":"6ee4eaa7-d72e-4c51-bdea-36d84210c919","name":"split_reddit_open_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-2576],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"ae1c5ae3-85ed-45ac-949b-a0dcb65bbaec","name":"get_reddit_open_ai_items","type":"n8n-nodes-base.reddit","onError":"continueRegularOutput","disabled":true,"position":[-5984,-2576],"parameters":{"postId":"={{ $json.url.match(/comments\\/([^/]+)/)[1] }}","operation":"get","subreddit":"OpenAI"},"typeVersion":1},{"id":"4ecb4a96-2c0e-4204-b85e-de4af631a65b","name":"filter_reddit_open_ai_items","type":"n8n-nodes-base.filter","position":[-5760,-2576],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9743b6e1-a915-4a5c-b133-1e94d68e060d","operator":{"type":"string","operation":"notExists","singleValue":true},"leftValue":"={{ $json.error }}","rightValue":""},{"id":"7e9f6852-ccf6-488e-8019-899aaa1ef6ff","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"79bc5622-4063-48a8-835b-8b45746a7f2e","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"1a4ca682-edac-47b1-8e84-dbaa3f79a819","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"reddit.com"},{"id":"f29b29c7-d183-450a-b9e6-b02635a2dead","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtube.com"},{"id":"ab07ea23-fe91-4669-8417-396fe65765bf","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtu.be"},{"id":"eb92ce45-bdb8-4e8e-bf6b-d3d27a3d9108","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"x.com"},{"id":"6f51a62d-08ca-4ef4-abf1-cb29f8b3734e","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"github.com"},{"id":"3edaa177-9a40-41de-bcc2-fe248a777626","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"i.redd.it"},{"id":"13ab666b-fcbf-4798-b3f6-f74079b8f6fa","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"v.redd.it"}]}},"typeVersion":2.2},{"id":"dfca597f-e1df-449f-bcef-bfd92729cc4a","name":"normalize_reddit_open_ai_items","type":"n8n-nodes-base.code","position":[-5520,-2576],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Use a regex to extract the hostname.\n// The regex breakdown:\n// ^(?:https?:\\/\\/)?  --> Optionally match the protocol (http:// or https://)\n// (?:www\\.)?         --> Optionally match \"www.\"\n// ([^\\/]+)           --> Capture all characters until the first \"/\" (the hostname)\nconst match = $input.item.json.url.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\n\nif (!match) {\n  throw new Error(\"Unable to regex match url\")\n}\n\nconst domain = match[1];\nconst sourceName = domain\n  .replace(/^www\\./, '')\n  .replace(/\\.[^.]+$/, '') // removes the TLD\n  .replace(/\\./g, '-');\n\nif (!sourceName) {\n    throw new Error(`Unknown source detected: ${domain}`);\n}\n\nreturn {\n  sourceName: sourceName,\n  title: $input.item.json.title,\n  link: $input.item.json.url,\n  pubDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  isoDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  feedType: \"subreddit\",\n  feedUrl: \"https://rss.app/feeds/v1.1/1LDBacY8BC2qJaZh.json\"\n}"},"typeVersion":2},{"id":"5e6f7239-6837-45d7-92ba-4a31030bf3b4","name":"reddit_artificial_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-2832],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":3}]}},"typeVersion":1.2},{"id":"5cd84d8c-bb17-4667-b484-815aa3d6945f","name":"fetch_reddit_artificial_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-2832],"parameters":{"url":"https://rss.app/feeds/v1.1/upLgfm9lv7RXwzes.json","options":{}},"typeVersion":4.2},{"id":"061ab040-e808-441d-ac1e-09d5e84bebd6","name":"split_reddit_artificial_items","type":"n8n-nodes-base.splitOut","position":[-6192,-2832],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"896206bf-a563-4989-b0d9-a4818dab11d4","name":"get_reddit_artificial_items","type":"n8n-nodes-base.reddit","onError":"continueRegularOutput","disabled":true,"position":[-5984,-2832],"parameters":{"postId":"={{ $json.url.match(/comments\\/([^/]+)/)[1] }}","operation":"get","subreddit":"artificial"},"typeVersion":1},{"id":"feb1740e-8aa5-4474-a0bb-99c6451137ce","name":"filter_reddit_artificial_items","type":"n8n-nodes-base.filter","position":[-5760,-2832],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0c525d94-7ad5-49ef-b5cd-f149992e85cd","operator":{"type":"string","operation":"notExists","singleValue":true},"leftValue":"={{ $json.error }}","rightValue":""},{"id":"7e9f6852-ccf6-488e-8019-899aaa1ef6ff","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"79bc5622-4063-48a8-835b-8b45746a7f2e","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":""},{"id":"1a4ca682-edac-47b1-8e84-dbaa3f79a819","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"reddit.com"},{"id":"f29b29c7-d183-450a-b9e6-b02635a2dead","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtube.com"},{"id":"ab07ea23-fe91-4669-8417-396fe65765bf","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"youtu.be"},{"id":"eb92ce45-bdb8-4e8e-bf6b-d3d27a3d9108","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"x.com"},{"id":"6f51a62d-08ca-4ef4-abf1-cb29f8b3734e","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"github.com"},{"id":"3edaa177-9a40-41de-bcc2-fe248a777626","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"i.redd.it"},{"id":"13ab666b-fcbf-4798-b3f6-f74079b8f6fa","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.url_overridden_by_dest }}","rightValue":"v.redd.it"}]}},"typeVersion":2.2},{"id":"ce67a5cb-cab4-41d1-800f-76b7fd3dacab","name":"normalize_reddit_artificial_items","type":"n8n-nodes-base.code","position":[-5520,-2832],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Use a regex to extract the hostname.\n// The regex breakdown:\n// ^(?:https?:\\/\\/)?  --> Optionally match the protocol (http:// or https://)\n// (?:www\\.)?         --> Optionally match \"www.\"\n// ([^\\/]+)           --> Capture all characters until the first \"/\" (the hostname)\nconst match = $input.item.json.url.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\n\nif (!match) {\n  throw new Error(\"Unable to regex match url\")\n}\n\nconst domain = match[1];\nconst sourceName = domain\n  .replace(/^www\\./, '')\n  .replace(/\\.[^.]+$/, '') // removes the TLD\n  .replace(/\\./g, '-');\n\nif (!sourceName) {\n    throw new Error(`Unknown source detected: ${domain}`);\n}\n\nreturn {\n  sourceName: sourceName,\n  title: $input.item.json.title,\n  link: $input.item.json.url,\n  pubDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  isoDate: new Date($input.item.json.created_utc * 1000).toISOString(),\n  feedType: \"subreddit\",\n  feedUrl: \"https://rss.app/feeds/v1.1/upLgfm9lv7RXwzes.json\"\n}"},"typeVersion":2},{"id":"a2268b4a-9da6-4d42-b582-63db36fa2fd9","name":"blog_meta_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-3072],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"b69164ed-46bc-4766-a138-b5ec73eb6e79","name":"fetch_blog_meta_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-3072],"parameters":{"url":"https://rss.app/feeds/v1.1/zqVI3dZrdbmZjbR8.json","options":{}},"typeVersion":4.2},{"id":"17fdb3bf-62ce-48ab-8d13-ec6b74a5f052","name":"split_blog_meta_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-3072],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"875510af-6ddb-4204-84e3-d28c74956519","name":"normalize_blog_meta_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-3072],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-meta\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/zqVI3dZrdbmZjbR8.json\"\n}"},"typeVersion":2},{"id":"5689ec09-bb99-406a-a1ab-2172b9f544e6","name":"blog_cloudflare_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-3312],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"4f4627e5-ea40-4b26-89fc-fbd040a6dbac","name":"split_blog_cloudflare_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-3312],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"ee2bbc1d-7e9e-477a-af30-d55e6639b225","name":"normalize_blog_cloudflare_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-3312],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-cloudflare\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/iLzlJfBHVV0phe2n.json\"\n}"},"typeVersion":2},{"id":"05fe5785-d176-49b5-8ddc-ecfdcfe9bc81","name":"blog_anthropic_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-3536],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"ddcbff23-9cff-4ec5-bfbc-380775964f66","name":"fetch_blog_cloudflare_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-3312],"parameters":{"url":"https://rss.app/feeds/v1.1/iLzlJfBHVV0phe2n.json","options":{}},"typeVersion":4.2},{"id":"775ae967-ac5c-4258-a6a0-6d192f9cd75b","name":"fetch_blog_anthropic_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-3536],"parameters":{"url":"https://rss.app/feeds/v1.1/OFdSUsziElw0rkpx.json","options":{}},"typeVersion":4.2},{"id":"4077ab50-ca49-4222-ad82-1c8b93c5589b","name":"split_blog_anthropic_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-3536],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"02cccb0f-bb30-4ac5-9464-ef81b70e20ba","name":"normalize_blog_anthropic_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-3536],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-anthropic\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/OFdSUsziElw0rkpx.json\"\n}"},"typeVersion":2},{"id":"aa86a230-bfdd-4ae7-be44-ad89f5845bdd","name":"blog_google_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-3760],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"f2b6e31e-4482-4c95-9070-cb53f1debd7c","name":"fetch_blog_google_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-3760],"parameters":{"url":"https://rss.app/feeds/v1.1/2CtvCsOtZS35jJgp.json","options":{}},"typeVersion":4.2},{"id":"6c856276-a795-452e-a78c-f3ad960f9677","name":"split_blog_google_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-3760],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"c6bd0009-5f26-4e2a-bda9-78030ee04591","name":"normalize_blog_google_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-3760],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-google\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/2CtvCsOtZS35jJgp.json\"\n}"},"typeVersion":2},{"id":"03fe5623-4d1f-4cbb-a219-5a9f5775798f","name":"blog_open_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-3984],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"e17edc11-5e0d-4dce-928a-1b1f469a9cf4","name":"fetch_blog_open_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-3984],"parameters":{"url":"https://rss.app/feeds/v1.1/6BnoYYEtnCHXfHj0.json","options":{}},"typeVersion":4.2},{"id":"29a30ffd-c161-46b3-9359-cb4df8c8e1bb","name":"normalize_blog_open_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-3984],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-open-ai\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/6BnoYYEtnCHXfHj0.json\"\n}"},"typeVersion":2},{"id":"c89b69e0-f7a2-4119-a219-44ec90996b7b","name":"split_blog_open_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-3984],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"14ec6fc0-40f9-4967-9c16-9a6d35ee0fc7","name":"blog_nvidia_ai_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-4192],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"71c1705c-a9ff-410b-a155-9fd7a5b61064","name":"fetch_blog_nvidia_ai_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-4192],"parameters":{"url":"https://rss.app/feeds/v1.1/rXJrh1u8zDwJLUJK.json","options":{}},"typeVersion":4.2},{"id":"b95952ad-0789-4a9e-8ac8-be42765e2549","name":"split_blog_nvidia_ai_items","type":"n8n-nodes-base.splitOut","position":[-6192,-4192],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"9d124863-0295-4927-9ac7-6aacce9da7a4","name":"normalize_blog_nvidia_ai_articles","type":"n8n-nodes-base.code","position":[-5520,-4192],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-nvidia-ai\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/rXJrh1u8zDwJLUJK.json\"\n}"},"typeVersion":2},{"id":"613d8538-2b22-49fd-b53a-3cc5becd01de","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-6800,-4448],"parameters":{"color":7,"width":1776,"height":4368,"content":"## RSS feeds\n\nWhat this contains: \n1. blog sites of major AI companies \n2. Social Media (Reddit, X)\n3. Newsletters \n4. AI Event Calendars of major AI companies"},"typeVersion":1},{"id":"904720fd-d3ce-4662-acd0-aa449312d98e","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-5008,-4304],"parameters":{"color":2,"width":2224,"height":560,"content":"## Scraping Content"},"typeVersion":1},{"id":"7d797ecd-63c2-40bf-9064-3d198b54fb51","name":"pick_top_stories","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-4768,-3168],"parameters":{"text":"={{ $('Stories Prompt').item.json.select_top_stories_prompt }}\n\nIMPORTANT: You MUST output valid JSON. Your response should be ONLY a JSON object with these exact keys:\n- \"top_selected_stories_chain_of_thought\": A detailed explanation of your selection reasoning\n- \"top_selected_stories\": An array of the selected story objects with their IDs and details\n- \"shortlist_stories\": An array of the shortlisted story objects\n\nDo not include any text before or after the JSON object. Output only the raw JSON.","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object.\nYou are an AI assistant specialized in reading raw text about AI-related news, trends, and breakthroughs. Your objective is to determine which stories should be included in our AI Tools newsletter, based on their relevance, impact, and interest to a tech-savvy audience. You are also an expert at crafting subject lines for newsletter emails that leads to great open rates and keeps our readers interested. "}]},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.5,"waitBetweenTries":5000},{"id":"b48e1b8c-76e3-4cc2-9c92-90460dcf3ba0","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","disabled":true,"position":[-4992,-2384],"parameters":{"color":5,"width":3652,"height":1300,"content":"## Iterate Over & Write Each Selected Story"},"typeVersion":1},{"id":"18d19947-3a5f-430c-828c-2bdbfd6aacc4","name":"write_segment_content","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-2080,-1760],"parameters":{"text":"=Task and Purpose\nCreate a single Blog Post Section focused on AI developments, tools, and applications. You will be given details of a single story and supporting source material. Your goal is to write a compelling, high-signal segment for a blog post.\n\nToday's date for the blog post is {{ $now.toFormat('yyyy-MM-dd') }}.\n\nAudience\nTech-forward readers (developers, entrepreneurs, AI enthusiasts).\n\nReaders seeking efficiency, new trends, and real-world utility.\n\nStyle & Tone\nSmart Brevity: Short paragraphs, high information density, no fluff.\n\nVoice: Professional, enthusiastic, active, and forward-looking.\n\nVisuals: Use bullet points to break up dense information.\n\nForbidden: Do not use newsletter-style meta-labels like \"The Recap:\" or \"Bottom Line:\". Write naturally.\n\nSection Structure\nFollow this natural blog flow for your output:\n\nThe Lead (Introduction):\n\nStart directly with a strong opening paragraph (2-3 sentences).\n\nSummarize the \"what\" and \"who\" immediately.\n\nThis is the best place to include the primary source link (e.g., to the announcement or model release).\n\nDo not label this section. Just start writing.\n\nKey Details (The \"Meat\"):\n\nProvide specific context, specs, or features using a markdown bulleted list (-).\n\nAim for 3-4 bullets. Each bullet must be a complete, punchy sentence.\n\nThis is where you \"unpack\" the story. Focus on utility—what does this actually do?\n\nConstraint: Max 1 link per bullet. Max 1 bolded phrase per bullet.\n\nThe Impact (Conclusion):\n\nA final 1-2 sentence paragraph explaining why this matters or the bigger picture.\n\nConnect the story to the broader industry trend or user benefit.\n\nConstraint: Do not use \"We think\" or \"We are.\" phrasing. Keep it objective.\n\nWriting Guidelines (Crucial)\nActive Voice: \"Anthropic released Claude 3\" (Strong) vs \"Claude 3 was released by Anthropic\" (Weak).\n\nNo Nominalization: Use verbs. \"It automates...\" instead of \"It provides automation of...\"\n\nConcise: Avoid filler words. Be direct.\n\nAccessible: Explain technical concepts simply without dumbing them down.\n\nHyperlink Requirements (Strict)\nSource Material Only: You must ONLY use URLs provided in the Current Segment Story Context or Additional Current Segment Source Materials.\n\nDeep Linking: Link to specific articles/tweets. NEVER link to generic homepages (e.g., google.com).\n\nIntegrity: Copy URLs character-for-character. Do not shorten or modify them.\n\nPlacement: Embed links naturally on relevant anchor text (max 3-5 words).\n\nValidation: If no valid link exists in the source text, output plain text.\n\nInput Context\nBlog Post Context:\n\nBlog Post Title: {{ $node[\"Set Selected Stories\"].json.subject_line }}\n\nBlog Post Intro Teaser: {{ $node[\"Set Selected Stories\"].json.pre_header_text }}\n\nCurrent Story Segment:\n\nSegment Title: {{ $node[\"Set Current Segement\"].json.current_story.title }}\n\nSegment Summary: {{ $node[\"Set Current Segement\"].json.current_story.summary }}\n\nPrimary Source Text: {{ $node[\"Aggregate Segment Text Content\"].json.content_item.join(\"\\n\\n\") }}\n\n\n### Additional Current Segment Source Materials\n\n{{\n  $('Aggregate Segment External Source Content').isExecuted\n    ? $node[\"Aggregate Segment External Source Content\"].json.data.map(item => {\n      let result = \"\";\n      result += `<${item.metadata.url}>\\n`;\n      result += \"---\\n\";\n      result += `url: ${item.metadata.url}\\n`;\n      result += \"---\\n\";\n      result += item?.markdown;\n      result += `</${item.metadata.url}>\\n`;\n\n      return result;\n    }).join(\"/n/n\")\n    : \"N/A\"\n}}\n\nOutput Format\nReturn only a valid JSON object. Do not include markdown code fences.\n\nSchema:\n\nJSON\n\n{\n  \"blog_post_section_content\": \"## {{ $node[\"Set Current Segement\"].json.current_story.title }}\\n\\n[Lead Paragraph Text]\\n\\n- [Bullet 1]\\n- [Bullet 2]\\n- [Bullet 3]\\n\\n[Impact Paragraph Text]\"\n}\n\nIMPORTANT: You MUST output valid JSON. Your response should be ONLY a JSON object with this exact key:\n- \"newsletter_section_content\": The complete markdown content for this story segment\n\nExample:\n{\n  \"newsletter_section_content\": \"## Story Title\\n\\nMarkdown content here...\"\n}\n\nDo not include any text before or after the JSON object.\n","messages":{"messageValues":[{"message":"You are an expert AI copywriter tasked with creating **engaging** newsletter segments that **resonate** with a **tech-savvy audience**. Your goal is to deliver concise, \"Axios-like\" and \"The Rundown-like\" summary sections of **AI developments** and other interesting news."}]},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.5,"waitBetweenTries":5000},{"id":"cb4633fe-e45c-4a3b-a0ec-25cec97257d3","name":"story_segment_auto_parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-2000,-1504],"parameters":{"options":{}},"typeVersion":1},{"id":"b2a44966-5bee-4dda-8d76-5f28f421512d","name":"story_segment_output_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-1920,-1296],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"chainOfThought\": {\n      \"type\": \"string\",\n      \"description\": \"Write your sequential reasoning to write this section for the AI Tools newsletter and determine what content to write, what formatting to use, what links to include to external sources, and other content decisions to make while following the provided guidelines. Please expand on the decisions you are making on each link you choose to insert. You MUST list out each of the sources you evaluated when writing this newsletter content along with the reasoning for using it as a reference or not. You MUST also share your reasoning for each link/hyperlink that you decide to place in this newsletter content along with how it meets the linking requirements.\"\n    },\n    \"newsletter_section_content\": {\n      \"type\": \"string\",\n      \"description\": \"The main content of the newsletter section formatted as markdown.\"\n    }\n  },\n  \"required\": [\n    \"chainOfThought\",\n    \"newsletter_section_content\"\n  ]\n}"},"typeVersion":1.2},{"id":"4fda4185-0358-4efa-8830-305ce9ba24c0","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1312,-2384],"parameters":{"width":460,"height":1312,"content":"## Write Intro Section\n"},"typeVersion":1},{"id":"db3ebb58-9cd3-4f32-8623-76864308de3f","name":"write_intro","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-1280,-2016],"parameters":{"text":"=Role:\nYou are an expert AI Blog Editor, skilled at crafting engaging and informative introductory sections that precisely match a specific style and format.\n\nGoal:\nGenerate an introductory section for our AI daily blog post, \"The Recap,\" based on the provided inputs. The generated intro must strictly adhere to the format, style, length, and tone demonstrated in the examples below.\n\nToday's date for the blog post is {{ $now.toFormat('yyyy-MM-dd') }}.\n\nInput Provided:\nYou will receive the following information for each blog edition:\n\nBlog Post Title: The main headline of the post.\n\nTeaser Text: The intro teaser/subtitle text.\n\nBlog Content: The full text content of the body of the blog post.\n\nConstraints & Instructions:\nFormat Mimicry: Replicate the exact structure of the examples:\n\nThe Hook (Paragraph 1): Start directly with the most prominent news story or theme from the provided Blog Content. Do not use a salutation like \"Good morning\" or \"Hello\". This paragraph must be concise (typically 2-3 sentences). Crucial: You MUST AVOID repeating the exact sentence structure used in the first story's main body. It will appear repetitive to readers if the intro is identical to the first section. Write a fresh, engaging hook.\n\nThe Context (Paragraph 2): Briefly elaborate on the main topic, pose a key question about its implications, or highlight its significance (typically 2-3 sentences). Avoid duplicating information.\n\nTransition Phrase: Use the exact phrase \"In today’s AI recap:\" (Note: Use \"recap\", not \"rundown\"). This transition phrase MUST be bolded text in markdown format.\n\nBulleted List: Create a bulleted list (using - for each point) summarizing the main topics covered in the Blog Content (usually 4 items). Derive these items directly from the provided content.\n\nStyle & Tone: Match the style and tone of the examples: informative, engaging, slightly speculative/analytical (often posing a question in the second paragraph), concise, and enthusiastic.\n\nNote: Unlike a newsletter, this is a web post. Avoid time-specific greetings (e.g., \"Good morning\"). Jump straight into the value.\n\nLength: Ensure the overall length of the generated introduction section is very similar to the examples provided.\n\nContent Derivation: Base the content of the two introductory paragraphs and the bulleted list solely on the information present in the provided Blog Content. Identify the most significant news item for the opening paragraphs.\n\nExamples of Desired Output Format, Style, Length, and Tone:\n(Note: The examples below use \"rundown\" but your output MUST use \"recap\" in the transition phrase)\n\nExample 1 (Illustrative - use \"recap\" in your output):\n\nOpenAI has “a lot of good stuff” lined up this week, according to Sam Altman—and its first release is a step back…in name only.\n\nA newly launched GPT-4.1 (?) family features million-token context windows, improved coding abilities, and significantly lower prices across the board — potentially laying a new foundation for the fast-approaching era of agentic AI development.\n\nIn today’s AI recap:\n\nOpenAI’s dev-focused GPT-4.1 family\n\nByteDance’s efficient Seaweed video AI\n\nCreate conversational branches to explore ideas\n\nGoogle’s AI to decode dolphin speech\n\nExample 2 (Illustrative - use \"recap\" in your output):\n\nOpenAI’s future may stretch beyond frontier models…to a social network riding ChatGPT’s wave of success.\n\nThe move could unlock much-needed real-time data for Sam Altman’s AI ambitions, but the question is: could OpenAI match the scale, engagement, stickiness, and broader cultural pull of X or Meta’s platforms?\n\nIn today’s AI recap:\n\nOpenAI reportedly building social network\n\nKling AI drops new video and image models\n\nBuild a personal data analyst with n8n automation\n\nAI models play detective in Ace Attorney\n\nWord and Phrase Blacklist\n\nAvoid using these words and phrases in your output:\n\n- Smarts\n- Game changing\n- game-changing\n- next-level\n- Revolutionize\n- sophisticated\n- enhanced\n\nYour Task:\nBased on the Blog Post Title, Teaser Text, and Blog Content I provide, generate the introductory section for \"The Recap\" blog post, following all the instructions and mimicking the examples precisely.\n\nBlog Post Title\n{{ $('Set Selected Stories').item.json.subject_line }}\n\nTeaser Text\n{{ $('Set Selected Stories').item.json.pre_header_text }}\n\nBlog Content\n{{ $('Set Combined Sections Content').item.json.story_sections }}\n\nIMPORTANT: You MUST output valid JSON. Your response should be ONLY a JSON object with this exact key:\n\n\"intro_content\": The complete intro markdown content\n\nExample: { \"intro_content\": \"OpenAI has a lot of good stuff lined up...\\n\\nIn today’s AI recap:\\n- Bullet 1\\n- Bullet 2\" }\n\nDo not include any text before or after the JSON object.","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object."}]},"promptType":"define","hasOutputParser":true},"typeVersion":1.6},{"id":"c1a92b65-0d65-4832-a7b8-28347bcb1172","name":"intro_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-1200,-1616],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"chainOfThought\": {\n      \"type\": \"string\",\n      \"description\": \"Write your sequential reasoning to write this intro section for the AI Tools newsletter and determine what content to write, what formatting to use, and any other thoughts made during the process of writing.\"\n    },\n    \"newsletter_intro_section_content\": {\n      \"type\": \"string\",\n      \"description\": \"The 'intro' newsletter section content formatted as markdown.\"\n    }\n  },\n  \"required\": [\n    \"chainOfThought\",\n    \"newsletter_intro_section_content\"\n  ]\n}"},"typeVersion":1.2},{"id":"944842bf-1c7a-468d-aefa-30c6ed09dffe","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-832,-2384],"parameters":{"color":6,"width":460,"height":1296,"content":"## Write \"The Shortlist\" Section\n"},"typeVersion":1},{"id":"9760cb06-e901-42cb-8d31-9dfffc8404dd","name":"other_top_stories_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-544,-1264],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"chainOfThought\": {\n      \"type\": \"string\",\n      \"description\": \"Write your sequential reasoning to write this 'other top stories stories' section for the AI Tools newsletter and determine what content to write, what formatting to use, what links to copy/paste over from the provided stories, and any other thoughts made during the process of writing. You MUST list out each of the sources you evaluated when writing this newsletter section along with the reasoning for using it as a reference or not. You MUST also share your reasoning for each link/hyperlink that you decide to place in this newsletter content along with how it meets the provided linking requirements. Your are not allowed to fabricate for make-up a link. Links MUST be extracted directly from the provided source materials.\"\n    },\n    \"newsletter_other_top_stories_section_content\": {\n      \"type\": \"string\",\n      \"description\": \"The 'other top stories' newsletter section content formatted as markdown. You must include your analysis of which link to include and validation of it being copied directly from source materials. You MUST directly extract this link from the provided source materials. You are REQUIRED to pick out at least 3 (three) stories to be included here. The URL included in your output for any given story **MUST** be a perfect, 100% **character-for-character copy** of the URL as it appears in the `List of Potential Other AI Stories` section. It must be reproduced *exactly* as written in the source, including case sensitivity, punctuation, and any apparent errors or incompleteness.\"\n    }\n  },\n  \"required\": [\n    \"chainOfThought\",\n    \"newsletter_other_top_stories_section_content\"\n  ]\n}"},"typeVersion":1.2},{"id":"e2face52-88ad-4057-ab82-e42ee6639c3c","name":"write_other_top_stories","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-704,-1680],"parameters":{"text":"=Role:\nYou are an expert AI Blog Copywriter, specializing in crafting concise, engaging, and informative summaries of the latest AI news for a tech-savvy audience. You are writing the specific \"Quick Hits\" section for our blog post \"The Recap\".\n\nContext:\nWe are creating the \"Other Top AI Stories\" section for our daily blog post. This section should highlight interesting and relevant AI news items that were not covered in the main deep-dive segments of the post. The goal is to provide readers with a quick, high-signal overview of other significant developments in the AI space. The stories you pick MUST be related to AI.\n\nToday's date for the blog post is {{ $now.toFormat('yyyy-MM-dd') }}.\n\nInput Data:\nYou will be provided with the following information:\n\nBlog Post Title: \"{{ $('Set Selected Stories').item.json.subject_line }}\"\n\nMain Stories Already Covered (CRITICAL: Do NOT repeat these topics or include them in your output): {{ $('Set Combined Sections Content').item.json.story_sections }}\n\nList of Potential Other AI Stories (Analyze these and evaluate these in order to determine the best stories): {{ JSON.stringify($('Aggregate Stories').item.json.data) }}\n\nTask:\nYour task is to analyze the provided list of AI news stories, select the most relevant and interesting stories for a tech and AI enthusiast audience (typically 3-5 stories; use your judgment). You must ensure they do not overlap with the stories already covered in the main blog sections.\n\nSelection Constraints:\n\nYou must include a minimum of at least 3 (three) stories in your output.\n\nYou are not allowed to make up or guess a link to include for a story.\n\nYou MUST have a valid link found in the source text that you can copy and paste into your output.\n\nIf there is not a valid link to include for a specific story, you MUST OMIT this story from your output.\n\nFormatting and Style Requirements:\nOutput Format: Generate the output in Markdown.\n\nStory Structure (Strict):\n\nThe first word of each story summary must be bolded (typically the Company or Entity name).\n\nThe second word must be a verb and formatted as a Markdown link ([verb](URL)). If a verb does not work here for the story, you should skip/omit this story.\n\nThe URL used in the link must be the exact URL provided for that story in the source text. You must copy and paste this value for your output — there can be no changes to this url. This is critical.\n\nThe rest of the sentence should be a concise summary of the story's key takeaway.\n\nStyle:\n\nMimic the writing style of \"The Rundown\" and \"Axios\". The tone should be concise, informative, slightly informal, and engaging for AI/tech professionals.\n\nEach story summary must be its own paragraph. Do NOT use bullet points or numbered lists.\n\nSelection Criteria: Choose stories that are significant, interesting, or offer a unique perspective within the AI landscape. Avoid minor updates unless particularly noteworthy. Prioritize variety. Do NOT repeat stories.\n\nExamples of Desired Output Format and Style:\nNVIDIA released Nemotron-Ultra, a 253B parameter open-source reasoning model that surpasses DeepSeek R1 across key benchmarks.\n\nOpenAI published its EU Economic Blueprint, proposing a €1B AI accelerator fund and aiming to train 100M Europeans in AI skills by 2030.\n\nGoogle rolled out its Deep Research feature on Gemini 2.5 Pro, claiming superior research report generation over rivals.\n\nLink and Hyperlinking Requirements (CRITICAL)\nIt is critical that you follow these requirements when inserting links into your output. Read through this carefully, reflect on it for 25 minutes, and double check your work to ensure you follow these requirements correctly.\n\nMandatory Verified Deep Links: All hyperlinks MUST point to the exact, specific page, document, or section directly supporting the assertion being made. Before including any link:\n\nVerify: Confirm the destination directly and explicitly supports the specific information it's linked to.\n\nPrioritize: Use primary or the most authoritative sources available.\n\nDeep Link: Absolutely NO linking to generic homepages (e.g., https://openai.com/). Link to the specific blog post or announcement.\n\nOmit if Uncertain: If the precise, credible, and directly supporting URL cannot be confidently identified and verified, DO NOT include a link for that piece of information.\n\nStrict URL Handling Requirements:\n\nSource Constraint: You MUST exclusively use URLs found verbatim within the provided text section. Absolutely NO external searching or use of prior knowledge is permitted.\n\nAccuracy Mandate - Verbatim Copying: The URL included in your output for any given story MUST be a perfect, 100% character-for-character copy of the URL as it appears in the source. It must be reproduced exactly as written, including case sensitivity and punctuation.\n\nStrict Prohibition on Modification: You are explicitly FORBIDDEN from:\n\nCreating, generating, or inventing URLs.\n\nGuessing or completing partial URLs.\n\nModifying URLs in any way (e.g., \"fixing\" typos, adding/removing http://).\n\nHandling Missing URLs: If you cannot find any URL explicitly associated with a potential story in the source text, you MUST OMIT that specific story entirely from your output.\n\nCritical Consequence: Failure to adhere strictly to these URL rules will result in broken links on our live blog. Treat every URL extraction as a critical data integrity task.\n\nOutput Generation:\nBased on the inputs provided (Blog Title, Covered Stories, Potential Stories), generate the \"Other Top AI Stories\" section content.\n\nBlog Post Title (Input #1)\n{{ $('Set Selected Stories').item.json.subject_line }}\n\nMain Stories Already Covered (Input #2)\n{{ $('Set Combined Sections Content').item.json.story_sections }}\n\nIMPORTANT: You MUST output valid JSON. Your response should be ONLY a JSON object with this exact key:\n\n\"other_stories_content\": The markdown content for the additional stories section.\n\nExample: { \"other_stories_content\": \"### Other Top Stories\\n\\nNVIDIA released a new open-source model.\\n\\nGoogle announced an update to Gemini.\" }\n\nDo not include any text before or after the JSON object.","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object."}]},"promptType":"define","hasOutputParser":true},"typeVersion":1.6},{"id":"4f28aa91-4807-42ce-922e-31125d68d2dd","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-4992,-1056],"parameters":{"color":4,"width":1300,"height":976,"content":"## Format Full Blog Post & Generate Video Ideas"},"typeVersion":1},{"id":"fa0afa4b-f9c1-4bea-bdd8-7566ca58a66f","name":"intro_auto_parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-1264,-1808],"parameters":{"options":{}},"typeVersion":1},{"id":"61c75468-d218-48fb-9bad-763bff800eb9","name":"other_top_stories_auto_parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-672,-1424],"parameters":{"options":{}},"typeVersion":1},{"id":"dfa07d36-7bd2-4902-9cac-ee00afcaedf7","name":"edit_top_stories","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-4768,-3312],"parameters":{"text":"=<identity>\nAct as an expert editor and writer for blog post content. Your sole function is to implement specific edits based on provided feedback, without altering any other part of the original content.\n</identity>\n\n<core_directive>\nYou will be given two pieces of information:\n1.  `Feedback`: Specific instructions detailing the required changes.\n2.  `Current_Blog Post_Content`: The complete blog post story selections in JSON format that includes `top_selected_stories`. This is what you will be making changes to based on the provided feedback.\n\nYour task is to:\n1.  Carefully parse the `Feedback for Blog Post` details.\n2.  Apply **only** the changes specified in the `Feedback for Blog Post` to the `Current Blog Post Content`. Think deeply for several minutes before making this change to be sure it actually will acomplish what is desired by the feedback.\n3.  Output the **entire** \"Current Blog Post Content`, modified precisely according to the `Feedback`.\n4. You are allowed to update, replace, and use your own \"reasoning\" fields with your own thoughts on how you applied these edits.\n\n**Critical Constraint:** You **must not** introduce any changes, additions, deletions, or rephrasing beyond what is explicitly mandated by the `Feedback`. All parts of the `Current Blog Post Content` *not* mentioned in the `Feedback` must remain **absolutely identical** in the output. Preserve the original structure and formatting. The \"reasoning\" fields are the only fields that can be changed. This also applies to all text content and ALL external sources extracted from the original result.\n\nIt is also critical that you retain and keep the correct content `identifiers` and `external_source_links` for the stories that are being kept in your edits. These values critical to the success of this task as we will use that as a reference downstream. This means the same number of identifiers and external source links must be retained when you are applying an edit and keeping the same story in your output from before. You may not remove any identifiers that were orginally outputted in the initial story selection. This is of the most importance that you follow these steps. We need the correct content identifiers and external sources links/urls to remain the same across your edits for the same story.\n\n</core_directive>\n\n---\n## Feedback for Blog Post\n\nHere is the feedback provided the editor for this post of the blog post. You must spend a great deal of time reading through all of this feedback carefully multiple times. After that, you must think further on how to apply this feedback to the changes you need to make. Remember, you should only be changing what is specifically asked of you in this feedback. All other items and values *MUST* remain the same unless it explicitly gets referenced in this feedback. This is a critical part of you task so mistakes are not tolerated.\n\nYou MUST pay extremely close attention to the feedback provided and how it relates to the final selected stories. If the feedback only mentions changing or replacing a single story that was selected, you MUST be certain that the referenced story in the feedback is all that changes. You may NOT make extra edits or story selections. The feedback provided takes top priority above all else and you must follow the feedback in your output.\n\n<blog post_top_stories_feedback>\n{{ $node[\"Share Stories Approval Feedback\"].data.data.text }}\n</blog post_top_stories_feedback>\n\n---\n## Initial Blog Post Prompt\n\nHere is the prompt/task that was used to write the initial blog post content. You must read this completely and use this as a reference when thinking through the edits you are supposed to make.\n\n<initial_blog post_prompt>\n{{ $('Stories Prompt').item.json.select_top_stories_prompt }}\n</initial_blog post_prompt>\n\n---\n## Current Blog Post Details\n\nHere is the current version of our blog post which you will apply the provided feedback to in your edits. You should read this closely and think deeply about this and the provided feedback before you make any changes:\n\n{{ JSON.stringify($node[\"pick_top_stories\"].json.output, null, 2) }}\n\n---\n# Web Content To Evaluate, Analyze, and Consider for Top Stories\n\nYou must read, evaluate, and analyze each of these content pieces when picking out the top stories.\n\n{{ $('Aggregate Stories').item.json.data }}\n","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object.You are an AI assistant specialized in reading raw text about AI-related news, trends, and breakthroughs. Your objective is to determine which stories should be included in our AI Tools newsletter, based on their relevance, impact, and interest to a tech-savvy audience. You are also an expert at crafting subject lines for newsletter emails that leads to great open rates and keeps our readers interested."}]},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.5,"waitBetweenTries":5000},{"id":"e1e83a01-b727-4e2e-89fa-f9f6fbbdf4b1","name":"share_segment_msg","type":"n8n-nodes-base.slack","position":[-1776,-1760],"webhookId":"d56429f8-4013-4f04-b9eb-83d02199fddb","parameters":{"text":"=---\n:calendar: *{{ $now.toFormat('yyyy-MM-dd') }} | Story Segment:* `{{ $node[\"Set Current Segement\"].json.current_story.title }}`\n\n```\n{{ $node[\"write_segment_content\"].json.output.newsletter_section_content }}\n```\n","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"0feb4f89-0549-4c96-8a0f-d5c40fe1f537","name":"set_story_segment","type":"n8n-nodes-base.set","position":[-1552,-1760],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5ae7c9b5-c82b-45c8-aff8-8a59e6028c49","name":"story_segment","type":"object","value":"={{ $node[\"write_segment_content\"].json.output }}"}]}},"typeVersion":3.4},{"id":"b8e98f66-f0f3-4284-9729-7f4b596e244b","name":"extract_stories_approval_feedback","type":"@n8n/n8n-nodes-langchain.informationExtractor","position":[-3600,-3168],"parameters":{"text":"=You must extract the following from the provided input:\n\n1. `approved` (required) - Indicator if the provided message gives a positive \"approval\" message that would indicate we want to proceed with the process. If there is a feedback message provided, you should output false.\n\nFor example \"I like the stories, give me another headline\" means the story selection was good, but there is still feedback around the headline to use.\n\n2. `feedback` - Feedback text content that is provided if the given input. This should be extracted verbatim from the input if there is feedback provided. If you determine this is feedback in this message, the resulting output should be false.\n\n---\nInput To Evaluate and Extract:\n\n{{ $json.data.text }}","options":{},"attributes":{"attributes":[{"name":"approved","type":"boolean","required":true,"description":"Indicator if the provided message gives a positive \"approval\" message that would indicate we want to proceed with the process."},{"name":"feedback","description":"Optional feedback message that should be extracted if the "}]}},"typeVersion":1},{"id":"2a625f61-15e3-40f2-be09-17df23c8c25b","name":"write_subject_line","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-2464,-3184],"parameters":{"text":"={{ $('Set Subject Line Prompt').item.json.write_subject_line_prompt }}\n\nIMPORTANT: You MUST output valid JSON. Your response should be ONLY a JSON object with these exact keys:\n- \"subject_line_reasoning\": A detailed explanation (use numbered lists, not bullets)\n- \"subject_line\": The main subject line\n- \"additional_subject_lines\": Array of 5-8 alternative subject lines\n- \"pre_header_text_reasoning\": Detailed explanation (use numbered lists)\n- \"pre_header_text\": The pre-header text\n\nExample:\n{\n  \"subject_line_reasoning\": \"1. First reason...\\n2. Second reason...\",\n  \"subject_line\": \"Your Subject Line Here\",\n  \"additional_subject_lines\": [\"Alt 1\", \"Alt 2\", \"Alt 3\", \"Alt 4\", \"Alt 5\"],\n  \"pre_header_text_reasoning\": \"1. First reason...\",\n  \"pre_header_text\": \"Pre-header text here\"\n}\n\nDo not include any text before or after the JSON object.","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object.You are also an expert at crafting subject lines for newsletter emails that leads to great open rates and keeps our readers interested."}]},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.5,"waitBetweenTries":5000},{"id":"7053e5c9-e2b1-4601-a430-c7aba21e5cf5","name":"edit_subject_line","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-2464,-3344],"parameters":{"text":"=<identity>\nAct as an expert copyeditor specializing in crafting compelling blog post titles and teaser text. Your sole function is to implement specific edits to provided titles and teaser texts based on feedback, without altering any other information or generating new creative options unless explicitly asked for in the feedback.\n</identity>\n\n<core_directive>\nYou will be given three pieces of information:\n1.  `Feedback`: Specific instructions detailing the required changes **only for the title and/or teaser text**.\n2.  `Current Title`: The original title string that might need editing based on the feedback.\n3.  `Current Teaser Text`: The original teaser text string that might need editing based on the feedback.\n\nYour task is to:\n1.  Carefully parse the `Feedback` details. Identify which element (Title, Teaser Text, or both) needs modification.\n2.  Apply **only** the changes specified in the `Feedback` to the corresponding `Current Title` and/or `Current Teaser Text`. Think carefully for several minutes before making the change to be sure it accurately reflects the feedback's intent.\n3.  If the feedback only targets the Title, the Teaser Text must remain **identical** to the input `Current Teaser Text`.\n4.  If the feedback only targets the Teaser Text, the Title must remain **identical** to the input `Current Title`.\n\n**Critical Constraint:** You **must not** introduce any changes, additions, deletions, or rephrasing to the `Current Title` or `Current Teaser Text` beyond what is explicitly mandated by the `Feedback`. If an element is not mentioned in the `Feedback`, it must be returned **absolutely identical** in the output's corresponding field. The `reasoning` field is generated by you to explain your edits based *only* on the provided feedback. Preserve the original case and general style unless the feedback specifically requests changes to them.\n</core_directive>\n\n---\n## Feedback\n\n{{ $node[\"Share Subject Line Approval Feedback\"].data.data.text }}\n\n---\n## Initial Title / Teaser Text Prompt\n\nThis is the initial prompt that was used to prompt an LLM to create the title and teaser text output. You must read this carefully, think deeply about the initial prompt, and use it as a reference when making your edits.\n\n<initial_title_teaser_text_prompt>\n{{ $('Set Subject Line Prompt').item.json.write_subject_line_prompt }}\n</initial_title_teaser_text_prompt>\n\n---\n## Current Title / Teaser Text Details\n\nHere is the current version of our blog post title and teaser text which you will apply the provided feedback to in your edits. You should read this closely and think deeply about this and the provided feedback before you make any changes:\n\n{{ JSON.stringify($node[\"write_subject_line\"].json.output, null, 2) }}","messages":{"messageValues":[{"message":"You are a JSON-only assistant. Always respond with valid JSON matching the exact schema provided. Never include explanatory text outside the JSON object.You are an expert at crafting subject lines for newsletter emails that leads to great open rates and keeps our readers interested."}]},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.5,"waitBetweenTries":5000},{"id":"d2355425-20c3-476d-9972-8490c9d27c69","name":"extract_subject_line_approval_feedback","type":"@n8n/n8n-nodes-langchain.informationExtractor","position":[-1088,-3184],"parameters":{"text":"=You must extract the following from the provided input:\n\n1. `approved` (required) - Indicator if the provided message gives a positive \"approval\" message that would indicate we want to proceed with the process. If there is a feedback message provided, you should output false. You should really only be going forward if there is 1-2 words that mention it is approved or looks good.\n\nFor example \"Let's try another headline\" means the story selection was there is still feedback around the headline that needs to be resolved.\n\nFor another example: If the given feedback suggests a different headline to use that was ither in the alternatives or a different headline, approved should be false and you should pass along this feedback.\n\n2. `feedback` - Feedback text content that is provided if the given input. This should be extracted verbatim from the input if there is feedback provided. If you determine this is feedback in this message, the resulting output should be false.\n\n---\nInput To Evaluate and Extract:\n\n{{ $json.data.text }}","options":{},"attributes":{"attributes":[{"name":"approved","type":"boolean","required":true,"description":"Indicator if the provided message gives a positive \"approval\" message that would indicate we want to proceed with the process."},{"name":"feedback","description":"Optional feedback message that should be extracted if the "}]}},"typeVersion":1},{"id":"d59d99a8-ef3c-4f48-a5a8-7bdc5cf69741","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[-3072,-3712],"parameters":{"color":6,"width":2708,"height":1300,"content":"## Write Title"},"typeVersion":1},{"id":"6ce31034-b1c1-4d37-b134-2ca2f7029745","name":"Anthropic Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[-3072,-448],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-haiku-4-5-20251001","cachedResultName":"Claude Haiku 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"9DrTqVynH9bd1BxH","name":"Anthropic account"}},"typeVersion":1.3},{"id":"8c5e330d-56db-4e69-b179-9237833c4943","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-2800,-432],"parameters":{"model":{"__rl":true,"mode":"list","value":"chatgpt-4o-latest","cachedResultName":"chatgpt-4o-latest"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"OZyy42euCKAFFRMH","name":"OpenAi account"}},"typeVersion":1.3},{"id":"fedf2217-1303-48b7-a5d7-2a0fc0b662e1","name":"top_stories_auto_parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-4544,-2864],"parameters":{"options":{}},"typeVersion":1},{"id":"40324046-041d-4c8c-8387-4252a16c92be","name":"top_stories_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-4352,-2688],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"top_selected_stories_chain_of_thought\": {\n      \"type\": \"string\",\n      \"description\": \"A detailed chain of thought explaining why you selected the top stories for our audience to feature in this newsletter. You must enumerate EVERY story you are considering and expand on why the story was either included or rejected from your final selections. It is critical that you provide reasoning on why stories are both included AND excluded. This should also include detailed reasoning why the other stories were excluded. You should detail at least 1-2 sentences on why each story was selected OR excluded. Each story analysis should include a CSV of the source identifiers that were analyzed and were read when making this decision. You must think deeply about the top story analysis and reference the provided guidelines for story importance. This will be shared in slack so please format this in slack's format so that it is easy for a slack user to read. You MUST use numbered lists that reference the source where it came from. Avoid regular bullets and use numbered lists. IF feedback was provided in the context of editing the top stories, include how you considered that feedback in your changes. It will be considered a failed task if you DO NOT providethe references to sources where stories came from and the detailed reasoning why that story was either included or excluded. You are expected to list out this reasoning and source material deatils for EVERY SINGLE STORY provided and evaluated. For each story in the (including the stories that were NOT selected), you are required to output the identifiers you evaluated for the story along with a detailed reason for why the story was included or excluded. You are NOT allowed to skip these details in your output for any story. In your output please include a section for the stories that were CLOSE to being selected but ultimately were not selected due to othedr stories being a better fit (format this as a bulleted list along with a summary of each story close to being selected along with reasoning why). Again, you are reminded that you MUST list out the content identifiers and provide a detailed explaination for all stories and provide reasoning on the selection choice. It is absolutely critical and required for you to include each of the content identifiers grouped together under each story. You may not skip this in your output.\"\n    },\n    \"top_selected_stories\": {\n      \"type\": \"array\",\n      \"description\": \"A list of four chosen stories (including the top/main story).\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"title\": {\n            \"type\": \"string\",\n            \"description\": \"A concise, catchy headline for this story section that follows the style of 'Axios' or 'The Rundown' segment headings. This MUST be compelling and interesting to our readers and target audience of AI enthusiasts so they are interested in reading the section about this story.\"\n          },\n          \"summary\": {\n            \"type\": \"string\",\n            \"description\": \"A brief summary or description of this story section. Please also include notes on what we can further write about / expand on for this story in our AI newsletter.\"\n          },\n          \"identifiers\": {\n            \"type\": \"array\",\n            \"description\": \"Array of relevant content piece IDs for this story.\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          },\n          \"external_source_links\": {\n            \"type\": \"array\",\n            \"description\": \"The top-level sources (press releases, official blog posts, etc.) drawn directly from the provided text. Only include links if they appear in the raw content provided or in the external-source-urls provided.\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"required\": [\n          \"title\",\n          \"summary\",\n          \"reason_for_selecting\",\n          \"identifiers\",\n          \"external_source_links\"\n        ]\n      }\n    }\n  },\n  \"required\": [\n    \"top_selected_stories_chain_of_thought\",\n    \"top_selected_stories\"\n  ]\n}\n"},"typeVersion":1.2},{"id":"c22bfc5a-deaf-42c8-990e-d6699c35bf74","name":"subject_line_parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-1904,-2608],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"subject_line_reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"A detailed chain of thought explaining why you wrote the subject line the way you did. This will be shared in slack so please format this in slack's format. Avoid regular bullets and use numbered lists. The more detail of your reasoning, the better. IF feedback was provided in the context of editing the subject line, include how you considered that feedback in your changes.\"\n    },\n    \"subject_line\": {\n      \"type\": \"string\",\n      \"description\": \"A single compelling subject line for the newsletter email that follows the given subject line guidelines.\"\n    },\n    \"additional_subject_lines\": {\n      \"type\": \"array\",\n      \"description\": \"A list of 5-8 additional subject lines that were considered as top options for the selected subject line but were ultimately not selected.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"description\": \"An additional subject line that was considered as a top option but was ultimately not selected.\"\n      }\n    },\n    \"pre_header_text_reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"A detailed chain of thought explaining why you wrote the pre-header text the way you did. This will be shared in slack so please format this in slack's format. Avoid regular bullets and use numbered lists. The more detail of your reasoning, the better. IF feedback was provided in the context of editing the pre header text, include how you considered that feedback in your changes.\"\n    },\n    \"pre_header_text\": {\n      \"type\": \"string\",\n      \"description\": \"A short line of text to appear in email previews that follows the given pre header guidelines.\"\n    }\n  },\n  \"required\": [\n    \"subject_line_reasoning\",\n    \"subject_line\",\n    \"additional_subject_lines\",\n    \"pre_header_text_reasoning\",\n    \"pre_header_text\"\n  ]\n}\n"},"typeVersion":1.2},{"id":"5d66792d-069a-4d53-87e3-c92a88925669","name":"subject_line_auto_parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-2256,-2784],"parameters":{"options":{}},"typeVersion":1},{"id":"70dd7acb-b45e-4773-b3c7-df3e66e6109a","name":"Generate Viral Video Ideas","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-4800,-624],"parameters":{"text":"=Blog Content: {{ $('Set Full Newsletter').item.json.full_newsletter_content }}\n\nRole: You are an expert Viral Content Strategist and Short-Form Video Scriptwriter specializing in TikTok, Instagram Reels, and YouTube Shorts. You have a deep understanding of retention editing, algorithmic triggers (watch time, save rate, shareability), and current social media trends.\n\nObjective: deeply analyze the [Blog Post Content] provided below. Extract the most valuable, surprising, or actionable insights and transform them into 3 distinct, high-impact viral video concepts.\n\nThe 3 Concepts must follow these specific frameworks:\n\nThe \"Contrarian/Pattern Interrupt\" Concept: A video that challenges a common belief or stops the scroll with a bold statement related to the topic.\n\nThe \" actionable Listicle/Hack\" Concept: A fast-paced, value-dense video that gives specific steps or tips (highly saveable).\n\nThe \"Story/Visual Metaphor\" Concept: A concept that uses a skit, a visual analogy, or a personal narrative to explain the blog's core lesson.\n\nFor each concept, provide the following structured output:\n\nConcept Title: A catchy internal name for the idea.\n\nVisual Style: (e.g., \"Green Screen,\" \"Talking Head with B-Roll,\" \"POV Skit,\" \"Text-Bubble Aesthetic\").\n\nThe Hook (0-3 Seconds): A specific, word-for-word script for the first 3 seconds designed to stop the scroll immediately.\n\nThe Script/Flow: A breakdown of what happens after the hook. Do not just summarize; write the specific lines or describe the visual transitions.\n\nVisual Cues/Direction: Instructions on what the creator should be doing (e.g., \"Point to text overhead,\" \"Cut to chaotic B-roll,\" \"Whisper to camera\").\n\nThe CTA (Call to Action): A specific ending to drive engagement (e.g., \"Comment 'GUIDE' for the full PDF,\" or \"Save this for later\").\n\nCaption & Hashtags: A short, SEO-optimized caption and 3-5 niche hashtags.\n\n","promptType":"define"},"typeVersion":1.4},{"id":"18fe1516-ccf3-4706-be92-ef6c097cbfac","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-4992,-3712],"parameters":{"color":4,"width":1900,"height":1300,"content":"## Pick Top Stories"},"typeVersion":1},{"id":"b8d58d73-5ccb-4d0d-ba51-55c96ac72256","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[-2752,-4016],"parameters":{"width":844,"height":260,"content":"## 1. Retrieve Blog Content\n"},"typeVersion":1},{"id":"01fddd1d-98fc-4baa-9f21-d17b1a978b67","name":"google_cloud_events_trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-6640,-288],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":4}]}},"typeVersion":1.2},{"id":"6e24397f-d50d-4c68-b694-44e94ca64c52","name":"fetch_google_cloud_events_feed","type":"n8n-nodes-base.httpRequest","position":[-6416,-288],"parameters":{"url":"https://rss.app/feeds/v1.1/oxU6pTDbnfMeOJmA.json","options":{}},"typeVersion":4.2},{"id":"4d2d569b-2131-4316-8b12-e012d6a0b7dc","name":"split_google_cloud_events_items","type":"n8n-nodes-base.splitOut","position":[-6192,-288],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"e1db2017-f08c-4e81-9d8d-2ccaeb724e95","name":"normalize_google_cloud_events","type":"n8n-nodes-base.code","position":[-5520,-288],"parameters":{"mode":"runOnceForEachItem","jsCode":"return {\n  sourceName: \"blog-nvidia-ai\",\n  title: $input.item.json.title,\n  creator: $input.item.json.authors[0]?.name,\n  link: $input.item.json.url,\n  pubDate: $input.item.json.date_published,\n  isoDate: $input.item.json.date_published,\n  feedType: \"article\",\n  feedUrl: \"https://rss.app/feeds/v1.1/oxU6pTDbnfMeOJmA.json\"\n}"},"typeVersion":2},{"id":"cc61dab1-d79e-4fef-87dd-a5e88db94e7e","name":"Blog Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-2592,-3920],"parameters":{"rule":{"interval":[{"triggerAtHour":9}]}},"typeVersion":1.3},{"id":"b6bfb93a-72ba-4ecb-b6cd-ca04f50d88eb","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[-7872,-4320],"parameters":{"width":752,"height":400,"content":"### How it works\nThis workflow automates AI newsletter creation:\n1.  **Ingestion**: Pulls news from RSS feeds, Blogs, and Reddit.\n2.  **Filtering**: Uses LLMs to filter for relevance and deduplicate.\n3.  **Drafting**: Writes a full newsletter (Intro, Top Stories, Shortlist) and Viral Video scripts.\n4.  **Approval**: Sends drafts to Slack. You can approve or reply with feedback to trigger an AI revision.\n\n### Setup steps\n1.  **Credentials**: Connect OpenAI, Anthropic, Google Sheets, and Slack.\n2.  **Sheet ID**: Paste your Google Sheet ID in the \"Log to Google Sheets\" and \"Get_Stories\" nodes.\n3.  **Slack ID**: Update all Slack nodes with your specific Channel ID.\n4.  **Prompts**: Customize the \"stories_prompt\" node to change the curation logic."},"typeVersion":1},{"id":"f24869a9-8ff6-4c72-bd8c-abc1c3d8e8b9","name":"Get Identity","type":"n8n-nodes-base.set","position":[-4976,-4048],"parameters":{"options":{},"assignments":{"assignments":[{"id":"6a082ec0-16b7-4d5b-832d-2609a06fae15","name":"title","type":"string","value":"={{ $json.title }}"},{"id":"6838c8ba-c498-49f5-bb97-bee33f02dd20","name":"url","type":"string","value":"={{ $json.link }}"},{"id":"13967cc2-74e2-445f-b88f-f15405cd89d8","name":"authors","type":"string","value":"={{ $json.creator }}"},{"id":"a33938bc-1743-4e67-bdaf-c4c1d5bc3ce0","name":"date","type":"string","value":"={{ $json.pubDate }}"},{"id":"7edee0aa-3a35-41bf-b616-85246fed3436","name":"publishedTimestamp","type":"string","value":"={{ $json.isoDate }}"},{"id":"a68bb301-94e1-414d-96f8-09f6453b45c1","name":"sourceName","type":"string","value":"={{ $json.sourceName }}"},{"id":"00b19e33-754f-4347-a30a-bb33b3740919","name":"feedType","type":"string","value":"={{ $json.feedType }}"},{"id":"24e1b6dc-81e2-4964-a56c-36ceccd9e1f2","name":"feedUrl","type":"string","value":"={{ $json.feedUrl }}"},{"id":"b287462d-3fad-46a2-bc42-5aa98aa8bde3","name":"uploadFileName","type":"string","value":"={{ \n  $json.isoDate.substring(0, 10) + \"/\" + \n  $json.title\n    .toLowerCase()\n    .replace(/[^a-z0-9 -]/g, '')  // remove characters outside a-z, 0-9, space, and dash\n    .trim()                      // remove any leading/trailing whitespace\n    .replace(/\\s+/g, '-')        // replace whitespace with dash\n    .replace(/-+/g, '-')         // collapse multiple dashes\n  + '.' + $json.sourceName \n}}"}]},"includeOtherFields":true},"typeVersion":3.4,"alwaysOutputData":false},{"id":"fca29875-1603-48b9-85b4-4bf317ccdabd","name":"Limit Number of Items from Each Source","type":"n8n-nodes-base.limit","position":[-4752,-4048],"parameters":{},"typeVersion":1},{"id":"2cbfda22-84fb-423d-b897-ee4ab8555003","name":"Delay 10s","type":"n8n-nodes-base.wait","position":[-4528,-4048],"webhookId":"31c9e35f-59f9-4f71-8238-d10c169a611f","parameters":{"amount":10},"typeVersion":1.1},{"id":"26207074-7773-406b-8e47-efd33f02560b","name":"Scrape URL","type":"n8n-nodes-base.executeWorkflow","position":[-4304,-4048],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"XnONeyNXcW98MVce","cachedResultUrl":"/workflow/XnONeyNXcW98MVce","cachedResultName":"AI News Aggregator - Scrape Url"},"workflowInputs":{"value":{"url":"={{ $node[\"Get Identity\"].json.url }}"},"schema":[{"id":"url","type":"string","display":true,"removed":false,"required":false,"displayName":"url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["url"],"attemptToConvertTypes":false,"convertFieldsToString":true}},"retryOnFail":true,"typeVersion":1.2,"waitBetweenTries":5000},{"id":"36d77d63-40cf-4083-8914-47405b093c4f","name":"Filter Scrape Errors","type":"n8n-nodes-base.filter","position":[-4080,-4048],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ecd02ccb-0790-44ab-8bb0-246881e35a20","operator":{"type":"object","operation":"notExists","singleValue":true},"leftValue":"={{ $json.error }}","rightValue":""}]}},"typeVersion":2.2},{"id":"34d93bb4-d4c9-4d45-9ac2-693dcc8bf4ca","name":"Merge Every Source","type":"n8n-nodes-base.merge","position":[-3504,-4048],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"4e043464-d8e3-4076-a016-abb5d50eb327","name":"Ensure Relevant","type":"n8n-nodes-base.filter","position":[-3280,-4048],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"22197457-7f84-4504-a14f-a5346a80359f","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.output.is_revelant_content }}","rightValue":""}]}},"typeVersion":2.2},{"id":"726c8f21-2952-40f0-9c70-6abc884425a8","name":"Get Stories","type":"n8n-nodes-base.googleSheets","position":[-2368,-3920],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU","cachedResultUrl":"https://docs.google.com/spreadsheets/d/17RsmhGJmF2oS-USx6w3JsxEki8f0ppXAVmGd2EBNirU/edit?usp=drivesdk","cachedResultName":"AI News Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BhSW4FPIcXTf1KFA","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"ed682187-c8a8-455c-9772-fada01f973e2","name":"Aggregate Stories","type":"n8n-nodes-base.aggregate","position":[-2144,-3920],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"1dca6f8b-0234-4d53-9d79-40b7e3ae3232","name":"Stories Prompt","type":"n8n-nodes-base.set","position":[-4960,-3168],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5d952674-8f5c-4236-a5d4-30179f0206f5","name":"select_top_stories_prompt","type":"string","value":"=Input Data: \n{{ JSON.stringify($('Aggregate Stories').item.json.data, null, 2) }}\n\nObjective: Analyze the provided raw text content to select the top 4 most impactful AI stories for an audience of developers, entrepreneurs, and enthusiasts. The first story selected MUST be the most significant \"headline\" news (e.g., major model releases, breakthroughs).\n\nSelection Criteria:\n\nPrioritize: Major model updates, fundraising, practical applications, and industry-shifting news.\n\nSubstance Check: Stories must have enough detail to support an intro, 3-4 bullet points, and a \"bottom line.\"\n\nGroup Sources: Consolidate multiple articles/tweets covering the same topic into a single story entry.\n\nExclude: AI safety/ethics debates, training course advertisements, purely \"amusing\" fluff, and overly political topics.\n\nOutput Requirements: You must output a single JSON object strictly adhering to the schema below. Do not use cached knowledge; rely only on the provided text.\n\ntop_selected_stories_chain_of_thought: A detailed log analyzing every story provided. Explain sequentially why each was included or excluded.\n\ntop_selected_stories: An array of exactly 4 story objects, ordered by importance (Story 1 = Top Story).\n\ntitle: Catchy, Axios-style headline.\n\nsummary: One-sentence overview.\n\nreason_for_selecting: Brief justification.\n\nidentifiers: An array of identifier strings associated with the story. CRITICAL: Copy these EXACTLY as they appear in the source text.\n\nexternal_source_links: An array of valid URLs found in the text (blogs, press releases, tweets) that serve as primary sources. CRITICAL: Copy EXACTLY. Exclude PDFs, video sites, and generic homepages."}]}},"typeVersion":3.4},{"id":"11b0d03c-6616-4598-8f79-c00896cb0f9c","name":"Set Current Stories","type":"n8n-nodes-base.set","position":[-4400,-3168],"parameters":{"options":{},"assignments":{"assignments":[{"id":"0cf59ec5-e726-4327-9bbb-ebc222040626","name":"current_stories","type":"object","value":"={{ $json.output }}"}]}},"typeVersion":3.4},{"id":"8c297b27-24d4-4823-b36f-e4ffb43f14f7","name":"Share Selected Stories","type":"n8n-nodes-base.slack","position":[-4208,-3168],"webhookId":"0d09fa67-0bf5-474f-8e45-10ddb5fa69ed","parameters":{"text":"=:calendar: *{{ $now.toFormat('yyyy-MM-dd') }} {{ $('edit_top_stories').isExecuted ? `(Revision #${$runIndex})` : \"\" }}*\n\n---------------------------------\n\n:newspaper: *Selected Stories:*\n\n{{ $json.current_stories.top_selected_stories.map((item, idx) => {\n  let result = `*${idx + 1}. ${item.title}* — ${item.summary}`;\n\n  result += `\\nContent Identifiers:\\n${item.identifiers.join(\"\\n\")}`;\n  result += `\\nExternal Source Links:\\n${item.external_source_links.join(\"\\n\")}`;\n\n  return result;\n}).join(\"\\n\\n\") }}","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"0222e853-e124-4787-a388-e46b4f42347c","name":"Share Stories Reasoning","type":"n8n-nodes-base.slack","position":[-4000,-3168],"webhookId":"536bd2b0-308f-44a0-bf7b-94ff1afac896","parameters":{"text":"=*Top Stories Reasoning:*\n{{ $node[\"Set Current Stories\"].json.current_stories.top_selected_stories_chain_of_thought }}\n","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"thread_ts":{"replyValues":{"thread_ts":"={{ $json.message_timestamp }}"}},"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"c166d4a4-218c-4908-a48c-40d6daa451fb","name":"Share Stories Approval Feedback","type":"n8n-nodes-base.slack","position":[-3792,-3168],"webhookId":"6ca05dda-c8cc-4f0c-8cff-cd8978df55bd","parameters":{"select":"channel","message":"=Please approve or share feedback for the *top stories* for the *{{ $now.toFormat('yyyy-MM-dd') }}* blog post","options":{"messageButtonLabel":"Approve / Add Feedback"},"channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"operation":"sendAndWait","responseType":"freeText"},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"276a7f06-f2bd-4d9b-8ae0-27d149a8e2ce","name":"Check Stories Feedback","type":"n8n-nodes-base.if","position":[-3280,-3168],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"741b6ae7-404a-4782-a2c6-47cad99b001d","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.output.approved }}","rightValue":""}]}},"typeVersion":2.2},{"id":"4c09edd8-9e43-4c3d-af71-9df0b73325da","name":"Subject Examples","type":"n8n-nodes-base.set","position":[-2864,-3184],"parameters":{"options":{},"assignments":{"assignments":[{"id":"6a40f15b-56ac-4b0a-89cb-f5f31cdcdd69","name":"=subject_line_examples","type":"string","value":"=- AI That Detects Cancer With 99% Accuracy: A Medical Breakthrough\n- Claude Can Finally Search the Web — Here’s Why It Matters\n- OpenAI’s Regulatory Power Play Could Reshape the AI Industry\n- Inside Ilya Sutskever’s Secret Roadmap to Artificial Superintelligence\n- Apple Faces an AI Emergency: What Went Wrong in Cupertino\n- DeepMind’s AI Just Became a Math Prodigy\n- Mistral Unveils a Lightning-Fast New AI Assistant\n- Why OpenAI Is Going Nuclear on AI Infrastructure\n- AI Tutoring Hits a Breakthrough Moment\n- Inside OpenAI’s $500 Billion Stargate Project\n- Meta’s Manhattan-Sized Bet on AI\n- OpenAI Launches Its First True AI Agent\n- OpenAI Releases o3 and o4-mini: What’s New and Why It Matters\n- Chipmaking Rivals Join Forces in a Surprising Alliance\n- Amazon Enters the AI Reasoning Race\n- Claude Enters the Reasoning Era\n- Figure’s Home Robot Breakthrough Brings Humanoid AI Closer to Reality\n- OpenAI’s Former CTO Launches a Rival AI Lab\n- OpenAI Reveals Its GPT-5 Roadmap\n- An AI Workforce Is Coming: Anthropic’s One-Year Prediction\n- The State of AI in 2025, According to Stanford\n- OpenAI’s GPT-4.1 Is Built for Developers First\n- Google’s New AI Video Generator Takes On Sora\n- China Declares AI Independence: A New Global Tech Divide"}]}},"typeVersion":3.4},{"id":"582ad98d-a926-41fc-9c6a-2dfb74f530fb","name":"Set Subject Line Prompt","type":"n8n-nodes-base.set","position":[-2672,-3184],"parameters":{"options":{},"assignments":{"assignments":[{"id":"6a40f15b-56ac-4b0a-89cb-f5f31cdcdd69","name":"=write_subject_line_prompt","type":"string","value":"=**Role:** Expert Blog Copywriter Specializing in AI Content Engagement\n\n**Core Objective:** Optimize web engagement elements (Title, Teaser Text) for an AI blog post to maximize reader engagement, based on provided story data.\n\n**Input Schema:**\n1. `top_selected_stories`: JSON array detailing the featured stories for the blog post. The **order is significant**, with the first item being the designated lead story.\n2. `raw_source_material`: Markdown text containing detailed content for various stories.\n3. `identifier`/`identifiers`: Linking keys within the JSON and potentially referenced in the Markdown, used to connect `top_selected_stories` entries to their full context in `raw_source_material`.\n\n**Mandatory Pre-computation Analysis & Justification:**\n1. **Synthesize Insights:** Analyze the provided `top_selected_stories` JSON and `raw_source_material`, using `identifier` fields to deeply understand the core message, value proposition, and points of intrigue for the selected stories, paying special attention to the **lead story** (first in the JSON).\n2. **State Deliberation:** Explicitly preface your reasoning by stating that the proposed outputs result from deep consideration (simulating >1 hour of strategic analysis) aimed at maximizing engagement within the given constraints.\n3. **Analyze Great Examples:** *Before* you start writing the Title, you MUST deeply read and analyze the provided \"Great Title Examples\". These examples are great Titles that capture what we are going for. You MUST write a Title as good as these. You must think deeply about what makes these examples great and apply those insights to the Title you are writing.\n4. **Deliver Reasoning First:** *Before* providing the Title and Teaser Text, output a detailed, step-by-step breakdown of your reasoning. Explain:\n   * How you interpreted the core value/hook of the lead story.\n   * Why your chosen Title wording effectively teases this hook within constraints.\n   * How the Teaser Text complements the Title and potentially hints at other content.\n   * How both elements work together to drive curiosity and perceived value.\n\n**Output Requirements:**\n\n1. **Reasoning Output:** (Detailed justification as specified above).\n2. **Title Output:**\n   * **Focus:** Must exclusively tease/highlight the **lead story** (first item in `top_selected_stories`).\n   * **Constraint:** Strictly **7-9 words** maximum.\n   * **Quality:** High-impact - generate curiosity, convey value compellingly but realistically (not overly-hyped).\n3. **Teaser Text Output:**\n   * **Function:** Act as a **complementary extension** of the Title.\n   * **Quality:** Engaging, informative, reinforces the incentive to read.\n\n**Final Deliverable Structure:**\n1. Statement of Deep Consideration.\n2. Detailed Reasoning Breakdown.\n3. Title: [Your generated title]\n4. Teaser Text: [Your generated teaser text]\n\nToday's date for the blog post is *{{ $now.toFormat('yyyy-MM-dd') }}*.\n\n<top_blog_stories>\n```json\n{{ JSON.stringify($node[\"Set Current Stories\"].json.current_stories.top_selected_stories, null, 2) }}"}]}},"typeVersion":3.4},{"id":"47e60aa7-3d8a-4d35-9e76-6df3d85f76c4","name":"Set Current Subject Line","type":"n8n-nodes-base.set","position":[-1888,-3184],"parameters":{"options":{},"assignments":{"assignments":[{"id":"0cf59ec5-e726-4327-9bbb-ebc222040626","name":"current_subject_line","type":"object","value":"={{ $json.output }}"}]}},"typeVersion":3.4},{"id":"0a3c06bf-ebee-40d7-b313-f4881b464c75","name":"Share Subject Line","type":"n8n-nodes-base.slack","position":[-1680,-3184],"webhookId":"10f74a0d-48d0-4d25-8b41-add2d934bf3c","parameters":{"text":"=:calendar: *{{ $now.toFormat('yyyy-MM-dd') }} {{ $('edit_subject_line').isExecuted ? `(Revision #${$runIndex})` : \"\" }}*\n\n---------------------------------\n\n:loudspeaker: *Subject Line:*\n\n`{{ $json.current_subject_line.subject_line }}`\n`{{ $json.current_subject_line.pre_header_text }}`\n\n*Alternatives:*\n\n```\n{{ $json.current_subject_line.additional_subject_lines.map(item => {\n  return `${item}`;\n}).join(\"\\n\") }}\n```\n","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"e290e7bf-1fb4-4fc6-befe-8f3aac4f1273","name":"Share Subject Line Reasoning","type":"n8n-nodes-base.slack","position":[-1488,-3184],"webhookId":"0c86b10a-b670-432d-870f-3bcc40b44e18","parameters":{"text":"=*Subject Line Reasoning:*\n{{ $node[\"Set Current Subject Line\"].json.current_subject_line.subject_line_reasoning }}\n\n*Pre-Header Text Reasoning:*\n{{ $node[\"Set Current Subject Line\"].json.current_subject_line.pre_header_text_reasoning }}\n","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"thread_ts":{"replyValues":{"thread_ts":"={{ $json.message_timestamp }}"}},"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"981248f8-6d36-4ccd-9a79-0c53a0751f8d","name":"Share Subject Line Approval Feedback","type":"n8n-nodes-base.slack","position":[-1264,-3184],"webhookId":"b13687ad-7d15-4034-85fb-ceeccd197979","parameters":{"select":"channel","message":"=Please approve or share feedback for the *subject line* for the *{{ $now.toFormat('yyyy-MM-dd') }}* Newsletter","options":{"messageButtonLabel":"Approve / Add Feedback"},"channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"operation":"sendAndWait","responseType":"freeText"},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"55c6b432-538b-40a1-b080-efcf1365ded1","name":"Check Subject Line Feedback","type":"n8n-nodes-base.if","position":[-768,-3184],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"741b6ae7-404a-4782-a2c6-47cad99b001d","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.output.approved }}","rightValue":""}]}},"typeVersion":2.2},{"id":"a9f3c731-28a1-4ec3-afb1-ba5b88c5bb40","name":"Set Selected Stories","type":"n8n-nodes-base.set","position":[-4960,-1872],"parameters":{"options":{},"assignments":{"assignments":[{"id":"1571fbbb-d836-4df7-8c15-09faddf0db49","name":"=subject_line","type":"string","value":"={{ $node[\"Set Current Subject Line\"].json.current_subject_line.subject_line }}"},{"id":"f0af3af9-7e19-4589-861b-67456d6321b1","name":"pre_header_text","type":"string","value":"={{ $node[\"Set Current Subject Line\"].json.current_subject_line.pre_header_text }}"},{"id":"7ace9fce-eb1c-40d1-938e-c4a5331e2987","name":"=top_selected_stories","type":"array","value":"={{ $node[\"Set Current Stories\"].json.current_stories.top_selected_stories }}"}]}},"typeVersion":3.4},{"id":"4feeb990-c0fe-486e-bc19-62c33c0fc48e","name":"Split Stories","type":"n8n-nodes-base.splitOut","position":[-4752,-1872],"parameters":{"options":{},"fieldToSplitOut":"top_selected_stories"},"typeVersion":1},{"id":"b3cd5a6f-f66a-4a40-ac77-3e93528cc60c","name":"Iterate Stories","type":"n8n-nodes-base.splitInBatches","position":[-4480,-1872],"parameters":{"options":{}},"typeVersion":3},{"id":"6fea6a8b-f9b1-4bc3-bf68-4c8bfa9a8dcf","name":"Set Current Segement","type":"n8n-nodes-base.set","position":[-4112,-1744],"parameters":{"options":{},"assignments":{"assignments":[{"id":"e37da3c8-902a-406d-a5c7-195a9b8c32e7","name":"current_story","type":"object","value":"={{ $json }}"}]}},"typeVersion":3.4},{"id":"88a5467c-c726-4d48-a9e1-5dd1fd18c3d4","name":"Split Content IDs","type":"n8n-nodes-base.splitOut","position":[-3872,-1744],"parameters":{"options":{},"fieldToSplitOut":"current_story.identifiers"},"typeVersion":1},{"id":"eb2e394a-1291-4f4a-be2e-dbe5d02d508a","name":"Aggregate Segment Text Content","type":"n8n-nodes-base.aggregate","position":[-3664,-1744],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"content_item"}]}},"typeVersion":1},{"id":"fc70af9a-65ba-4c0f-b237-5171df2ee16e","name":"Check External URLs","type":"n8n-nodes-base.if","position":[-3424,-1744],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c677aa22-37e5-4d3b-9b53-409fb3c74b81","operator":{"type":"array","operation":"exists","singleValue":true},"leftValue":"={{ $node[\"Set Current Segement\"].json.current_story.external_source_links }}","rightValue":""},{"id":"6f3cee68-49b0-4cb6-871e-4cb12a306b06","operator":{"type":"array","operation":"notEmpty","singleValue":true},"leftValue":"={{ $node[\"Set Current Segement\"].json.current_story.external_source_links }}","rightValue":""}]}},"typeVersion":2.2},{"id":"da6da8df-9378-4c92-af75-3fbebde6cdad","name":"Set Segment External Source Links","type":"n8n-nodes-base.set","position":[-3200,-1936],"parameters":{"options":{},"assignments":{"assignments":[{"id":"81a924a0-5bab-423a-a41a-4fe7a0345f68","name":"segment_external_source_links","type":"array","value":"={{ $node[\"Set Current Segement\"].json.current_story.external_source_links }}"}]}},"typeVersion":3.4},{"id":"ac1b1f89-e682-46ce-8c7b-13cad40517a3","name":"Split Segment External Source URLs","type":"n8n-nodes-base.splitOut","position":[-2992,-1936],"parameters":{"options":{},"fieldToSplitOut":"=segment_external_source_links"},"typeVersion":1},{"id":"ff8b63d8-3967-4c18-93de-34524ad748b8","name":"Scrape Segment External Source URL","type":"n8n-nodes-base.executeWorkflow","onError":"continueRegularOutput","position":[-2768,-1936],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"XnONeyNXcW98MVce","cachedResultUrl":"/workflow/XnONeyNXcW98MVce","cachedResultName":"AI News Aggregator - Scrape Url"},"workflowInputs":{"value":{"url":"={{ $json.segment_external_source_links }}"},"schema":[{"id":"url","type":"string","display":true,"removed":false,"required":false,"displayName":"url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["url"],"attemptToConvertTypes":false,"convertFieldsToString":true}},"retryOnFail":true,"typeVersion":1.2,"waitBetweenTries":5000},{"id":"49bcdb24-8206-4581-836a-3b2082dec69d","name":"Filter Segment External Source Errors","type":"n8n-nodes-base.filter","position":[-2544,-1936],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1f5c2acf-c4fd-417d-a253-7d87675a36f0","operator":{"type":"boolean","operation":"equal","singleValue":true},"leftValue":"={{ !!$json.error }}","rightValue":false}]}},"typeVersion":2.2,"alwaysOutputData":true},{"id":"3e2be2ec-ff19-4ca1-8b86-065f94912a25","name":"Aggregate Segment External Source Content","type":"n8n-nodes-base.aggregate","position":[-2320,-1936],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"data"}]}},"typeVersion":1,"alwaysOutputData":true},{"id":"2bdbf46b-e704-400a-9691-8b0d629e499b","name":"Set Story Segments","type":"n8n-nodes-base.set","position":[-1984,-2256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ba33265f-73f6-4561-9cf0-dcb2f0b52a78","name":"story_sections","type":"string","value":"={{ $node[\"Iterate Stories\"].json.story_segment.newsletter_section_content }}"}]}},"typeVersion":3.4},{"id":"faba5870-fdde-42f4-866c-93690dbcbbd5","name":"Aggregate Story Sections","type":"n8n-nodes-base.aggregate","position":[-1776,-2256],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"story_sections"}]}},"typeVersion":1},{"id":"60313057-fec0-4042-8cb6-82a8442b59c9","name":"Set Combined Sections Content","type":"n8n-nodes-base.set","position":[-1552,-2256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"144dbdda-e76e-452c-b1a1-6bbbcba2a477","name":"story_sections","type":"string","value":"={{ $json.story_sections.join(\"\\n\\n---\\n\") }}"}]}},"typeVersion":3.4},{"id":"ec71c79e-8966-4e92-b81b-d28e707f2b01","name":"Set Full Newsletter","type":"n8n-nodes-base.set","position":[-4960,-848],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cba28e4d-4a34-4765-b456-16c81479da9e","name":"full_newsletter_content","type":"string","value":"=# {{ $('Set Selected Stories').item.json.subject_line }}\n\n{{ $('Set Selected Stories').item.json.pre_header_text }}\n\n---\n{{ $('write_intro').item.json.output.newsletter_intro_section_content }}\n\n---\n{{ $('Set Combined Sections Content').item.json.story_sections }}\n\n---\n## The Shortlist\n\n{{ $('write_other_top_stories').item.json.output.newsletter_other_top_stories_section_content }}"}]}},"typeVersion":3.4},{"id":"f8f4bbba-1608-4a97-8394-b455a4123865","name":"Create Newsletter File","type":"n8n-nodes-base.convertToFile","position":[-4672,-912],"parameters":{"options":{"fileName":"={{ $now.toFormat('yyyy-MM-dd') }}"},"operation":"toText","sourceProperty":"full_newsletter_content"},"typeVersion":1.1},{"id":"67dabbe4-4a71-474f-b613-0589c94eec8c","name":"Upload Newsletter File","type":"n8n-nodes-base.slack","position":[-4384,-912],"webhookId":"7ef93c5e-3602-4434-8d92-b969464c03e5","parameters":{"options":{"fileName":"={{ $now.toFormat('yyyy-MM-dd') }}"},"resource":"file"},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"f33d2132-4822-4687-980b-886440b08154","name":"Share Newsletter Message","type":"n8n-nodes-base.slack","position":[-4160,-912],"webhookId":"a6e0579b-7048-48c9-82d5-4d718adfcf96","parameters":{"text":"=---\n:calendar: *{{ $now.toFormat('yyyy-MM-dd') }} Newsletter Finished*\n\n`{{ $json.permalink }}`","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"d1edb050-01a0-4677-8c83-157751e173f5","name":"Create Video Ideas File","type":"n8n-nodes-base.convertToFile","position":[-4384,-720],"parameters":{"options":{"fileName":"={{ $now.toFormat('yyyy-MM-dd') }}. video ideas"},"operation":"toText","sourceProperty":"=text"},"typeVersion":1.1},{"id":"6df3881b-1b34-4428-af27-ce3ec8c2a27d","name":"Upload Video Ideas File","type":"n8n-nodes-base.slack","position":[-4160,-720],"webhookId":"74845a6d-b243-445d-8cae-f5c6d7c20d05","parameters":{"options":{"fileName":"={{ $now.toFormat('yyyy-MM-dd') }} video ideas"},"resource":"file"},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3},{"id":"8dafe47a-9a7b-487d-88eb-b30ade676451","name":"Share Video Ideas Message","type":"n8n-nodes-base.slack","position":[-3936,-720],"webhookId":"57f6e6e1-2869-44ef-90de-d7d895ed799a","parameters":{"text":"=---\n:calendar: *{{ $now.toFormat('yyyy-MM-dd') }} video ideas Finished*\n\n`{{ $json.permalink }}`","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C0A02R0SF6Y","cachedResultName":"ai-tools-newsletter"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"3IaXk1Z8r7WZoWdz","name":"Slack account"}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"3c4c6764-92a5-42a6-ab24-7786661a6877","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[-6048,-4752],"parameters":{"width":336,"height":272,"content":"## RSS Feed\nYou can select your favorite feeds using this site: https://rss.app/"},"typeVersion":1},{"id":"a72218a5-9a4c-410b-b743-2c48290ab05c","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[-4144,-4576],"parameters":{"height":192,"content":"## Limiting Content\nThis section makes sure all the news that are in the rss feeds are being scraped. You can limit the number of stories you want from the Limit Node for each rss feed. "},"typeVersion":1},{"id":"63a32af3-79db-452e-aff8-a686294f689f","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[-2528,-4224],"parameters":{"content":"## Blog Generator Workflow\nFrom here on out you can schedule when you want your blog to be generated. \n"},"typeVersion":1},{"id":"e3e04301-724f-4542-b998-e3abfe4b027c","name":"Sticky Note13","type":"n8n-nodes-base.stickyNote","position":[-4224,-3632],"parameters":{"height":224,"content":"## Select top 3-5 stories\n \nThe AI automatically picks top stories from 100s of sources. There's a human in the loop element meaning the AI can take feedback from human on what stories they want to be picked."},"typeVersion":1},{"id":"ea6a34cf-75a4-495e-b1cb-a25ec73fca11","name":"Sticky Note14","type":"n8n-nodes-base.stickyNote","position":[-3872,-2320],"parameters":{"height":288,"content":"## Important Segement\n\nThis section focuses on writing top stories into a pre-defined style of writing. You can change the prompt to suit your writing needs. This is the most important part of the workflow. Everything connects here and give you the final result. "},"typeVersion":1},{"id":"5c540742-a918-4778-8756-9493328e6fba","name":"Sticky Note15","type":"n8n-nodes-base.stickyNote","position":[-4848,-432],"parameters":{"content":"## Final Part\nEverything the AI collected, generated and introduced are merged here to produce the final version of the newsletter/blog. \n"},"typeVersion":1}],"pinData":{},"connections":{"o3-mini":{"ai_languageModel":[[{"node":"evaluate_content","type":"ai_languageModel","index":0}]]},"Delay 10s":{"main":[[{"node":"Scrape URL","type":"main","index":0}]]},"Scrape URL":{"main":[[{"node":"Filter Scrape Errors","type":"main","index":0}]]},"Get Stories":{"main":[[{"node":"Aggregate Stories","type":"main","index":0}]]},"write_intro":{"main":[[{"node":"write_other_top_stories","type":"main","index":0}]]},"Blog Trigger":{"main":[[{"node":"Get Stories","type":"main","index":0}]]},"Get Identity":{"main":[[{"node":"Limit Number of Items from Each Source","type":"main","index":0}]]},"intro_parser":{"ai_outputParser":[[{"node":"intro_auto_parser","type":"ai_outputParser","index":0}]]},"Split Stories":{"main":[[{"node":"Iterate Stories","type":"main","index":0}]]},"taaft_trigger":{"main":[[{"node":"normalize_taaft","type":"main","index":0}]]},"Stories Prompt":{"main":[[{"node":"pick_top_stories","type":"main","index":0}]]},"Ensure Relevant":{"main":[[{"node":"Log to Google Sheets","type":"main","index":0}]]},"Iterate Stories":{"main":[[{"node":"Set Story Segments","type":"main","index":0}],[{"node":"Set Current Segement","type":"main","index":0}]]},"normalize_taaft":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"Subject Examples":{"main":[[{"node":"Set Subject Line Prompt","type":"main","index":0}]]},"edit_top_stories":{"main":[[{"node":"Set Current Stories","type":"main","index":0}]]},"evaluate_content":{"main":[[{"node":"Merge Every Source","type":"main","index":1}]]},"normalize_neuron":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"pick_top_stories":{"main":[[{"node":"Set Current Stories","type":"main","index":0}]]},"Aggregate Stories":{"main":[[{"node":"Stories Prompt","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"write_segment_content","type":"ai_languageModel","index":0},{"node":"write_intro","type":"ai_languageModel","index":0},{"node":"write_other_top_stories","type":"ai_languageModel","index":0},{"node":"extract_stories_approval_feedback","type":"ai_languageModel","index":0},{"node":"pick_top_stories","type":"ai_languageModel","index":0},{"node":"edit_top_stories","type":"ai_languageModel","index":0},{"node":"write_subject_line","type":"ai_languageModel","index":0},{"node":"edit_subject_line","type":"ai_languageModel","index":0},{"node":"extract_subject_line_approval_feedback","type":"ai_languageModel","index":0}]]},"Split Content IDs":{"main":[[{"node":"Aggregate Segment Text Content","type":"main","index":0}]]},"edit_subject_line":{"main":[[{"node":"Set Current Subject Line","type":"main","index":0}]]},"intro_auto_parser":{"ai_outputParser":[[{"node":"write_intro","type":"ai_outputParser","index":0}]]},"set_story_segment":{"main":[[{"node":"Iterate Stories","type":"main","index":0}]]},"share_segment_msg":{"main":[[{"node":"set_story_segment","type":"main","index":0}]]},"Merge Every Source":{"main":[[{"node":"Ensure Relevant","type":"main","index":0}]]},"Set Story Segments":{"main":[[{"node":"Aggregate Story Sections","type":"main","index":0}]]},"Share Subject Line":{"main":[[{"node":"Share Subject Line Reasoning","type":"main","index":0}]]},"bens_bites_trigger":{"main":[[{"node":"normalize_bens_bites","type":"main","index":0}]]},"superhuman_trigger":{"main":[[{"node":"normalize_superhuman","type":"main","index":0}]]},"the_neuron_trigger":{"main":[[{"node":"normalize_neuron","type":"main","index":0}]]},"top_stories_parser":{"ai_outputParser":[[{"node":"top_stories_auto_parser","type":"ai_outputParser","index":0}]]},"write_subject_line":{"main":[[{"node":"Set Current Subject Line","type":"main","index":0}]]},"Check External URLs":{"main":[[{"node":"Set Segment External Source Links","type":"main","index":0}],[{"node":"write_segment_content","type":"main","index":0}]]},"Set Current Stories":{"main":[[{"node":"Share Selected Stories","type":"main","index":0}]]},"Set Full Newsletter":{"main":[[{"node":"Create Newsletter File","type":"main","index":0},{"node":"Generate Viral Video Ideas","type":"main","index":0}]]},"futurepedia_trigger":{"main":[[{"node":"normalize_futurepedia","type":"main","index":0}]]},"google_news_trigger":{"main":[[{"node":"fetch_google_news_feed","type":"main","index":0}]]},"hacker_news_trigger":{"main":[[{"node":"fetch_hacker_news_feed","type":"main","index":0}]]},"subject_line_parser":{"ai_outputParser":[[{"node":"subject_line_auto_parser","type":"ai_outputParser","index":0}]]},"Anthropic Chat Model":{"ai_languageModel":[[{"node":"story_segment_auto_parser","type":"ai_languageModel","index":0},{"node":"intro_auto_parser","type":"ai_languageModel","index":0},{"node":"other_top_stories_auto_parser","type":"ai_languageModel","index":0},{"node":"top_stories_auto_parser","type":"ai_languageModel","index":0},{"node":"Generate Viral Video Ideas","type":"ai_languageModel","index":0},{"node":"subject_line_auto_parser","type":"ai_languageModel","index":0}]]},"Filter Scrape Errors":{"main":[[{"node":"evaluate_content","type":"main","index":0},{"node":"Merge Every Source","type":"main","index":0}]]},"Set Current Segement":{"main":[[{"node":"Split Content IDs","type":"main","index":0}]]},"Set Selected Stories":{"main":[[{"node":"Split Stories","type":"main","index":0}]]},"blog_meta_ai_trigger":{"main":[[{"node":"fetch_blog_meta_ai_feed","type":"main","index":0}]]},"blog_open_ai_trigger":{"main":[[{"node":"fetch_blog_open_ai_feed","type":"main","index":0}]]},"normalize_bens_bites":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_superhuman":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_futurepedia":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"write_segment_content":{"main":[[{"node":"share_segment_msg","type":"main","index":0}]]},"Check Stories Feedback":{"main":[[{"node":"Subject Examples","type":"main","index":0}],[{"node":"edit_top_stories","type":"main","index":0}]]},"Create Newsletter File":{"main":[[{"node":"Upload Newsletter File","type":"main","index":0}]]},"Share Selected Stories":{"main":[[{"node":"Share Stories Reasoning","type":"main","index":0}]]},"Upload Newsletter File":{"main":[[{"node":"Share Newsletter Message","type":"main","index":0}]]},"blog_google_ai_trigger":{"main":[[{"node":"fetch_blog_google_ai_feed","type":"main","index":0}]]},"blog_nvidia_ai_trigger":{"main":[[{"node":"fetch_blog_nvidia_ai_feed","type":"main","index":0}]]},"fetch_google_news_feed":{"main":[[{"node":"split_google_news_items","type":"main","index":0}]]},"fetch_hacker_news_feed":{"main":[[{"node":"split_hacker_news_items","type":"main","index":0}]]},"reddit_open_ai_trigger":{"main":[[{"node":"fetch_reddit_open_ai_feed","type":"main","index":0}]]},"the_rundown_ai_trigger":{"main":[[{"node":"normalize_the_rundown_ai","type":"main","index":0}]]},"Create Video Ideas File":{"main":[[{"node":"Upload Video Ideas File","type":"main","index":0}]]},"Set Subject Line Prompt":{"main":[[{"node":"write_subject_line","type":"main","index":0}]]},"Share Stories Reasoning":{"main":[[{"node":"Share Stories Approval Feedback","type":"main","index":0}]]},"Upload Video Ideas File":{"main":[[{"node":"Share Video Ideas Message","type":"main","index":0}]]},"fetch_blog_meta_ai_feed":{"main":[[{"node":"split_blog_meta_ai_items","type":"main","index":0}]]},"fetch_blog_open_ai_feed":{"main":[[{"node":"split_blog_open_ai_items","type":"main","index":0}]]},"split_google_news_items":{"main":[[{"node":"normalize_google_news_articles","type":"main","index":0}]]},"split_hacker_news_items":{"main":[[{"node":"normalize_hacker_news_articles","type":"main","index":0}]]},"top_stories_auto_parser":{"ai_outputParser":[[{"node":"edit_top_stories","type":"ai_outputParser","index":0},{"node":"pick_top_stories","type":"ai_outputParser","index":0}]]},"write_other_top_stories":{"main":[[{"node":"Set Full Newsletter","type":"main","index":0}]]},"Aggregate Story Sections":{"main":[[{"node":"Set Combined Sections Content","type":"main","index":0}]]},"Set Current Subject Line":{"main":[[{"node":"Share Subject Line","type":"main","index":0}]]},"get_reddit_open_ai_items":{"main":[[{"node":"filter_reddit_open_ai_items","type":"main","index":0}]]},"normalize_the_rundown_ai":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"other_top_stories_parser":{"ai_outputParser":[[{"node":"other_top_stories_auto_parser","type":"ai_outputParser","index":0}]]},"split_blog_meta_ai_items":{"main":[[{"node":"normalize_blog_meta_ai_articles","type":"main","index":0}]]},"split_blog_open_ai_items":{"main":[[{"node":"normalize_blog_open_ai_articles","type":"main","index":0}]]},"subject_line_auto_parser":{"ai_outputParser":[[{"node":"write_subject_line","type":"ai_outputParser","index":0},{"node":"edit_subject_line","type":"ai_outputParser","index":0}]]},"blog_anthropic_ai_trigger":{"main":[[{"node":"fetch_blog_anthropic_ai_feed","type":"main","index":0}]]},"fetch_blog_google_ai_feed":{"main":[[{"node":"split_blog_google_ai_items","type":"main","index":0}]]},"fetch_blog_nvidia_ai_feed":{"main":[[{"node":"split_blog_nvidia_ai_items","type":"main","index":0}]]},"fetch_reddit_open_ai_feed":{"main":[[{"node":"split_reddit_open_ai_items","type":"main","index":0}]]},"reddit_artificial_trigger":{"main":[[{"node":"fetch_reddit_artificial_feed","type":"main","index":0}]]},"story_segment_auto_parser":{"ai_outputParser":[[{"node":"write_segment_content","type":"ai_outputParser","index":0}]]},"Generate Viral Video Ideas":{"main":[[{"node":"Create Video Ideas File","type":"main","index":0}]]},"blog_cloudflare_ai_trigger":{"main":[[{"node":"fetch_blog_cloudflare_ai_feed","type":"main","index":0}]]},"is_revelant_content_parser":{"ai_outputParser":[[{"node":"evaluate_content","type":"ai_outputParser","index":0}]]},"split_blog_google_ai_items":{"main":[[{"node":"normalize_blog_google_ai_articles","type":"main","index":0}]]},"split_blog_nvidia_ai_items":{"main":[[{"node":"normalize_blog_nvidia_ai_articles","type":"main","index":0}]]},"split_reddit_open_ai_items":{"main":[[{"node":"get_reddit_open_ai_items","type":"main","index":0}]]},"Check Subject Line Feedback":{"main":[[{"node":"Set Selected Stories","type":"main","index":0}],[{"node":"edit_subject_line","type":"main","index":0}]]},"filter_reddit_open_ai_items":{"main":[[{"node":"normalize_reddit_open_ai_items","type":"main","index":0}]]},"get_reddit_artificial_items":{"main":[[{"node":"filter_reddit_artificial_items","type":"main","index":0}]]},"google_cloud_events_trigger":{"main":[[{"node":"fetch_google_cloud_events_feed","type":"main","index":0}]]},"story_segment_output_parser":{"ai_outputParser":[[{"node":"story_segment_auto_parser","type":"ai_outputParser","index":0}]]},"Share Subject Line Reasoning":{"main":[[{"node":"Share Subject Line Approval Feedback","type":"main","index":0}]]},"fetch_blog_anthropic_ai_feed":{"main":[[{"node":"split_blog_anthropic_ai_items","type":"main","index":0}]]},"fetch_reddit_artificial_feed":{"main":[[{"node":"split_reddit_artificial_items","type":"main","index":0}]]},"Set Combined Sections Content":{"main":[[{"node":"write_intro","type":"main","index":0}]]},"fetch_blog_cloudflare_ai_feed":{"main":[[{"node":"split_blog_cloudflare_ai_items","type":"main","index":0}]]},"normalize_google_cloud_events":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"other_top_stories_auto_parser":{"ai_outputParser":[[{"node":"write_other_top_stories","type":"ai_outputParser","index":0}]]},"split_blog_anthropic_ai_items":{"main":[[{"node":"normalize_blog_anthropic_ai_articles","type":"main","index":0}]]},"split_reddit_artificial_items":{"main":[[{"node":"get_reddit_artificial_items","type":"main","index":0}]]},"Aggregate Segment Text Content":{"main":[[{"node":"Check External URLs","type":"main","index":0}]]},"fetch_google_cloud_events_feed":{"main":[[{"node":"split_google_cloud_events_items","type":"main","index":0}]]},"filter_reddit_artificial_items":{"main":[[{"node":"normalize_reddit_artificial_items","type":"main","index":0}]]},"normalize_google_news_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_hacker_news_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_reddit_open_ai_items":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"split_blog_cloudflare_ai_items":{"main":[[{"node":"normalize_blog_cloudflare_ai_articles","type":"main","index":0}]]},"Share Stories Approval Feedback":{"main":[[{"node":"extract_stories_approval_feedback","type":"main","index":0}]]},"normalize_blog_meta_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_blog_open_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"split_google_cloud_events_items":{"main":[[{"node":"normalize_google_cloud_events","type":"main","index":0}]]},"Set Segment External Source Links":{"main":[[{"node":"Split Segment External Source URLs","type":"main","index":0}]]},"extract_stories_approval_feedback":{"main":[[{"node":"Check Stories Feedback","type":"main","index":0}]]},"normalize_blog_google_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_blog_nvidia_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"normalize_reddit_artificial_items":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"Scrape Segment External Source URL":{"main":[[{"node":"Filter Segment External Source Errors","type":"main","index":0}]]},"Split Segment External Source URLs":{"main":[[{"node":"Scrape Segment External Source URL","type":"main","index":0}]]},"Share Subject Line Approval Feedback":{"main":[[{"node":"extract_subject_line_approval_feedback","type":"main","index":0}]]},"normalize_blog_anthropic_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"Filter Segment External Source Errors":{"main":[[{"node":"Aggregate Segment External Source Content","type":"main","index":0}]]},"normalize_blog_cloudflare_ai_articles":{"main":[[{"node":"Get Identity","type":"main","index":0}]]},"reddit_artificial_inteligence_trigger":{"main":[[{"node":"fetch_reddit_artificial_inteligence_feed","type":"main","index":0}]]},"Limit Number of Items from Each Source":{"main":[[{"node":"Delay 10s","type":"main","index":0}]]},"extract_subject_line_approval_feedback":{"main":[[{"node":"Check Subject Line Feedback","type":"main","index":0}]]},"get_reddit_artificial_inteligence_items":{"main":[[{"node":"filter_reddit_artificial_inteligence_items","type":"main","index":0}]]},"fetch_reddit_artificial_inteligence_feed":{"main":[[{"node":"split_reddit_artificial_inteligence_items","type":"main","index":0}]]},"Aggregate Segment External Source Content":{"main":[[{"node":"write_segment_content","type":"main","index":0}]]},"split_reddit_artificial_inteligence_items":{"main":[[{"node":"get_reddit_artificial_inteligence_items","type":"main","index":0}]]},"filter_reddit_artificial_inteligence_items":{"main":[[{"node":"normalize_reddit_artificial_inteligence_items","type":"main","index":0}]]},"normalize_reddit_artificial_inteligence_items":{"main":[[{"node":"Get Identity","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":155,"nodeTypes":{"n8n-nodes-base.if":{"count":3},"n8n-nodes-base.set":{"count":19},"n8n-nodes-base.code":{"count":12},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.limit":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.slack":{"count":11},"n8n-nodes-base.filter":{"count":6},"n8n-nodes-base.reddit":{"count":3},"n8n-nodes-base.splitOut":{"count":15},"n8n-nodes-base.aggregate":{"count":4},"n8n-nodes-base.stickyNote":{"count":16},"n8n-nodes-base.httpRequest":{"count":12},"n8n-nodes-base.googleSheets":{"count":2},"n8n-nodes-base.convertToFile":{"count":2},"n8n-nodes-base.splitInBatches":{"count":1},"n8n-nodes-base.executeWorkflow":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":13},"@n8n/n8n-nodes-langchain.chainLlm":{"count":9},"n8n-nodes-base.rssFeedReadTrigger":{"count":6},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":2},"@n8n/n8n-nodes-langchain.lmChatAnthropic":{"count":1},"@n8n/n8n-nodes-langchain.informationExtractor":{"count":2},"@n8n/n8n-nodes-langchain.outputParserAutofixing":{"count":5},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":6}}},"status":"published","readyToDemo":null,"user":{"name":"Maksudur Rahman","username":"maksudur","bio":"Automation consultant with 2 years of experience in AI lead qualification and nurturing.","verified":false,"links":[""],"avatar":"https://gravatar.com/avatar/5829d2b9f0a9c3b5a1db478afc52e8ffb70c1ee1bae19c9eee0b9e269b7eb03c?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":111,"icon":"fa:sign-in-alt","name":"n8n-nodes-base.executeWorkflow","codex":{"data":{"alias":["n8n","call","sub","workflow","sub-workflow","subworkflow"],"details":"The Execute Workflow node can be used when you want your workflow to treat another workflow as a step in your flow. It allows you to modularize your workflows and have a single source of truth for series of actions you perform often. ","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Execute Workflow","color":"#ff6d5a"},"iconData":{"icon":"sign-in-alt","type":"icon"},"displayName":"Execute Sub-workflow","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":445,"icon":"file:reddit.svg","name":"n8n-nodes-base.reddit","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.reddit/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/reddit/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"transform\"]","defaults":{"name":"Reddit"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNTEzIDUxNCI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iLjUiIHk9Ii41Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIj48cGF0aCBmaWxsPSIjZmY0NTAwIiBkPSJNMCA3Ni44QzAgMzQuMjUzIDM0LjI1MyAwIDc2LjggMGgzNTguNEM0NzcuNzQ3IDAgNTEyIDM0LjI1MyA1MTIgNzYuOHYzNTguNGMwIDQyLjU0Ny0zNC4yNTMgNzYuOC03Ni44IDc2LjhINzYuOEMzNC4yNTMgNTEyIDAgNDc3Ljc0NyAwIDQzNS4yeiIvPjxwYXRoIGQ9Ik03OSAzMDVjMC02OC4xNDIgNzguOTQyLTEyMyAxNzctMTIzczE3NyA1NC44NTggMTc3IDEyMy03OC45NDIgMTIzLTE3NyAxMjNTNzkgMzczLjE0MiA3OSAzMDUiLz48ZyBmaWxsPSIjZmY0NTAwIj48cGF0aCBkPSJNMTk5IDM0N2MzNSAyOSA3OSAyOSAxMTQgMGwxMiAxMWMtNDIgMzUtOTYgMzUtMTM4IDB6Ii8+PHVzZSB4bGluazpocmVmPSIjYiIvPjx1c2UgeGxpbms6aHJlZj0iI2IiIHg9Ii0xMTgiLz48L2c+PC9nPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYiIgeD0iNzUiIHk9Ii0xNjAiIHN0cm9rZS13aWR0aD0iMjUiLz48cGF0aCBzdHJva2Utd2lkdGg9IjIyIiBkPSJNODcgMjgyYy00NS0yMi01LTkyIDQwLTUwbTI5OCA1MGM0NS0yMiA1LTkyLTQwLTUwbS0xMjctNDUgMjQtODMgODAgMTYiLz48L2c+PC9zeW1ib2w+PGRlZnM+PHBhdGggaWQ9ImIiIGQ9Ik0yODcgMjg1YTI3Ljk0IDI3Ljk0IDAgMSAxIDU2IDAgMjcuOTQgMjcuOTQgMCAxIDEtNTYgMCIvPjwvZGVmcz48L3N2Zz4="},"displayName":"Reddit","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1145,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.lmChatAnthropic","codex":{"data":{"alias":["claude","sonnet","opus"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="},"displayName":"Anthropic Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1175,"icon":"fa:tools","name":"@n8n/n8n-nodes-langchain.outputParserAutofixing","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Auto-fixing Output Parser"},"iconData":{"icon":"tools","type":"icon"},"displayName":"Auto-fixing Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1227,"icon":"fa:rss","name":"n8n-nodes-base.rssFeedReadTrigger","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedreadtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"RSS Feed Trigger","color":"#b02020"},"iconData":{"icon":"rss","type":"icon"},"displayName":"RSS Feed Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1234,"icon":"file:convertToFile.svg","name":"n8n-nodes-base.convertToFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","encode","encoding","Move Binary Data","Binary","File","JSON","HTML","ICS","iCal","RTF","64","Base64"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.converttofile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Convert to File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc2MTkgMkMxMy4yNDM3IDIgMTIuODIzNiAyLjQyMDA5IDEyLjgyMzYgMi45MzgzMVYxNS4yNTI2QzEzLjMxOTkgMTUuNDY0MyAxMy43ODUxIDE1Ljc3MiAxNC4xOTEgMTYuMTc1N0wyMS4yMjgzIDIzLjE3MzlDMjIuMDU0OCAyMy45OTU4IDIyLjUxOTUgMjUuMTEzMiAyMi41MTk1IDI2LjI3ODhDMjIuNTE5NSAyNy40NDQzIDIyLjA1NDggMjguNTYxOCAyMS4yMjgzIDI5LjM4MzdMMTQuMTkxIDM2LjM4MTlDMTMuNzg1IDM2Ljc4NTYgMTMuMzE5OSAzNy4wOTMyIDEyLjgyMzYgMzcuMzA1VjM3LjM1MjdDMTIuODIzNiAzNy44NzA5IDEzLjI0MzcgMzguMjkxIDEzLjc2MTkgMzguMjkxSDM5LjA2MTdDMzkuNTc5OSAzOC4yOTEgNDAgMzcuODcwOSA0MCAzNy4zNTI3TDQwIDE1Ljc5NEgyNy4xNDQzQzI2LjYyNjEgMTUuNzk0IDI2LjIwNiAxNS4zNzM5IDI2LjIwNiAxNC44NTU3VjJIMTMuNzYxOVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTI4Ljg2NDUgMkMyOC43NzgxIDIgMjguNzA4MSAyLjA3MDAyIDI4LjcwODEgMi4xNTYzOVYxMi44MjI3QzI4LjcwODEgMTMuMDgxOCAyOC45MTgyIDEzLjI5MTkgMjkuMTc3MyAxMy4yOTE5SDM5Ljg0MzZDMzkuOTMgMTMuMjkxOSA0MCAxMy4yMjE5IDQwIDEzLjEzNTVMNDAgMTIuNjI2M0M0MCAxMi4zNzc4IDM5LjkwMTQgMTIuMTM5NSAzOS43MjYgMTEuOTYzNkwzMC4wNjEgMi4yNzU2MUMyOS44ODUgMi4wOTkxNiAyOS42NDYgMiAyOS4zOTY3IDJIMjguODY0NVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTkuNzcyNjggMzQuNjAwM0M5LjA0MTg2IDMzLjg2NTQgOS4wNDUxNyAzMi42NzcyIDkuNzgwMDcgMzEuOTQ2NEwxMy42MzE1IDI4LjExNjNMMC45MzgzMTEgMjguMTE2M0MwLjQyMDA5NiAyOC4xMTYzIC0yLjI2NTE5ZS0wOCAyNy42OTYyIDAgMjcuMTc4TDguMjAyOTdlLTA4IDI1LjMwMTRDMS4wNDY4MmUtMDcgMjQuNzgzMiAwLjQyMDA5NSAyNC4zNjMxIDAuOTM4MzExIDI0LjM2MzFIMTMuNTUyOUw5Ljc4MDA3IDIwLjYxMTJDOS4wNDUxNyAxOS44ODA0IDkuMDQxODYgMTguNjkyMiA5Ljc3MjY4IDE3Ljk1NzNDMTAuNTAzNSAxNy4yMjI0IDExLjY5MTcgMTcuMjE5MSAxMi40MjY2IDE3Ljk0OTlMMTkuNDYzOSAyNC45NDgxQzE5LjgxODEgMjUuMzAwNCAyMC4wMTczIDI1Ljc3OTMgMjAuMDE3MyAyNi4yNzg4QzIwLjAxNzMgMjYuNzc4MyAxOS44MTgxIDI3LjI1NzIgMTkuNDYzOSAyNy42MDk1TDEyLjQyNjYgMzQuNjA3N0MxMS42OTE3IDM1LjMzODUgMTAuNTAzNSAzNS4zMzUyIDkuNzcyNjggMzQuNjAwM1oiIGZpbGw9IiMzQTQyRTkiLz4KPC9zdmc+Cg=="},"displayName":"Convert to File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1237,"icon":"file:limit.svg","name":"n8n-nodes-base.limit","codex":{"data":{"alias":["Limit","Remove","Slice","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.limit/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Limit"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjMkZCNjdDIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcGF0aD0idXJsKCNhKSIgY2xpcC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNTEyIDQ1OGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMTUyLTIyMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYzMGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDI0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTk0YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6Ii8+PHBhdGggZD0iTTE0OS41NzcgMTQ2Ljk4MmM5LjM5OC05LjM0NiAyNC41OTQtOS4zMDQgMzMuOTQxLjA5NUwyNTYgMjE5Ljk2NGw3Mi40ODItNzIuODg3YzkuMzQ3LTkuMzk5IDI0LjU0My05LjQ0MSAzMy45NDEtLjA5NXM5LjQ0MSAyNC41NDMuMDk1IDMzLjk0MWwtODkuNSA5MGEyNCAyNCAwIDAgMS0zNC4wMzYgMGwtODkuNS05MGMtOS4zNDYtOS4zOTgtOS4zMDQtMjQuNTk0LjA5NS0zMy45NDFNMCAzNTBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0ODhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyeiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTEydjUxMkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg=="},"displayName":"Limit","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1273,"icon":"fa:project-diagram","name":"@n8n/n8n-nodes-langchain.informationExtractor","codex":{"data":{"alias":["NER","parse","parsing","JSON","data extraction","structured"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extractor/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Information Extractor"},"iconData":{"icon":"project-diagram","type":"icon"},"displayName":"Information Extractor","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}