Create AI-curated news digests with GPT-5.1, NewsAPI, Tavily & Telegram
UnknownUnknown. This template uses community nodes we can't verify statically. Uses community nodes that can't be verified statically (unverified community packages are off by default in 3.0). Static check, last run 2026-10-19.
Community nodes
These come from third-party npm packages. In n8n 3.0 unverified community packages are off by default (N8N_UNVERIFIED_PACKAGES_ENABLED=false).
@tavily/n8n-nodes-tavily(Tavily)
Nodes used (11)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - HTTP Request
n8n-nodes-base.httpRequest - Telegram
n8n-nodes-base.telegram - Split Out
n8n-nodes-base.splitOut - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Tavily Tool
@tavily/n8n-nodes-tavily.tavilyTool - Aggregate
n8n-nodes-base.aggregate - Edit Fields (Set)
n8n-nodes-base.set - AI Agent
@n8n/n8n-nodes-langchain.agent - OpenAI
@n8n/n8n-nodes-langchain.openAi - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
What it does
Overview Staying up to date with fast-moving topics like AI, machine learning, research, or your specific industry can be tricky. To solve this for myself (for me, it is mostly AI and automation topics), I built and use this n8n workflow: it pulls fresh articles using NewsAPI based on my topics of interest, lets an AI agent pick the 5 most relevant ones, enriches them with a Tavily search engine, and sends a clean, readable newsletter straight to Telegram - in the language you specify. In this post, I'll: - Explain what the workflow does and why it's useful - Show you how to import and configure it step by step - Highlight the main advantages and common customisations - Outline concrete next steps and improvements After following this guide, you'll end up with a fully automated weekly newsletter that delivers relevant news on the topics you care about - without any manual work. This is ideal if you already run n8n and want a mostly no‑code way to get a curated weekly digest in Telegram. What this workflow does At a high level, this workflow: - Runs on a schedule (weekly at 9:00 on Sundays by default) - Automatically finds recent, relevant news via NewsAPI for your topics of interest - Lets AI select the top 5 most relevant news - Uses a Tavily-powered AI agent to fact-check and enrich each article - Aggregates the final results into a compact newsletter in the language you specify - Sends them as a Markdown-formatted Telegram message The result: every week you get an AI-picked, enriched mini-newsletter with the latest news based on your own interests - delivered in Telegram. Requirements To run this workflow, you need: - NewsAPI key Create an account here and generate an API key - it is free. - Tavily API key You can sign up here and create an API key. They also have a generous free tier. - OpenAI API key Get one from OpenAI - we need this for the LLM agent calls. - Telegram bot + chat ID A Telegram bot (via BotFather) and the chat/channel ID where you want the newsletter. It is also free. See for example here how to set that up. How it works The exact logic of the workflow is as follows: - Schedule Trigger Runs the workflow on a fixed interval (in this version: weekly, at 9:00 on Sundays). - Set topics and language A Set node that defines topics (my default is AI,n8n - use a comma-separated list) and language (here I have English, but choose what you prefer). Change these to match your interests (e.g. health,fitness, macroeconomics,markets, climate,policy, or anything you care about). - Call NewsAPI HTTP Request node calling the NewsAPI API. It uses as arguments: - from: last 7 days¹ - q: the query, built from your topics (topics like AI,n8n become AI OR n8n expected by the API)² - sortBy: relevancy - the most relevant ones at the top of the results returned Auth is handled via an httpQueryAuth credential, where your NewsAPI key is passed as a query parameter. - AI Topic Selector An OpenAI - Message a model node using gpt-5.1 via your OpenAI API key with the following prompt: You are an assistant that selects the most relevant news articles for a user. Instructions: 1. Choose the 5 most relevant non-overlapping articles based on the user topics. 2. For each article, provide: - title - short summary (1–2 sentences) - source name - url 3. Output the results in the language specified by the user. Output as a "articles" JSON array of objects, each with "title", "summary", "source" and "url". User topics of interest: {{ $('Set topics and language').item.json.topics }} Output language: {{ $('Set topics and language').item.json.language }} NewsAPI articles: {{ $json.articles.map( article => Title: ${article.title} Description: ${article.description} Content: ${article.content} Source: ${article.source.name} URL: ${article.url} ).join('\n---\n') }} The prompt instructs the model to read your topics and language, look at all articles from the NewsAPI call (it returns a maximum of 100), select the 5 most relevant, non-overlapping ar