This workflow follows the Chainllm → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Content - Newsletter Agent",
"nodes": [
{
"parameters": {
"formTitle": "Retrive Data",
"formFields": {
"values": [
{
"fieldLabel": "Date",
"fieldType": "date",
"requiredField": true
},
{
"fieldLabel": "Previous Newsletter Content",
"placeholder": "Copy and paste the markdown content of the previous newsletter here. This is used to avoid duplicate coverage of stories."
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.2,
"position": [
40,
-20
],
"id": "3569e93d-b60b-44ce-83d8-a3086d4d5f64",
"name": "form_trigger"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "cb1ba2cf-90d6-4f99-bdf0-96bf8c9ce6c6",
"leftValue": "={{ $json.Key }}",
"rightValue": ".md",
"operator": {
"type": "string",
"operation": "endsWith"
}
},
{
"id": "f031d067-6edb-4938-b67d-0b55966b6fb7",
"leftValue": "",
"rightValue": "",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
620,
-20
],
"id": "762697da-643c-4749-9381-6188556292f4",
"name": "filter_only_markdown"
},
{
"parameters": {
"content": "## 1. Retrieve Markdown Content\n",
"height": 260,
"width": 2620
},
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
-100
],
"typeVersion": 1,
"id": "201d1987-3bd6-4c1b-a91b-1951fd3e17f2",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Pick Top Stories",
"height": 1300,
"width": 1900,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
200
],
"typeVersion": 1,
"id": "9c94a230-d070-44da-a67a-603b09d40375",
"name": "Sticky Note1"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f986e5a7-3723-4a90-a61c-3d3008f0b022",
"leftValue": "={{ $('get_markdown_object_info').item.json.Metadata.type }}",
"rightValue": "newsletter",
"operator": {
"type": "string",
"operation": "notEquals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
1240,
-20
],
"id": "df67292e-dd7a-4ccf-bf9a-afed5f85c7de",
"name": "exclude_newsletters"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('stories_prompt').item.json.select_top_stories_prompt }}",
"hasOutputParser": true,
"messages": {
"messageValues": [
{
"message": "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."
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
480,
740
],
"id": "670cbe4d-a447-46e0-89c3-2b4ea4574764",
"name": "pick_top_stories",
"retryOnFail": true,
"waitBetweenTries": 5000
},
{
"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"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
640,
1160
],
"id": "cdbc51ed-daac-4e28-a207-4c83280d84a8",
"name": "top_stories_parser"
},
{
"parameters": {
"content": "## Iterate Over & Write Each Selected Story\n\n1. Resolve identifier for the story\n2. Load up 1-N story references\n3. Pass in writing guidelines\n4. Write headline and section",
"height": 1300,
"width": 4980,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
1520
],
"typeVersion": 1,
"id": "5be63d7b-c0bf-4012-ab39-f72db9a5994b",
"name": "Sticky Note3",
"disabled": true
},
{
"parameters": {
"fieldToSplitOut": "top_selected_stories",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
500,
2040
],
"id": "bec2606c-96dd-4c98-920e-10afc2b67aba",
"name": "split_stories"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
760,
2040
],
"id": "b2f20e78-860c-43d7-a51a-8a0b6d36379d",
"name": "iterate_stories"
},
{
"parameters": {
"fieldToSplitOut": "current_story.identifiers",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1380,
2160
],
"id": "8d70c037-363e-4417-872e-9086409430de",
"name": "split_content_ids"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "c677aa22-37e5-4d3b-9b53-409fb3c74b81",
"leftValue": "={{ $node[\"set_current_segment\"].json.current_story.external_source_links }}",
"rightValue": "",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
}
},
{
"id": "6f3cee68-49b0-4cb6-871e-4cb12a306b06",
"leftValue": "={{ $node[\"set_current_segment\"].json.current_story.external_source_links }}",
"rightValue": "",
"operator": {
"type": "array",
"operation": "notEmpty",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2760,
2160
],
"id": "0d45114f-11f6-41c3-b80d-2b78266fdc89",
"name": "check_external_urls"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ba33265f-73f6-4561-9cf0-dcb2f0b52a78",
"name": "story_sections",
"value": "={{ $node[\"iterate_stories\"].json.story_segment.newsletter_section_content }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
4600,
1680
],
"id": "ef88d1f2-8423-4c3c-ae63-ea3d8fddaf81",
"name": "set_story_segments"
},
{
"parameters": {
"url": "=https://api.aitools.inc/admin/files/info/data-ingestion/{{ $json['current_story.identifiers'] }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1600,
2160
],
"id": "b70adb06-e4b3-4db2-a3cb-70a626e56059",
"name": "get_segment_content_info",
"alwaysOutputData": false,
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"onError": "continueRegularOutput"
},
{
"parameters": {
"bucketName": "data-ingestion",
"fileKey": "={{ $node[\"split_content_ids\"].json['current_story.identifiers'] }}"
},
"type": "n8n-nodes-base.s3",
"typeVersion": 1,
"position": [
1820,
2160
],
"id": "dd58f7df-1568-431b-9f09-e53af0211ed6",
"name": "download_segment_content",
"retryOnFail": true,
"waitBetweenTries": 5000,
"credentials": {
"s3": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "text",
"binaryPropertyName": "=data",
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
2040,
2160
],
"id": "283574cf-0dc9-41d4-901f-993709f0d057",
"name": "get_segment_content_text"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d2054552-ac25-41e0-9f09-faa9cea840e6",
"name": "content_item",
"value": "=<{{ $node[\"split_content_ids\"].json['current_story.identifiers'] }}>\n---\nidentifier: {{ $node[\"split_content_ids\"].json['current_story.identifiers'] }}\nfriendlyType: {{ $node[\"get_segment_content_info\"].json.Metadata.type }}\nsourceName: {{ $node[\"get_segment_content_info\"].json.Metadata['source-name'] }}\nauthors: {{ $node[\"get_segment_content_info\"].json.Metadata.authors }}\nexternalSourceUrls: {{ $node[\"get_segment_content_info\"].json.Metadata[\"external-source-urls\"\n] }}\nimageUrls: {{ $node[\"get_segment_content_info\"].json.Metadata[\"image-urls\"\n] }}\n---\n\n{{ $('get_segment_content_text').item.json.data }}\n</{{ $node[\"split_content_ids\"].json['current_story.identifiers'] }}>",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
2280,
2160
],
"id": "df569fb6-7d65-4e53-aaba-13b48281a3bb",
"name": "prepare_segment_content_item"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "content_item"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
2520,
2160
],
"id": "de6a3f52-f8c6-4d80-bfd3-b9d4f1b75645",
"name": "aggregate_segment_text_content"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "81a924a0-5bab-423a-a41a-4fe7a0345f68",
"name": "segment_external_source_links",
"value": "={{ $node[\"set_current_segment\"].json.current_story.external_source_links }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3000,
2000
],
"id": "9e5317d3-bb6c-4422-9346-0f548821708c",
"name": "set_segment_external_source_links"
},
{
"parameters": {
"fieldToSplitOut": "=segment_external_source_links",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
3220,
2000
],
"id": "d6f3a23a-2ddb-4459-bd29-6c87d8f74088",
"name": "split_segment_external_source_urls"
},
{
"parameters": {
"workflowId": {
"__rl": true,
"value": "qVEM2rCD1jlJPeRs",
"mode": "list",
"cachedResultName": "Data Ingestion \u2014 Node - Scrape Url"
},
"workflowInputs": {
"mappingMode": "defineBelow",
"value": {
"url": "={{ $json.segment_external_source_links }}"
},
"matchingColumns": [
"url"
],
"schema": [
{
"id": "url",
"displayName": "url",
"required": false,
"defaultMatch": false,
"display": true,
"canBeUsedToMatch": true,
"type": "string",
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": true
},
"options": {}
},
"type": "n8n-nodes-base.executeWorkflow",
"typeVersion": 1.2,
"position": [
3440,
2000
],
"id": "687587f1-0431-4c36-a11c-ded1353cb2ed",
"name": "scrape_segment_external_source_url",
"retryOnFail": true,
"waitBetweenTries": 5000,
"onError": "continueRegularOutput"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "data"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
3880,
2000
],
"id": "9201a712-3aba-497e-802e-655cc4f0bbed",
"name": "aggregate_segment_external_source_content",
"alwaysOutputData": true
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "ecd02ccb-0790-44ab-8bb0-246881e35a20",
"leftValue": "={{ $json.error }}",
"rightValue": "",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
3660,
2000
],
"id": "fe444b4e-b17f-47b4-93f0-b2a5af64d963",
"name": "filter_segment_external_source_errors",
"alwaysOutputData": true
},
{
"parameters": {
"promptType": "define",
"text": "=## Task and Purpose\n\nCreate a single newsletter section focused on **AI developments, tools, and applications** that help professionals automate tasks, boost productivity, and stay on the cutting edge. You will be given details of a single section to write about and supporting source material. Use this to write this newsletter section.\n\nToday's date for the newsletter is *{{ new Date(new Date($('form_trigger').item.json.Date).getTime() + (12 * 60 * 60 * 1000)).format(\"yyyy-MM-dd\", \"America/Chicago\") }}*.\n\n### Audience\n\n- **Tech-forward readers**\u2014developers, entrepreneurs, AI enthusiasts, and early adopters.\n- Those looking for **new AI trends**, developments, and **real-world use cases** that can make their work more efficient.\n\n### Style Inspiration\n\n- **Axios-like** and **Rundown** approach with **short, punchy paragraphs**, clear headers, bullet points, and a **\u201cWhy it matters\u201d** or **\u201cBottom line\u201d** section.\n- **Enthusiastic, optimistic, forward-looking** voice that highlights AI\u2019s future-shaping potential.\n\n### Additional Writing Guidelines\n\n- Place verbs directly after helping verbs like \"makes,\" \"allows,\" \"enables\"\n- Emphasize user actions rather than abstract processes\n- Use clear subject-verb-object structure whenever possible\n- Keep sentences concise and purposeful\n- Avoid unnecessary nominalization (turning verbs into nouns) and keep the language direct and dynamic.\n- Avoid technical jargon. Your writing should be easy to understand for non-technical readers.\n\nPlease use active verb constructions rather than noun phrases. For example:\n- WEAK: \"Intuitive interface that makes voiceover creation accessible to non-technical users\"\n- STRONG: \"Intuitive interface that makes creating voiceovers accessible to non-technical users\"\n\n### Section Struture\n\nFollow this structure when writing your newsletter segment:\n\n1. **The Recap:** (should be bolded)\n - Provide a **quick summary and overview** of the topic.\n - This should be a brief 1-2 sentences.\n - Start this section with **The Recap:** followed by your 1-2 sentences.\n - This is a good place to link to any annoucment or other external urls relevant to this content.\n\n2. **Unpacked:** (should be bolded)\n - Expand on **additional details** and context around the story that provides our readers with value. This can be in the form of (but is not limited to) expanding on the important details of the story they would care about, connecting the story into the larger AI space and other recent developments, or take an approach that \"Axios\" and \"The Rundown AI\" newsletters take with their bullet points to help readers get the most useful information around he story in bullet point form. The goal here is to \"unpack\" the most useful details around the story in an easy to digest format for our readers. We are looking for added \"depth\" around this story.\n - This should be formatted as a bulleted list where each bullet item is a single sentence that expands around the context of the story / source material.\n - This should not be overly technical. It should be easy for an entry level AI enthusiast to understand. It must also be easy for someone new to AI who is looking to learn the basics to understand.\n - You may ONLY write about information that is included in the provided source materia, you may NOT make up or invent your own facts. The facts you output must exist on the provided sources materials and context.\n - You should provide a total of 3 bullets. Each bullet you include MUST be very relevant to the story and provide the reader with necessary context. You must avoid adding bullets that are not useful to the reader. The number of bullets points to include is truly your choice. You should aim to \"unpack\" the story in 3 bullets.\n - You must use the `-` character instead of a `*` for each bullet in this section.\n - Use regular markdown bullet formatting for each of these bullets. Your output will be directly sent in an email to our readers so think carefully and make sure the formatting is correct. There MUST NOT be any extra spacing after the `-` character and the text content for this bullet, only the single space according to the markdown specification. Review this requirement carefully before you write your output.\n - You may only include a maximum of 1 single link/hyperlink in each bullet you write. A link/hyperlink is not required, but you are allowed to include a maximum of 1 link so you must be sure the link you select is the best placement for it.\n - You are NOT allowed to format links as bold in your output.\n - You are allowed to **bold** a maximum of a single phrase (or single word) in the scope of each bullet. You may NOT bold multiple phrases withing the scope of a SINGLE bullet so pick the word or phrase that makes the most sense to bold if you choose to bold. It is truly optional to bold a word or phrase within the scope of a bullet. Don't 'force' bolding a word or phrase that doesn't make sense. The bolding should feel natural to the reader.\n\n3. **Bottom line:** (should be bolded)\n - Offer a **short, final insight** into why this story matters or how it impacts the reader. This must be 2 sentences in length. Avoid repeating ideas or duplicating information withing this \"Bottom Line\" section.\n - You must **AVOID** writing a phrase that include the word \"We're\" or \"We are\" in this \"Bottom Line\" section.\n - You must avoid overly-flower language that is excessively descriptive. This sentences in this bottom line needs to still be easy to read while offering insight(s) to the reader. \n\n---\n### Tone and Voice\n\n1. **Optimistic and Enthusiastic** \n - Show excitement about AI\u2019s potential in a **balanced, non-overbearing** way. \n - Demonstrate genuine curiosity\u2014celebrate successes and **promising experiments**.\n\n2. **Clear, Direct, and Data-Driven** \n - Use bullet points and **bolded keywords** for critical stats and key points/details. Bolded values should be used to highlight important words of text so don't bold too much or else it will lose its meaning.\n - Keep language **straightforward**\u2014avoid deep academic jargon, but don\u2019t oversimplify.\n\n3. **Conversational and Personable** \n - Use **friendly, casual style** with first- or second-person pronouns (\u201cwe,\u201d \u201cyou\u201d). \n - Engage the reader: \u201cHere\u2019s what caught our attention,\u201d \u201cWe\u2019re excited to see how this unfolds.\u201d\n\n4. **Authoritative Without Being Overly Formal** \n - **Cite sources** and link to relevant external sources when possible. \n - Combine excitement with **credible facts** to maintain trust. Review the linking requirements to understand the correct way to cite.\n - **Authoritative yet approachable**, focusing on credible facts and references. Always include a markdown link when you can tie back back a concept like a person, event, annoucment, social media post to what you are writing about. This is important.\n\n---\n### Word and Phrase Blacklist\n\nAvoid using these words and phrases in your output:\n\n- Smarts\n- Game changing\n- Revolutionize\n- sophisticated\n\n---\n## Formatting and Layout Tips\n\n1. **Short Paragraphs and Bullet Points** \n - Keep **1\u20132 sentences per paragraph** when not using bullets. \n - Use bullet points to **list features, stats, or steps** clearly.\n - Bullet points must be in proper markdown format. Here's an example of a properly formatted markdown bullet (make note of the spacing). `- This is a proper bullet that will exist on its own line`\n\n2. **Visual Cues and Emphasis** \n - **Bold** key data points or important terms (e.g., **80%+ accuracy**, **multi-agent system**). \n - Use *italics* or _underlines_ sparingly for references, notable phrases, or quotes.\n\n3. **Format In Markdown**\n - Format your output in markdown using best practices for headings, paragraphs, bulleted lists, bold text, and hyperlinks.\n - You should use markdown formatting where the section heading is a the `#` heading level for the header of this segment.\n - Pay close attention to your markdown formating to make sure it is valid and clean.\n\nPay close attention and ensure your output matches the provided JSON schema format. Make sure any special characters our correctly handled so that your output can be parsed. If you make any mistakes here and return output that does NOT match the provided, this task will be considered a complete failure and I will lose my car, my house, and my family.\n\n---\n### Additional Notes\n\nA main goal of our is to provide concise yet powerful insights, your publication can stand out as a **trusted source** for the latest in AI innovation.\n\nYou MUST also reference \"Additional Source Materials\" to get more context around the segment you are writing. This should be very helpful for adding commentary, making better summaries, extracting data points, and giving more context to the reader.\n\n---\n### Link and Hyperlinking Requirements\n\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\n1. **Strategic Linking for Validation & Context:** Embed hyperlinks purposefully.\n * Link specific entities (companies, products, technologies) to their official source on first mention.\n * Link data, statistics, claims, or direct quotes to their precise origin (e.g., study, press release, specific article/report section).\n * Where appropriate (e.g., in concluding sections), consider linking to resources offering broader context or further exploration of the topic.\n\n2. **Mandatory 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 * **Verify:** Confirm the destination directly and explicitly supports the specific information it's linked to.\n * **Prioritize:** Use primary or the most authoritative sources available.\n * **Deep Link:** Absolutely NO linking to generic homepages or main site sections (e.g., link to the specific *project page* or *announcement*, not just the company's top-level domain). An example of linking to a generic homepage would be `https://openai.com/`. Make sure you DO NOT DO THIS.\n * **Omit 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\n3. **Seamless Integration & Readability:** Weave links naturally into the narrative flow.\n * **Anchor Text:** Use brief, relevant anchor text (typically 2-5 words) that accurately describes the link's destination or topic. Avoid overly long anchor text.\n * **Density:** You MUST limit links to 1 (one) per paragraph or self-contained bullet point. If multiple sources are essential for a single point, prioritize the single most direct/authoritative one, or carefully distribute links across different sentences only if absolutely necessary for clarity and validation.\n\n4. **Leverage Provided Source Materials:** Actively consult the `Current Segment Story Context` and `Additional Current Segment Source Materials` sections (if provided) to identify, verify, and select the most appropriate and accurate hyperlinks based on the available information.\n\n5. Verify link destinations - Before suggesting a link in your response, confirm the URL directly relates to the exact topic, product, or claim being discussed. You MUST NOT link to a web page that doesn't exist or a web page that would result in a HTTP 404 error when a user clicks on it. If you include a link that goes to a web page that does not exist or results in an error, it will result in us completely losing the trust of our readers. You are not allowed to make any mistakes here or insert links that are to web pages that don't exist on the internet. Think through this requirement carefully and deeply.\n\n6. Remember that links should be incorporated naturally into the text rather than appearing as separate references. The goal is to provide readers with a seamless way to verify information and explore topics further while maintaining the newsletter's readability. Avoid adding this contextual link to more than three (3) words at once \u2014 it should not feel super long. The hyperlink/contextual link should be on a few anchor words (maximum of 3 (three) words. Pay close attention to the anchor text you are placing the link on. It MUST be intentional and it must be the set of words that makes the most sense to place the link. Think deeply about where the link is getting placed on each sentence or bullet point for at least 25 minutes before creating your output. You MUST place this in the best possible spot with the best anchor text that is most relevant to the link destination.\n\n7. Multiple sources and links can be found below under the `Current Segment Story Context` and `Additional Current Segment Source Materials` headings. Please think deeply and review this context in order to place the best links. You must read all additional source materials and think on the best links to reference for 30 minutes before you decide to add them in. Links to evaluate and consider can be found by looking for the `url` value on the \"Additional Current Segment Source Materials\" content items. You can also look in the `external_source_links` array inside the JSON provided in \"Current Segment Story Context\".\n\n8. Prefer linking to credible sources and avoid linking to unknown websites or websites that have very poor reputations.\n\n9. You MUST ENSURE that the links you are including and inserting are exactly the same urls copied from the provided source urls. You may not change or modify these urls because the url is required to work. When including a URL it should be copied and pasted in. NOT URL MODIFICATION IS ALLOWED. Before inserting a link, you must load this URL from the internet to ensure it is still valid and can be seen when people click on it. YOU MUST INSERT AND PROVIDE CORRECT HYPERLINKS.\n\n10. You MUST avoid linking the same URL more than once in the scope of this newsletter section. You are allowed to use a source one so pick the spot this is the most contextually relevant.\n\n11. When writing about product annoucements, new releases, major updates, or other big annoucements, I would expect you to link back to the source material put out by the company. This is typically a blog post, Tweet / X post, a research paper, or another piece of content release by the company, entity, or person who created it. It is most useful to link back to the main source material for these types of stories. You MUST remember that you are NOT allowed to make up or use links that were not provided as input.\n\n12. Source Requirement: You must only use URLs found within the provided text designated as \"Current Segment Story Context\" or \"Additional Current Segment Source Materials\". Do not search elsewhere or use external knowledge. Accuracy Requirement: The URL included in your output must be a perfect, character-for-character copy of the URL found in the source. It must be reproduced verbatim. Prohibition: You are strictly forbidden from creating, guessing, modifying, shortening, or completing URLs. If a URL is incomplete or looks incorrect in the provided context, copy it exactly as it is. Rationale: Users will click this URL; therefore, it must precisely match the provided source url to potentially function as intended. Handling Absence: If you cannot find any URL within the specified source sections, you *MUST* omit inserting an link and output plain text instead.\n\n---\n## Newsletter Context\n\n- Newsletter Subject Line: {{ $node[\"set_selected_stories\"].json.subject_line }}\n- Newsletter Pre-Header Text: {{ $node[\"set_selected_stories\"].json.pre_header_text }}\n\n### Current Segment Story Context\n\nTitle: {{ $node[\"set_current_segment\"].json.current_story.title }}\nSummary: {{ $node[\"set_current_segment\"].json.current_story.summary }}\n\n{{ $node[\"aggregate_segment_text_content\"].json.content_item.join(\"\\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\n",
"hasOutputParser": true,
"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."
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
4120,
2180
],
"id": "d339c37c-61f0-44fd-ab5e-312b798f96aa",
"name": "write_segment_content",
"retryOnFail": true,
"waitBetweenTries": 5000
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e37da3c8-902a-406d-a5c7-195a9b8c32e7",
"name": "current_story",
"value": "={{ $json }}",
"type": "object"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1140,
2160
],
"id": "e0e79dc3-f324-4f45-9323-e00c39f78dda",
"name": "set_current_segment"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "144dbdda-e76e-452c-b1a1-6bbbcba2a477",
"name": "story_sections",
"value": "={{ $json.story_sections.join(\"\\n\\n---\\n\") }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
5040,
1680
],
"id": "b37f375c-e240-4fbb-9060-cbfab976f2a0",
"name": "set_combined_sections_content"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "story_sections"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
4820,
1680
],
"id": "692e97f0-74aa-4eff-9159-184a1007dca5",
"name": "aggregate_story_sections"
},
{
"parameters": {
"model": "claude-3-5-sonnet-20241022",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.2,
"position": [
2980,
3620
],
"id": "a3a79692-5c8c-4948-baa0-75259da5489e",
"name": "claude-3-5-sonnet",
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"modelName": "models/gemini-2.5-pro-preview-06-05",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
3160,
3620
],
"id": "4a12c739-83f6-4af4-9873-e7b5db333e17",
"name": "gemini-2.5-pro",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"typeVersion": 1,
"position": [
4200,
2440
],
"id": "75c53525-5a8c-467c-b0a1-5930b01d1f91",
"name": "story_segment_auto_parser"
},
{
"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}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
4280,
2640
],
"id": "4d3c403b-1014-4092-837f-333e99205517",
"name": "story_segment_output_parser"
},
{
"parameters": {
"content": "## Write Intro Section\n",
"height": 1040,
"width": 460
},
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
2840
],
"typeVersion": 1,
"id": "f0fe0c7a-19c6-4509-b4d2-9be606a2cf81",
"name": "Sticky Note2"
},
{
"parameters": {
"promptType": "define",
"text": "=# Prompt for Generating Newsletter Intro Section\n\n## Role:\n\nYou are an expert AI Newsletter Writer, skilled at crafting engaging and informative introductory sections that precisely match a specific style and format.\n\n## Goal:\n\nGenerate an introductory section for our AI email newsletter, \"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 newsletter is *{{ new Date(new Date($('form_trigger').item.json.Date).getTime() + (12 * 60 * 60 * 1000)).format(\"yyyy-MM-dd\", \"America/Chicago\") }}*.\n\n## Input Provided:\n\nYou will receive the following information for each newsletter edition:\n1. **Subject Line:** The subject line of the email.\n2. **Pre-header Text:** The pre-header text (preview text) of the email.\n3. **Newsletter Content:** The full text content of the body of the newsletter.\n\n## Constraints & Instructions:\n\n1. **Format Mimicry:** Replicate the exact structure of the examples:\n * Greeting: Start *precisely* with \"Good morning, AI enthusiasts.\" - Instead of just printing \"AI enthusiast\" you should output an expersion that is surrounding by double handlebars/mustache characters `{` to open and `}` to close it. The inside of the handlebars should be `first_name | AI enthusiast` so the value is dynamic. Please also make sure this entire greeting is formated as bold in markdown.\n * Paragraph 1: Introduce the most prominent news story or theme from the provided `Newsletter Content`. This should be concise (typically 2-3 sentences). In this Paragraph, you MUST AVOID repeating the exact same sentence structure that the first story / top story uses. It will appear strange to our readers if you use the exact same sentence or extremely similar sentences in both this intro and the content already written for the first story / top story. Avoid flowerly language here, this should be simple to read and make make the reader want to continue forward.\n * 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 or repeating information across these paragraphs. Avoid flowerly language here, this should be simple to read.\n * Transition Phrase: Use the *exact* phrase \"In today\u2019s AI recap:\" (Note: Use \"recap\", **not** \"rundown\"). This transition phrase MUST be bolded text in markdown format.\n * Bulleted List: Create a bulleted list (using `-` for each point) summarizing the main topics covered in the `Newsletter Content` (usually 4 items). Derive these items directly from the provided content.\n2. **Style & 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, targeted towards an audience interested in AI developments.\n3. **Length:** Ensure the overall length of the generated introduction section is very similar to the examples provided.\n4. **Content Derivation:** Base the content of the two introductory paragraphs and the bulleted list *solely* on the information present in the provided `Newsletter Content`. Identify the most significant news item for the opening paragraphs.\n5. **Keyword:** Use the word \"recap\" in the transition phrase before the bulleted list, as the newsletter is named \"The Recap\".\n\n## Examples of Desired Output Format, Style, Length, and Tone:\n\n**(Note: The examples below use \"rundown\" but your output MUST use \"recap\" in the transition phrase)**\n\n**Example 1 (Illustrative - use \"recap\" in your output):**\n\nGood morning, AI enthusiasts. OpenAI has \u201ca lot of good stuff\u201d lined up this week, according to Sam Altman\u2014and its first release is a step back\u2026in 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 \u2014 potentially laying a new foundation for the fast-approaching era of agentic AI development.\n\nIn today\u2019s AI rundown:\n\n- OpenAI\u2019s dev-focused GPT-4.1 family\n- ByteDance\u2019s efficient Seaweed video AI\n- Create conversational branches to explore ideas\n- Google\u2019s AI to decode dolphin speech\n\n---\n\n**Example 2 (Illustrative - use \"recap\" in your output):**\n\nGood morning, AI enthusiasts. OpenAI\u2019s future may stretch beyond frontier models\u2026to a social network riding ChatGPT\u2019s wave of success.\n\nThe move could unlock much-needed real-time data for Sam Altman\u2019s AI ambitions, but the question is: could OpenAI match the scale, engagement, stickiness, and broader cultural pull of X or Meta\u2019s platforms?\n\nIn today\u2019s AI rundown:\n\n- OpenAI reportedly building social network\n- Kling AI drops new video and image models\n- Build a personal data analyst with n8n automation\n- AI models play detective in Ace Attorney\n\n---\n\n**Example 3 (Illustrative - use \"recap\" in your output):**\n\nGood morning, AI enthusiasts. Meta\u2019s hotly-anticipated Llama 4 family is here \u2014 with a surprise weekend release debuting new open-weights models with massive context windows and benchmark-beating performances.\n\nWith a 2T \u201cBehemoth\u201d still in training and claims of outperforming GPT-4.5, is this release a true next-gen step forward? Or will user experience tell a different story?\n\nIn today\u2019s AI rundown:\n\n- Meta launches Llama 4 model family\n- Copilot\u2019s new personalization upgrades\n- Unlock the power of AI across your apps\n- \u2018AI 2027\u2019 forecasts existential risks of ASI\n\n---\n\n**Example 4 (Illustrative - use \"recap\" in your output):**\n\nGood morning, AI enthusiasts. AI-generated video has always faced major limitations in length and consistency, but new research may have just unlocked a major leap in storytelling capabilities.\n\nWith researchers using a new method and a dataset of Tom and Jerry cartoons to create minute-long, coherent generations, the days of short, disconnected AI video clips may finally be numbered.\n\nIn today\u2019s AI rundown:\n\n- NVIDIA and Stanford\u2019s one-minute AI cartoons\n- Amazon\u2019s new voice model, video upgrade\n- Create eye-catching thumbnails with GPT-4o\n- Murati\u2019s Thinking Machines adds ex-OpenAI talent\n\n---\n### Word 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\n---\n\n## Your Task:\n\nBased on the `Subject Line`, `Pre-header Text`, and `Newsletter Content` I provide, generate the introductory section for \"The Recap\" newsletter, following all the instructions and mimicking the examples precisely, ensuring you use \"In today\u2019s AI recap:\".\n\n### Subject Line\n{{ $('set_selected_stories').item.json.subject_line }}\n\n### Pre-header Text\n{{ $('set_selected_stories').item.json.pre_header_text }}\n\n### Newsletter Content\n{{ $('set_combined_sections_content').item.json.story_sections }}",
"hasOutputParser": true
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.6,
"position": [
280,
3200
],
"id": "125ab427-4f7a-4896-9223-02654d5641c8",
"name": "write_intro"
},
{
"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}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
360,
3600
],
"id": "9fe25e99-8f9a-4119-aa87-55fb5178f38d",
"name": "intro_parser"
},
{
"parameters": {
"content": "## Write \"The Shortlist\" Section\n",
"height": 1040,
"width": 460,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"position": [
740,
2840
],
"typeVersion": 1,
"id": "e3c8be99-6ad3-493b-bc67-979187d20f1e",
"name": "Sticky Note4"
},
{
"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}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
920,
3600
],
"id": "c43d3ee8-efaf-4fb7-919f-0b0b19ac3ab3",
"name": "other_top_stories_parser"
},
{
"parameters": {
"promptType": "define",
"text": "=## Role:\n\nYou are an expert AI Newsletter Writer, specializing in crafting concise, engaging, and informative summaries of the latest AI news for a tech-savvy audience. You are writing a specific section for the newsletter \"The Recap\".\n\n## Context:\n\nWe are creating the \"Other Top AI Stories\" section for our email newsletter, \"The Recap\". This section should highlight interesting and relevant AI news items that were *not* covered in the main segments of the newsletter. The goal is to provide readers with a quick overview of other significant developments in the AI space. The stories you pick MUST be related to AI.\n\nToday's date for the newsletter is *{{ new Date(new Date($('form_trigger').item.json.Date).getTime() + (12 * 60 * 60 * 1000)).format(\"yyyy-MM-dd\", \"America/Chicago\") }}*.\n\n## Input Data:\n\nYou will be provided with the following information:\n\n1. **Newsletter Subject Line:** \"\"{{ $('set_selected_stories').item.json.subject_line }}\"\n2. **Main Stories Already Covered (Do NOT repeat these topics or include them in your output)**\n3. **The Full Text Content of Our Last Newsletter Edition** (Do NOT repeat stories or include duplicates that have already been covered in \"The Shortlist\" section of the previous edition)\n4. **List of Potential Other AI Stories (Analyze these and evaluate these in order to determine the best stories)**\n5. **List of Potential Other AI Stories from Tweets / X Posts (Analyze these and evaluate these in order to determine the best stories)**\n\n## Task:\n\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. It is truly your choice to pick the number of stories), ensuring they do *not* overlap with the stories already in the newsletter, and then write a short summary for each selected story in the specified format and style. You are not allowed to make up or guess a link to include for a story. You MUST have a link that you can copy and paste into your output for it to be valid story to include. If there is not a valid link to include, you MUST omit this story from your output. You must include a minimum of at least 3 (three) stories in your output. \n\n## Formatting and Style Requirements:\n* **Output Format:** Generate the output in Markdown.\n* **Story Structure:**\n * The **first word** of each story summary *must* be **bolded**.\n * The **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 * The **URL** used in the link *must* be the **exact** URL provided for that story in the list of stories / story context. You must copy and paste this value for your output \u2014 there can be no changes to this url. This is critical.\n * The rest of the sentence should be a concise summary of the story's key takeaway.\n * Your output must be in markdown format.\n* **Style:**\n * Mimic the writing style of \"The Rundown\" and the provided examples below. The tone should be concise, informative, slightly informal, and engaging for AI/tech professionals and enthusiasts.\n * Each story summary *must* be its own paragraph. **Do NOT use bullet points or numbered lists.**\n* **Selection Criteria:** Choose stories that are significant, interesting, or offer a unique perspective within the AI landscape. Avoid minor updates unless particularly noteworthy. Prioritize variety if possible. Make sure you DO NOT repeat stories in your selection or output duplicates. You MUST use specifics when referencing stories, instead of saying a generic term like \"AI\", you must pick a story that references specific companies, entities, models, or some other specific term.\n\n## Examples of Desired Output Format and Style (Use these as your guide):\n\n**NVIDIA** [released](<URL_placeholder>) Nemotron-Ultra, a 253B parameter open-source reasoning model that surpasses DeepSeek R1 and Llama 4 Behemoth across key benchmarks.\n\n**OpenAI** [published](<URL_placeholder>) its EU Economic Blueprint, proposing a \u20ac1B AI accelerator fund and aiming to train 100M Europeans in AI skills by 2030.\n\n**Deep Cogito** [emerged](<URL_placeholder>) from stealth with Cogito v1 Preview, a family of open-source models that it claims beats the best available open models of the same size.\n\n**Google** [rolled out](<URL_placeholder>) its Deep Research feature on Gemini 2.5 Pro, claiming superior research report generation over rivals and adding new audio overview capabilities.\n\n## Link and Hyperlinking Requirements\n\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\n1. **Mandatory 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 * **Verify:** Confirm the destination directly and explicitly supports the specific information it's linked to.\n * **Prioritize:** Use primary or the most authoritative sources available.\n * **Deep Link:** Absolutely NO linking to generic homepages or main site sections (e.g., link to the specific *project page* or *announcement*, not just the company's top-level domain). An example of linking to a generic homepage would be `https://openai.com/`. Make sure you DO NOT DO THIS.\n * **Omit 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\n2. **Leverage Provided Source Materials:** Actively consult the `Current Segment Story Context` and `Additional Current Segment Source Materials` sections (if provided) to identify, verify, and select the most appropriate and accurate hyperlinks based on the available information.\n\n3. Verify link destinations - Before suggesting a link in your response, confirm the URL directly relates to the exact topic, product, or claim being discussed. You MUST NOT link to a web page that doesn't exist or a web page that would result in a HTTP 404 error when a user clicks on it. If you include a link that goes to a web page that does not exist or results in an error, it will result in us completely losing the trust of our readers. You are not allowed to make any mistakes here or insert links that are to web pages that don't exist on the internet. Think through this requirement carefully and deeply.\n\n7. Multiple sources and links can be found below in the list of other stories to evaluate and consider. Please think deeply and review this context in order to place the best links. You must read all additional source materials and think on the best links to reference for 30 minutes before you decide to add them in.\n\n8. Prefer linking to credible sources and avoid linking to unknown websites.\n\n9. You MUST ENSURE that the links you are including and i
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
anthropicApigooglePalmApihttpHeaderAuths3slackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow automates the creation of personalised newsletters by analysing incoming content submissions and generating curated digests with key insights, saving hours of manual editing for busy content creators and marketers. It processes markdown-formatted articles through an AI-powered chain using Anthropic's language model to select and summarise top stories, then structures the output for seamless delivery. Ideal for solopreneurs or small teams managing regular newsletters, it integrates form submissions and HTTP requests to handle diverse content sources efficiently.
Use this workflow when you need event-driven automation for weekly or bi-weekly newsletters from varied inputs like RSS feeds or user submissions, ensuring consistent quality without constant oversight. Avoid it for real-time news alerts or non-text content such as videos, where simpler tools suffice. Common variations include adapting the LLM chain for specific niches like tech or finance, or adding S3 storage for archiving past editions.
About this workflow
Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 87 nodes.
Source: https://github.com/VasilisPlavos/Learn/blob/906c45384956c575c32f82e5baef5b2f4bfcc9bb/automations/n8n/lucaswalter-n8n-ai-automations/ai_newsletter_generator.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
My workflow 53. Uses formTrigger, httpRequest, lmChatOpenAi, form. Event-driven trigger; 74 nodes.
Episode 23: UGC with nanobanana. Uses lmChatOpenAi, lmChatOllama, lmChatDeepSeek, lmChatOpenRouter. Event-driven trigger; 74 nodes.
This intelligent workflow automatically discovers and analyzes recently funded startups by: Monitoring multiple news sources (TechCrunch and VentureBeat) for funding announcements Using AI to extract
Content - Write Best Tools In Category Article. Uses formTrigger, httpRequest, slack, chainLlm. Event-driven trigger; 41 nodes.
Recruiting agencies, executive search firms, and in-house talent teams that want to automate candidate sourcing and prequalification. Instead of spending hours searching, scoring, and writing outreach