Build an AI-Powered News Digest Pipeline

Automate RSS fetching, AI summarization, and Telegram delivery with n8n.

Introduction

30 Second Summary

Keeping up with tech news is overwhelming. Hundreds of articles drop daily, and manually sifting through them steals time you could spend building.

In this project, you will build an automated pipeline that fetches tech news, uses a local AI model to summarize and categorize each article, stores the results in a structured database, and sends you a daily digest on your phone.

What You'll Build

A self-hosted n8n workflow that connects an RSS feed, a local Llama 3.2 model via Ollama, a Notion database, and a Telegram bot into a fully automated news processing pipeline.

By the end of this project, you'll have:

  • A self-hosted n8n instance running an automated workflow on your Windows machine.
  • A Notion database populated with AI-summarized and categorized articles from your local Llama 3.2 model.
  • A Telegram bot that delivers formatted digest notifications to your phone.
  • Secret Mission: Add a cloud LLM (Groq) with smart routing that sends longer articles to a faster model.

Are there any prerequisites?

You should have a basic understanding of APIs and JSON. You also need Node.js, Ollama with Llama 3.2 3B and TinyLlama installed locally, and a Telegram account ready to go.

Set Up n8n and External Services

Your news digest pipeline needs three external services working together: an automation engine to orchestrate the workflow, a database to store processed articles, and a messaging bot to deliver notifications.

In this step, you'll install n8n as your local automation platform, create a Notion integration for structured article storage, and set up a Telegram bot for mobile notifications.

In this step, get ready to:
  • Install and launch n8n on your local machine.
  • Create a Notion integration and database for storing articles.
  • Create a Telegram bot and obtain your chat ID.
Install and launch n8n

n8n is a workflow automation platform you can self-host on your own machine. It provides a visual canvas where you connect nodes to build data pipelines without writing boilerplate glue code.

  • Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
  • Type PowerShell and press Enter to open it.
  • Install n8n globally by running this command:
npm install n8n -g

What does this command do?

The -g flag installs n8n globally on your system, making the n8n command available from any terminal window. This is the official self-hosted installation method for n8n via npm.

  • Wait for the installation to complete. You should see a success message with no errors.

Seeing permission errors?

On Windows, close PowerShell and reopen it by right-clicking the PowerShell icon and selecting Run as administrator. Then retry the install command.

If you see errors about your Node.js version, confirm your version is between 20.19 and 24.x by running node --version.

Help me fix my n8n installation error.

  • Start n8n by running this command:
n8n start

What does this command do?

This launches the n8n server on your machine. It runs a local web application you access through your browser. The terminal will display startup logs and stay occupied while n8n runs.

  • Open your browser and navigate to http://localhost:5678.
  • You should see the n8n setup screen asking you to create an owner account.
  • Enter an email address and password to create your account.
  • Click Next to complete the setup and land on the n8n dashboard.

Browser shows nothing at localhost:5678?

Make sure the terminal where you ran n8n start is still running. If you closed it or pressed Ctrl+C, n8n stopped. Rerun the command.

If you see a connection refused error, wait 10-15 seconds for n8n to finish starting up, then refresh the page.

Help me get n8n running in my browser.

Now confirm that Ollama is still running with your Llama 3.2 model available.

  • Open a second terminal window (your first terminal is busy running n8n).
  • Confirm Ollama has Llama 3.2 available by running:
ollama list
  • You should see llama3.2 listed in the output alongside any other models you have installed.

Don't see llama3.2 in the list?

If ollama list shows no models or the command isn't recognized, make sure Ollama is running. Open the Ollama desktop app and try the command again.

Help me get Ollama running with Llama 3.2.

Create Notion integration and database

n8n needs permission to write to your Notion workspace. You'll create an internal integration (a secure connection between n8n and Notion) and a structured database where your AI-summarized articles will land.

  • Open https://www.notion.so/profile/integrations in your browser.
  • Click + New integration.
  • Enter n8n integration as the integration name.
  • Select your workspace from the dropdown.
  • Click Submit.
  • On the next page, find the Secrets tab and copy the Internal Integration Secret.
  • Paste this secret somewhere safe (a text file or note). You'll need it when configuring n8n later.

What is an internal integration?

A Notion internal integration gives external tools (like n8n) permission to read and write data in your workspace. It uses a simple token for authentication, which is perfect for self-hosted tools that don't need a public URL.

The integration can only access pages you explicitly share with it. Nothing else in your workspace is visible.

Next, create the database where your summarized articles will be stored.

  • Go to your Notion workspace and create a new full-page database.
  • Name it AI News Digest.
  • Add the following properties to the database:
  • Title (title type). This is the default property.
  • Summary (text type). Holds the AI-generated summary.
  • Category (select type). Add these options: AI, Web Dev, Cloud, DevOps, Other.
  • Source (URL type). Stores the original article link.
  • Date (date type). Records when the article was published.

Finally, share this database with your integration so n8n can access it.

  • Open the AI News Digest database page.
  • Click the three-dot menu ••• in the top-right corner.
  • Select Connections.
  • Click Connect to and search for n8n integration.
  • Select it to grant access. Confirm when prompted.

Can't find your integration in the Connections menu?

Make sure you created the integration in the same workspace where your database lives. The integration name must match exactly what you typed earlier.

If you still don't see it, try refreshing the Notion page and searching again.

Help me connect my Notion integration to my database.

Create Telegram bot and get chat ID

Telegram bots are messaging accounts controlled by code. You'll create one through Telegram's official bot management tool, then retrieve the unique chat ID that tells your bot where to send messages.

  • Open Telegram on your phone or desktop app.
  • Search for @BotFather and start a chat with it.
  • Send the message /newbot.
  • When BotFather asks for a name, type News Digest Bot.
  • When it asks for a username, enter a unique name that ends with bot (for example, mynewsdigest_bot). The username must be between 5 and 32 characters.
  • BotFather will reply with a message containing your bot token. Copy this token and save it somewhere safe.

What is a bot token?

The bot token is a unique string that authenticates your bot with Telegram's API. Anyone with this token can control the bot, so treat it like a password. You'll paste it into n8n later as a credential.

Now you need your personal chat ID so the bot knows where to send messages.

  • In Telegram, search for the username you just created (e.g. mynewsdigest_bot) and open the chat.
  • Click Start and send any message (like "hello").
  • Open your browser and visit the following URL, replacing YOUR_BOT_TOKEN_HERE with the token you copied:
https://api.telegram.org/botYOUR_BOT_TOKEN_HERE/getUpdates
  • In the JSON response, look for the chat object and find the id field inside it. This number is your chat ID.
  • Copy your chat ID and save it alongside your bot token.

Finding the chat ID in the JSON

The response looks like nested JSON. Look for "chat":{"id":123456789,...}. The number after "id": is your chat ID. It's typically a 9-10 digit number.

Seeing an empty result array?

If the JSON response shows "result":[] with no messages, go back to Telegram and send another message to your bot. Then refresh the getUpdates URL in your browser.

Make sure you replaced YOUR_BOT_TOKEN_HERE with your actual token (no angle brackets or extra spaces).

Help me find my Telegram chat ID.

Your automation engine is running, your database is ready, and your notification bot is live. Next up, you'll build the RSS feed fetcher that pulls fresh articles into your pipeline.

Build the RSS Feed Fetcher

Your services are ready and your n8n instance is running. Now it's time to build the first piece of your automation pipeline: the data source.

Every automation needs a trigger. Your pipeline will pull articles from a tech news RSS feed on a schedule, giving your AI a steady stream of content to summarize.

In this step, get ready to:
  • Create a new n8n workflow and add an RSS Feed Trigger.
  • Add a Limit node to control how many articles are processed.
  • Test the fetcher and confirm articles are flowing in.
Create a workflow and add the RSS Feed Trigger

A workflow in n8n is a canvas where you connect nodes together. Each node performs one job, and data flows between them.

  • In your browser, switch back to the n8n editor at http://localhost:5678.
  • Click Create Workflow to start a new workflow.
  • Click on the workflow name at the top of the canvas and rename it to AI News Digest Pipeline.

Now you need to add the trigger that kicks off your pipeline.

  • Click the + button on the canvas (or press Tab) to open the node search panel.
  • Search for RSS Feed Trigger and click it to add it to the canvas.
  • In the node configuration panel, set Feed URL to https://hnrss.org/newest?points=100.
  • Under Poll Times, set Mode to Every Hour.
  • Set Minute to 0.

What is an RSS Feed Trigger?

An RSS Feed Trigger polls a news feed URL on a schedule and fires whenever new articles appear. It handles both the timing and deduplication for you, so your workflow only processes articles it hasn't seen before.

The Hacker News feed at hnrss.org filters stories by point threshold. Setting points=100 ensures you only get highly-upvoted articles worth summarizing.

Add a Limit node to control batch size

Processing too many articles at once can overwhelm your local LLM. A Limit node caps how many items pass through during each run.

  • Click the + button on the right edge of the RSS Feed Trigger node to add a connected node.
  • Search for Limit and click it to add it after the trigger.
  • In the Limit node settings, set Max Items to 5.

Why limit to 5 items?

Your local Llama 3.2 model processes articles one at a time. Limiting to 5 keeps each test run fast (under a minute) while still giving you enough data to verify the pipeline works end-to-end.

Once everything is working, you can increase this number or remove the Limit node entirely.

Test the RSS fetcher

Before connecting the AI step, confirm that articles are flowing into your workflow correctly.

  • Click Test Workflow in the top right corner of the canvas to execute the workflow manually.
  • Wait a few seconds for the execution to complete. You should see green indicators on both nodes showing items passed through.
  • Click on the Limit node to open its output panel.

You should see up to 5 items, each containing fields like title, link, contentSnippet, and pubDate.

What do these fields mean?

  • title is the article headline you'll send to the AI for summarization.
  • contentSnippet is a plain-text excerpt of the article. This gives your LLM enough context to generate a useful summary.
  • link is the URL you'll store in Notion and include in Telegram messages.
  • pubDate is the publication timestamp for organizing entries by date.

Not seeing any output items?

  • Double-check the Feed URL is exactly https://hnrss.org/newest?points=100 with no trailing spaces.
  • Make sure the Limit node is connected to the RSS Feed Trigger. You should see a line (edge) between them on the canvas.
  • If you see 0 items, the feed might be temporarily empty. Try changing the URL to https://hnrss.org/newest?points=50 to lower the threshold temporarily, then switch back after confirming it works.

Help me troubleshoot why my RSS Feed Trigger isn't returning any articles in n8n

Your data source is live and flowing. Next up, you'll wire these articles into your local Llama 3.2 model so it can summarize and categorize each one automatically.

Wire Up the AI Summarization Pipeline

Your workflow can now fetch the latest articles from Hacker News. The next challenge is turning those raw article titles and snippets into structured, useful summaries.

In this step, you will connect your local Ollama instance to n8n and use a Basic LLM Chain node to send each article through Llama 3.2 for summarization and categorization.

In this step, get ready to:
  • Create Ollama credentials so n8n can talk to your local LLM.
  • Add a Basic LLM Chain node with a structured prompt for summarization.
  • Test the AI pipeline and confirm structured output.
Set up Ollama credentials in n8n

Before n8n can send prompts to your local Llama 3.2 model, it needs a credential that tells it where Ollama is running.

  • In the n8n editor, click the Credentials section in the left sidebar.
  • Click Add Credential.
  • Search for Ollama and select it.
  • Set the Base URL to http://127.0.0.1:11434.
  • Leave the API Key field empty (no authentication is needed for local Ollama).
  • Click Save to test and save the credential.

Why 127.0.0.1 instead of localhost?

On some Windows systems, localhost resolves to an IPv6 address (::1) that Ollama does not listen on. Using 127.0.0.1 forces IPv4 and avoids connection errors.

Seeing a connection error when saving?

Make sure Ollama is running in your other terminal window. If you closed it, open a new terminal and run ollama list to confirm it responds.

help me fix an Ollama connection error in n8n

Add the Basic LLM Chain with Ollama Chat Model

The Basic LLM Chain node lets you send a prompt to an LLM and get a text response. You will give it a structured prompt so that Llama 3.2 returns a consistent format you can parse later.

  • Switch back to your AI News Digest Pipeline workflow in the n8n editor.
  • Click the + button on the output of your Limit node to add a new node.
  • Search for Basic LLM Chain and add it to the canvas.
  • In the Prompt setting, select Define below.
  • Paste the following prompt into the text field:
Analyze the following article and provide:
1. A 2-3 sentence summary
2. A category (exactly one of: AI, Web Dev, Cloud, DevOps, Other)

Format your response as:
SUMMARY: [your summary]
CATEGORY: [category]

Article title: {{ $json.title }}
Article content: {{ $json.contentSnippet }}

What does this prompt do?

The prompt instructs Llama 3.2 to analyze each article and return two structured fields: a short summary and a single category label.

The {{ $json.title }} and {{ $json.contentSnippet }} expressions pull real data from the RSS feed items flowing through your workflow. n8n replaces these expressions with the actual article data at runtime.

Now you need to attach the Ollama Chat Model as the language model for this chain.

  • Inside the Basic LLM Chain node panel, look for the Model connector (or click the + beneath the node to add a sub-node).
  • Search for Ollama Chat Model and add it as the model sub-node.
  • In the Ollama Chat Model settings, select your Ollama credential from the dropdown.
  • For Model, select llama3.2 from the list (or type it manually if it does not appear in the dropdown).
  • Set Sampling Temperature to 0.3.

Why set temperature to 0.3?

A lower temperature makes the model's output more consistent and factual. For summarization tasks where you want predictable formatting, a value around 0.3 works well.

Higher values (closer to 1.0) introduce more randomness, which is better for creative writing but can break your structured output format.

Test the AI pipeline

Time to run the workflow end-to-end and see if Llama 3.2 produces the structured responses you need.

  • Click Execute Workflow at the bottom of the n8n canvas to run the full workflow manually.
  • Wait for the execution to complete. This may take a minute since Llama 3.2 is running locally.
  • Click on the Basic LLM Chain node to inspect its output.
  • Verify that each item in the output contains a response with SUMMARY: and CATEGORY: fields.

What should I see?

Each output item should contain a text response that looks something like:

SUMMARY: This article discusses a new open-source tool for monitoring Kubernetes clusters. It provides real-time metrics and alerting capabilities.
CATEGORY: DevOps

The exact content will differ based on the current Hacker News articles, but the format should be consistent across all items.

Output format looks inconsistent?

If some responses are missing the SUMMARY: or CATEGORY: labels, try lowering the temperature further (to 0.1) or refining the prompt to emphasize the format requirements.

If you see connection errors, make sure Ollama is still running in your other terminal window.

help me troubleshoot inconsistent LLM output in my n8n workflow

Your AI summarization pipeline is working. Next up, you will parse that structured output and store the results in your Notion database.

Store Results in Notion

Your AI pipeline is producing structured summaries and categories for each article. The next challenge is getting those results out of n8n and into a permanent, searchable home.

In this step, you will parse the AI output into clean data fields and send them to your Notion database. This gives you a categorized knowledge base that grows automatically with each workflow run.

In this step, get ready to:
  • Set up Notion credentials in n8n.
  • Add a Code node that parses the AI response into structured fields.
  • Connect a Notion node to create database pages from the parsed data.
Set up Notion credentials in n8n

Before n8n can write to your Notion database, it needs an authorized connection. You will add your Internal Integration Secret as a credential so n8n can authenticate with the Notion API.

  • In n8n, click Add Credential (from the left sidebar or via a node setup prompt).
  • Search for Notion and select it.
  • Select Internal Integration Secret as the authentication method.
  • Paste the integration secret you copied from your Notion integration's Secrets tab in Step 1.
  • Click Save to test and verify the connection.

What is this credential doing?

The Internal Integration Secret acts as a password that lets n8n read and write to any Notion pages you have shared with your integration. Without it, the Notion node cannot access your database.

Connection failing?

Make sure you copied the full token from the Secrets tab of your integration (not the integration ID). Also confirm the integration is still connected to your workspace.

help me troubleshoot my Notion credential connection in n8n

Add a Code node to parse AI output

The Basic LLM Chain returns a single text string containing both the summary and category. You need to extract those values into separate fields so the Notion node can map them to the correct database properties.

  • Add a Code node to the canvas and connect it after the Basic LLM Chain node.
  • Set Language to JavaScript.
  • Replace the default code with the following:
const items = $input.all();
const results = [];

for (const item of items) {
  // Get the AI response text from the LLM Chain output
  const aiResponse = item.json.text || item.json.output || '';

  // Extract summary and category using regex
  const summaryMatch = aiResponse.match(/SUMMARY:\s*([\s\S]*?)(?=CATEGORY:|$)/i);
  const categoryMatch = aiResponse.match(/CATEGORY:\s*(.*)/i);

  const summary = summaryMatch ? summaryMatch[1].trim() : 'No summary available';
  let category = categoryMatch ? categoryMatch[1].trim() : 'Other';

  // Validate category against allowed values
  const validCategories = ['AI', 'Web Dev', 'Cloud', 'DevOps', 'Other'];
  if (!validCategories.includes(category)) {
    category = 'Other';
  }

  // Build structured output for downstream nodes
  results.push({
    json: {
      title: item.json.title || $('RSS Feed Trigger').item.json.title,
      summary: summary,
      category: category,
      link: item.json.link || $('RSS Feed Trigger').item.json.link,
      pubDate: item.json.pubDate || $('RSS Feed Trigger').item.json.pubDate
    }
  });
}

return results;

What does this code do?

This script loops through each item from the Basic LLM Chain and extracts the structured data your prompt asked for.

  • `$input.all()` grabs all incoming items from the previous node.
  • The two regex patterns pull out everything after SUMMARY: and CATEGORY: from the AI response text.
  • The validCategories check ensures the AI did not hallucinate a category outside your Notion select options.
  • The fallback expressions like $('RSS Feed Trigger').item.json.title reach back to the original RSS data in case the LLM Chain did not pass those fields through.
  • Click Execute Node (or execute the full workflow) to test the Code node.
  • In the output panel, verify each item has separate title, summary, category, link, and pubDate fields with real values.

Seeing empty or undefined fields?

If summary shows "No summary available", your AI response may not include the exact SUMMARY: label. Check the Basic LLM Chain output to see how the model formatted its response and adjust the prompt if needed.

If title or link are undefined, the LLM Chain may not be passing through the original RSS fields. The fallback $('RSS Feed Trigger') expression handles this by referencing the trigger node directly.

help me debug my n8n Code node that is returning empty fields

✔️ Awesome, I've got everything!

Great. Make sure you have saved the Code node before moving on.

ⓧ I'd like to double check the full code

Here is the complete Code node script for comparison:

const items = $input.all();
const results = [];

for (const item of items) {
  // Get the AI response text from the LLM Chain output
  const aiResponse = item.json.text || item.json.output || '';

  // Extract summary and category using regex
  const summaryMatch = aiResponse.match(/SUMMARY:\s*([\s\S]*?)(?=CATEGORY:|$)/i);
  const categoryMatch = aiResponse.match(/CATEGORY:\s*(.*)/i);

  const summary = summaryMatch ? summaryMatch[1].trim() : 'No summary available';
  let category = categoryMatch ? categoryMatch[1].trim() : 'Other';

  // Validate category against allowed values
  const validCategories = ['AI', 'Web Dev', 'Cloud', 'DevOps', 'Other'];
  if (!validCategories.includes(category)) {
    category = 'Other';
  }

  // Build structured output for downstream nodes
  results.push({
    json: {
      title: item.json.title || $('RSS Feed Trigger').item.json.title,
      summary: summary,
      category: category,
      link: item.json.link || $('RSS Feed Trigger').item.json.link,
      pubDate: item.json.pubDate || $('RSS Feed Trigger').item.json.pubDate
    }
  });
}

return results;
Add the Notion node to create database pages

Now that your data is cleanly structured, you can send each article to Notion as a new page in your AI News Digest database.

  • Add a Notion node to the canvas and connect it after the Code node.
  • Select your Notion credential from the dropdown.
  • Set Resource to Database Page.
  • Set Operation to Create.
  • In the Database dropdown, select AI News Digest. It should appear because you shared the page with your integration in Step 1.

Next, map each database property to the corresponding field from the Code node output.

  • Set Title to {{ $json.title }}.
  • Set Summary to {{ $json.summary }}.
  • Set Category to {{ $json.category }}.
  • Set Source to {{ $json.link }}.
  • Set Date to {{ $json.pubDate }}.

What are these expressions?

The {{ $json.fieldName }} syntax is n8n's expression language. It pulls values from the previous node's output. Each expression maps directly to a field your Code node produces.

  • Click Execute Workflow to run the full pipeline.
  • Open your AI News Digest database in Notion in your browser.
  • Verify new entries have appeared with populated Title, Summary, Category, Source, and Date fields.

Database not showing in the dropdown?

The most common cause is that you have not shared the database page with your integration. Open the database page in Notion, click the three-dot menu, select Connections, then Connect to, and choose your n8n integration.

If pages are created but fields are empty, double check that the property names in Notion match exactly what you mapped (Title, Summary, Category, Source, Date).

help me fix my Notion node in n8n

Your articles are now being stored in a structured, searchable Notion database. Next up, you will wire up a Telegram bot to deliver a formatted digest notification straight to your phone.

Send Telegram Digest Notification

Your workflow now fetches articles, summarizes them with AI, and stores structured results in Notion.

The final piece is delivery. You will connect a Telegram bot so that each processed article lands in your chat as a formatted digest message.

In this step, get ready to:
  • Add Telegram credentials to n8n.
  • Configure a Telegram Send Message node with a formatted digest template.
  • Test the end-to-end pipeline and activate it on a schedule.
Set up Telegram credentials

Before n8n can send messages through your bot, it needs the bot token you received from BotFather.

  • In your n8n editor at http://localhost:5678, click Add Credential from the left sidebar.
  • Search for Telegram and select the Telegram API credential type.
  • Paste your bot token (the Access Token from BotFather) into the Access Token field.
  • Click Save.

What does n8n do with this token?

The bot token authenticates n8n as your Telegram bot. Every time the workflow runs, n8n uses this token to call the Telegram Bot API and send messages on behalf of your bot.

Credential not saving?

Make sure you pasted the full token string (it looks like 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11). If you accidentally added spaces before or after, remove them and try again.

Help me troubleshoot my Telegram credential

Add Telegram Send Message node

With the credential ready, you can add the Telegram node to the end of your workflow and configure it to send a formatted digest for each article.

  • Return to your AI News Digest Pipeline workflow canvas.
  • Click the + button on the right side of the Notion node to add a new node after it.
  • Search for Telegram and select the Telegram node.
  • Select your Telegram credential from the dropdown.
  • Set Resource to Message.
  • Set Operation to Send Message.
  • In the Chat ID field, paste the chat ID you obtained in Step 1 (the numeric value from the getUpdates response).
  • In the Text field, paste the following formatted message template:
New Article Digest

Title: {{ $json.title }}

Summary: {{ $json.summary }}

Category: {{ $json.category }}

Read more: {{ $json.link }}

What do these expressions do?

The {{ $json.fieldName }} syntax is n8n's expression language. It pulls values from the current item flowing through the workflow. Since the Telegram node sits after the Code node, $json contains the parsed fields: title, summary, category, and link.

Each article processed by the workflow generates its own Telegram message with this template filled in.

Text field not accepting expressions?

Make sure the Text field is set to expression mode (click the toggle or curly braces icon next to the field). If you paste the template in fixed-text mode, the {{ }} syntax will be sent as literal text instead of being evaluated.

Help me switch to expression mode

Test the complete pipeline and activate

Everything is wired together. Time to run the full workflow end-to-end and confirm each node does its job.

  • Click Execute Workflow (or press the test button in the canvas header) to run the entire pipeline manually.

The workflow fetches RSS articles, passes them through Ollama for summarization, parses the output, creates Notion pages, and sends Telegram messages.

  • Open Telegram on your phone or desktop and check the chat with your News Digest Bot.
  • Verify you received formatted messages with a title, summary, category, and link for each article.
  • Switch to your Notion workspace and open the AI News Digest database.
  • Confirm new entries appear with filled-in Title, Summary, Category, Source, and Date properties.

What should I see?

You should receive up to 5 Telegram messages (one per article from the Limit node). Each message contains a headline, a 2-3 sentence AI summary, a category label, and a clickable link back to the original article.

In Notion, you should see matching rows with the same data stored in your database properties.

  • Once both checks pass, click Publish in the top-right corner of the canvas to activate your workflow on its schedule.

What does publishing do?

Publishing makes the workflow live. The RSS Feed Trigger will now poll for new articles every hour at minute 0, process them through the AI pipeline, and deliver digests to your Telegram automatically.

Not receiving Telegram messages?

Double-check that your Chat ID is correct. The chat ID is a numeric value (not your username). Revisit the getUpdates URL from Step 1 and look for the chat.id field.

Also confirm you started a conversation with your bot in Telegram before running the workflow. The bot cannot message you until you send it at least one message first.

Help me figure out why messages aren't arriving

Secret mission

Add Groq Cloud LLM with Smart Routing

Your pipeline works great with a local LLM, but what happens when articles get long? In this secret mission, you'll add Groq as a cloud LLM alternative and build a Switch node that intelligently routes articles to different models based on content length. Short articles stay local. Long articles fly to the cloud.

Clean Up Your Resources

Clean Up Your Resources

This project runs entirely on your local machine with free-tier services. There are no ongoing cloud costs. Decide whether to keep your resources running, pause them to come back later, or delete them entirely.

Resources you used:

  • n8n instance (installed globally via npm, running at http://localhost:5678).
  • Notion integration ("n8n integration") and "AI News Digest" database.
  • Telegram bot (created via @BotFather).
  • Groq API key (Secret Mission, free tier with rate limits).

Keep everything running

No action needed. Choose this if you're still actively building or want the workflow to keep running on schedule.

  • Leave n8n running in the terminal window. It will continue to execute your scheduled workflow automatically.
  • Your Notion integration, database, and Telegram bot all persist at no cost.
  • Your Groq API key remains active on the free tier.

Pause - I'll come back to this later

Shut down n8n to free up your terminal. Your workflows are saved locally and will resume when you restart.

  • In the terminal where n8n is running, press Ctrl+C to stop the process.
  • When you're ready to resume, open a terminal and run:
n8n start
  • Your Notion integration, Telegram bot, and Groq API key all persist and require no action.

Delete - I don't want to use this again

Remove all project resources and start fresh. Follow each step below to fully clean up.

  • Stop n8n by pressing Ctrl+C in the terminal where it is running.
  • Uninstall n8n globally by running:
npm uninstall n8n -g
  • Delete the Notion integration: go to https://www.notion.so/profile/integrations, open your "n8n integration", and delete it from the integration settings.
  • Delete the "AI News Digest" database page in Notion by opening it and moving it to Trash.
  • Delete your Telegram bot: open a chat with @BotFather in Telegram and send the command:
/deletebot
  • Follow BotFather's prompts to select your News Digest Bot and confirm deletion. This is permanent and cannot be undone.
  • Delete your Groq API key (Secret Mission): go to https://console.groq.com/keys, find your key in the list, and delete or revoke it.

That's a Wrap!

That's a Wrap!

Nice work! You've just built a fully automated AI-powered news digest pipeline that fetches, summarizes, and delivers tech articles without any manual effort.

You've learned how to:

  • Built a self-hosted n8n workflow automation platform and connected it to multiple external services using credential management.
  • Integrated a local LLM (Llama 3.2 via Ollama) for AI-powered text summarization and wired it into a Notion knowledge base and Telegram bot notification system.
  • Mastered data transformation with Code nodes, RSS feed polling with scheduled triggers, and multi-service orchestration across 6+ connected nodes.
  • Secret Mission: Added Groq as a cloud LLM alternative and built a Switch node that routes articles to different models based on content length.

Ready to quiz yourself?