Din Telegram ska inte kännas som en brandslang. Men om du bevakar geopolitik (eller ett annat snabbrörligt ämne) kan råa RSS-flöden dumpa 200+ rubriker per dag på ett ställe, och då begravs det enda som spelar roll.
Analytiker börjar skumma i stället för att tänka. Företagssäkerhetsteam missar tidiga signaler för att de blir avtrubbade. Och en stressad forskningsansvarig slutar med att reagera på den högsta notisen, inte den mest brådskande. Den här automatiseringen för RSS Telegram alerts löser det.
Du får se hur arbetsflödet först filtrerar bort brus, sedan poängsätter brådska och skickar ett enda felfritt “breaking”-meddelande till Telegram som teamet faktiskt läser.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: RSS + Telegram: nyhetslarm utan brus
flowchart LR
subgraph sg0["Scheduled Interval Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Interval Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Config File"]
n2@{ icon: "mdi:cog", form: "rounded", label: "NYT World Feed Fetch", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Times RSS Intake", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Al Jazeera Feed Pull", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "BBC World Feed Fetch", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "SCMP News Feed Fetch", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "NDTV Top Stories Pull", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Feed Streams"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Normalize RSS Items"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Adaptive Keyword Filter"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Duplicate Article Check", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Dynamic Prompt Builder"]
n13@{ icon: "mdi:robot", form: "rounded", label: "Urgency Analysis Agent", pos: "b", h: 48 }
n14@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Engine", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Structured Parse Output", pos: "b", h: 48 }
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Reapply Config Data"]
n17@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Alert Threshold Check", pos: "b", h: 48 }
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Aggregate Alert Messages"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Dispatch Breaking Alerts"]
n20@{ icon: "mdi:cog", form: "rounded", label: "Log Reviewed Article", pos: "b", h: 48 }
n21@{ icon: "mdi:cog", form: "rounded", label: "Purge Aged Records", pos: "b", h: 48 }
n17 --> n18
n8 --> n9
n5 --> n8
n2 --> n8
n3 --> n8
n7 --> n8
n6 --> n8
n10 --> n11
n18 --> n19
n0 --> n1
n9 --> n10
n16 --> n17
n14 -.-> n13
n4 --> n8
n11 --> n12
n13 --> n16
n13 --> n20
n20 --> n21
n15 -.-> n13
n12 --> n13
n1 --> n2
n1 --> n3
n1 --> n4
n1 --> n5
n1 --> n6
n1 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n13,n15 ai
class n14 aiModel
class n17 decision
class n1 api
class n9,n10,n12,n16,n18 code
classDef customIcon fill:none,stroke:none
class n1,n8,n9,n10,n12,n16,n18,n19 customIcon
Problemet: breaking news begravs i “nyheter”
De flesta upplägg för nyhetsbevakning fallerar på ett tråkigt sätt. De “fungerar” (rubrikerna kommer), men de skapar ett extrajobb: sortering. Du får dussintals rutinuppdateringar, omskrivningar av samma story i olika medier och opinionstexter som ser akuta ut bara för att rubriken är dramatisk. Samtidigt kommer den verkliga signalen (en militär förflyttning, ett sanktionsbesked, en hamnstörning) blandat med allt annat. Efter några dagar stänger folk av kanalen eller skummar och missar sammanhang. Ärligt talat är det sämre än att inte ha några alerts alls.
Friktionen ökar snabbt. Här är var det brister i verkliga team.
- Hundratals RSS-poster per dag tvingar fram konstant triagering, vilket stjäl fokus från faktisk analys.
- Dubbletter dyker upp via BBC, NYT, Al Jazeera och regionala flöden, så din uppmärksamhet slösas två gånger.
- De flesta alerts saknar brådskeranking, så “rutinbevakning” och “breaking eskalering” ser lika viktiga ut.
- Om du skickar allt till AI för summering drar kostnaderna snabbt iväg och du har fortfarande inte löst prioriteringen.
Lösningen: filtrera RSS, poängsätt brådska och larma sedan i Telegram
Det här arbetsflödet körs schemalagt i n8n och hämtar från flera RSS-källor samtidigt (sex som standard). Det normaliserar varje post till ett felfritt, konsekvent format och använder sedan ett dubbelt nyckelordsfilter så att bara artiklar som matchar din region (primära nyckelord) och dina händelsetyper (sekundära nyckelord) går vidare. Därefter kontrollerar det en inbyggd n8n-datatabell för att se om artikeln redan har analyserats nyligen, vilket tar bort upprepningar automatiskt. Först därefter anropas OpenAI för att poängsätta brådska och avgöra om den ska larma. Om storyn klarar din tröskel paketerar arbetsflödet relevanta poster till ett enda prydligt Telegram-meddelande och postar det i rätt chatt utifrån din konfiguration.
Körningen startar med en schematrigger och en konfigurationsfil som laddas från Google Drive. Därifrån slås RSS-poster ihop, rensas, filtreras, avdupliceras, poängsätts av GPT-4o-mini och levereras till Telegram som ett konsoliderat “breaking”-larm. Du får signal, inte spam.
Det här får du: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du bevakar 6 RSS-flöden som genererar cirka 200 poster per dag. Att manuellt skumma ens 1 minut per rubrik blir ungefär 3 timmar dagligen, och det säger ändå inte vad som är riktigt brådskande. Med det här arbetsflödet som kör var 30:e minut filtrerar systemet normalt ner posterna till cirka 5–7 kandidater, avduplicerar till cirka 3–5 nya och skickar sedan 1–3 alerts till Telegram. Varje körning tar under en minut att exekvera, och din mänskliga tid blir “läs ett meddelande”, inte “skanna ett flöde”.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger funkar bra)
- Telegram-bot för att leverera alerts till en chatt
- OpenAI för att poängsätta brådska och kategorisera stories
- Google Drive för att hosta en JSON-konfigurationsfil
- OpenAI API-nyckel (hämta den från platform.openai.com)
Kunskapsnivå: Medel. Du kopplar konton, klistrar in några URL:er/nycklar och redigerar en liten konfigurationsfil, men du bygger ingen app.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning startar arbetsflödet. Du väljer intervall (15 minuter vid aktiva lägen, några timmar för rutinbevakning), och n8n kör automatiskt.
En konfigurationsfil laddas från Google Drive. Filen styr regionnyckelord, händelsenyckelord, poängsättningsmall, larmtröskel och till och med vilken Telegram-chatt som får slutmeddelandet, vilket gör att du kan byta region genom att ändra konfigvärden.
RSS-flöden hämtas, slås ihop och rensas. Arbetsflödet läser från källor som NYT, BBC, Al Jazeera, SCMP och regionala flöden och normaliserar sedan varje post så att filtreringen blir pålitlig.
Filtrering, avduplicering och AI-poängsättning sker i kostnadseffektiv ordning. Nyckelordsfiltrering tar bort uppenbart brus först. n8n-datatabellen stoppar upprepningar. Sedan poängsätter OpenAI (GPT-4o-mini) bara de återstående posterna och markerar vilka som förtjänar en alert.
Ett konsoliderat Telegram-larm skickas. I stället för 20 pingar får du ett meddelande grupperat efter brådskepoäng med titlar och länkar, klart för en snabb genomläsning.
Du kan enkelt ändra nyckelordslistorna för att fokusera på en annan region eller risktematik utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den schemalagda intervalltriggern
Ställ in workflow-schemat så att det regelbundet hämtar och analyserar nyhetsflashar.
- Lägg till och öppna Scheduled Interval Trigger.
- Ställ in Interval till
minutesoch minutesInterval till30. - Anslut Scheduled Interval Trigger till Retrieve Config File.
Steg 2: Anslut konfigkällan och RSS-flöden
Hämta konfigurations-JSON och hämta flera nyhetsflöden parallellt.
- Öppna Retrieve Config File och ställ in URL till
https://drive.usercontent.google.com/download?id=15tO_RUnFTDkANVocx0es7k9PZ-VxFLgc&export=download. - Säkerställ att Retrieve Config File skickar output till alla RSS-noder parallellt: NYT World Feed Fetch, Times RSS Intake, Al Jazeera Feed Pull, BBC World Feed Fetch, SCMP News Feed Fetch och NDTV Top Stories Pull.
- Verifiera att varje RSS-nod använder sina konfigurerade URL-värden.
- Anslut alla sex RSS-noder till Combine Feed Streams och ställ in numberInputs till
6.
Parallell körning: Retrieve Config File skickar output till NYT World Feed Fetch, Times RSS Intake, Al Jazeera Feed Pull, BBC World Feed Fetch, SCMP News Feed Fetch och NDTV Top Stories Pull parallellt.
Steg 3: Sätt upp normalisering av flöden och nyckelordsfiltrering
Normalisera RSS-data och filtrera artiklar baserat på nyckelord som laddas från konfigfilen.
- Anslut Combine Feed Streams till Normalize RSS Items för att ta bort HTML och standardisera fält.
- Granska Normalize RSS Items och behåll JavaScript-koden som den är för att output ska innehålla
link,title,contentSnippet,pubDateochsource. - Anslut Normalize RSS Items till Adaptive Keyword Filter.
- I Adaptive Keyword Filter, bekräfta att den refererar till konfigfilen med
$('Retrieve Config File').first().json.
primary_keywords och secondary_keywords, kommer Adaptive Keyword Filter inte att returnera några artiklar.Steg 4: Konfigurera deduplicering och dynamisk skapande av prompt
Förhindra upprepad analys och bygg AI-prompter baserat på poängsättningsregler från konfigurationen.
- Öppna Duplicate Article Check och ställ in filtervillkoret keyName till
article_linkoch keyValue till=={{ $json.link }}. - Välj er Data Table i dataTableId (ersätt
[YOUR_ID]med ert faktiska tabell-ID). - Anslut Adaptive Keyword Filter till Duplicate Article Check, och vidare till Dynamic Prompt Builder.
- I Dynamic Prompt Builder, bekräfta att den använder
$('Retrieve Config File').first().jsonoch byggersystemPromptfrånscoring_criteriaochalert_threshold.
[YOUR_ID] i Duplicate Article Check kommer dedupliceringssteget att misslyckas.Steg 5: Sätt upp AI-analysen för brådska
Analysera artiklar med AI-agenten och tolka strukturerade outputs för poängsättning.
- Anslut Dynamic Prompt Builder till Urgency Analysis Agent.
- I Urgency Analysis Agent, ställ in Text till
={{ "Analyze this article:\n\nTitle: " + $json.title + "\n\nContent: " + $json.contentSnippet + "\n\nLink: " + $json.link + "\n\nSource: " + $json.source + "\n\nPublished: " + $json.pubDate }}. - Ställ in systemmeddelandet till
={{ $json.systemPrompt }}och behåll hasOutputParser aktiverad. - Anslut OpenAI Chat Engine som språkmodell för Urgency Analysis Agent.
- Koppla Structured Parse Output som output-parser för Urgency Analysis Agent med det medföljande exempel-JSON-schemat.
Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Engine.
Structured Parse Output är en subnod till Urgency Analysis Agent; lägg till inloggningsuppgifter i OpenAI Chat Engine, inte i parsern.
Parallell körning: Urgency Analysis Agent skickar output till både Reapply Config Data och Log Reviewed Article parallellt.
Steg 6: Återapplicera konfig, styr larm och logga granskningar
Koppla på konfigdata igen, kontrollera larmtröskeln och registrera bearbetade objekt.
- Anslut Reapply Config Data till Alert Threshold Check.
- I Alert Threshold Check, ställ in boolean-villkorets leftValue till
={{ $json.output.should_alert }}. - Anslut “true”-utgången från Alert Threshold Check till Aggregate Alert Messages.
- I Log Reviewed Article, mappa fält: score →
={{ $json.output.score }}, title →=={{ $json.output.alert_topic }}, analyzed_at →={{ $now.toISO() }}, article_link →=={{ $json.output.link }}. - Anslut Log Reviewed Article till Purge Aged Records, och ställ in filtret för analyzed_at till
={{ $now.minus({days: 7}).toISO() }}med villkoretlt.
Steg 7: Konfigurera leverans av breaking alerts
Aggreggera larm till ett enda meddelande och skicka till Telegram.
- I Aggregate Alert Messages, behåll JavaScript-koden som bygger det konsoliderade
messageoch returnerar det tillsammans medconfig. - Anslut Aggregate Alert Messages till Dispatch Breaking Alerts.
- I Dispatch Breaking Alerts, ställ in Text till
=={{ $json.message }}. - Ställ in Chat ID till
={{ $json.config.telegram_chat_id }}.
Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter i Dispatch Breaking Alerts.
Steg 8: Testa och aktivera ert workflow
Verifiera end-to-end-flödet innan ni aktiverar det på ett schema.
- Klicka på Execute Workflow och bekräfta att Retrieve Config File returnerar JSON och triggar RSS-hämtningarna.
- Verifiera att Combine Feed Streams output:ar objekt och att Adaptive Keyword Filter minskar listan baserat på era konfigurerade nyckelord.
- Kontrollera att Urgency Analysis Agent returnerar strukturerad output som matchar Structured Parse Output.
- Bekräfta att ett Telegram-meddelande kommer från Dispatch Breaking Alerts när
should_alertärtrue. - När allt är verifierat, växla workflowet till Active för produktionsanvändning.
Vanliga fallgropar
- Delning i Google Drive ställer ofta till det. Om arbetsflödet inte kan hämta din config-JSON, kontrollera filens delningsinställningar och fil-ID:t som används i HTTP Request-noden.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Telegram-meddelanden kan misslyckas utan tydliga fel om du använder fel chatt-ID eller om boten saknar åtkomst. Bekräfta att boten är tillagd i chatten och kontrollera token igen i Telegram-uppgifterna.
Vanliga frågor
Cirka en timme om du redan har dina nycklar och boten redo.
Nej. Du kommer främst att klistra in uppgifter, ange RSS-URL:er och redigera en liten konfigurationsfil för nyckelord.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod i n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader (det här arbetsflödet landar ofta på cirka 3–5 USD/månad eftersom bara ett fåtal artiklar poängsätts per körning).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och kör n8n bra. Self-hosting ger dig obegränsade exekveringar men kräver grundläggande serverhantering.
Ja, och det är hela poängen. Byt ut arrayerna med primära och sekundära nyckelord i Google Drive config-JSON:en och justera sedan RSS-flödes-URL:erna så att de matchar regionen. Du kan också ändra larmtröskeln så att Telegram bara får poster med brådskepoäng “7+”, eller sänka den för att fånga fler tidiga signaler. Om du vill ha separata chattar per region uppdaterar du Telegram-chatt-ID:t i konfigurationen och kör flera kopior parallellt.
Oftast handlar det om bot-token eller chattbehörigheter. Skapa en ny bot-token i BotFather vid behov och uppdatera sedan Telegram-uppgifterna i n8n. Bekräfta också att boten faktiskt är tillagd i målchatten (särskilt för gruppchattar) och att du använder rätt chatt-ID från din konfiguration.
Den hanterar utan problem 200+ RSS-poster per exekvering, och det går bra att lägga till fler flöden så länge din n8n-instans och ditt schema hänger med.
Ofta, ja, eftersom det här arbetsflödet behöver förgreningslogik, lagring för avduplicering och ett “analysera först efter filtrering”-mönster som är krångligt (och dyrt) i enklare verktyg. n8n ger dig också self-hosting-spåret, vilket spelar roll om du kör var 15–30 minut. Zapier eller Make kan fortfarande funka för en enkel “RSS till Telegram”-push, men du växer sannolikt ur det så fort du lägger till poängsättning och dubblettspårning. Om du tvekar, ställ dig en fråga: vill du ha en ström av rubriker eller ett system som hjälper dig fatta beslut? Prata med en automationsexpert så hjälper vi dig att välja snabbt.
Sätt upp det en gång, finjustera dina nyckelord, och arbetsflödet sköter den tråkiga filtreringen hela dagen. Du får alerten som betyder något, när det betyder något.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.