Din “snabbkoll” av nyheterna blir till 40 öppna flikar, en halvläst Reddit-tråd och den där gnagande känslan av att du missade den enda artikeln du faktiskt behövde. Sedan gör du om det i morgon. Och på något sätt är det här systemet.
Det här drabbar marknadsansvariga som behöver snabba vinklar, men även operatörer och byråägare känner av det. En enkel automation för RSS Discord digest ger dig en daglig briefing med prioriterade nyheter som teamet faktiskt läser, istället för en länklista som ingen öppnar.
Nedan är det exakta n8n-workflowet bakom: hur det hämtar RSS och Reddit, tar bort dubbletter, ber Gemini poängsätta relevans och sedan postar toppnyheterna till Discord varje morgon.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: RSS till Discord: nyhetssammandrag som läses
flowchart LR
subgraph sg0["Scheduled Morning Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Morning Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Fetch Phoenix Times Feed", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Retrieve AZ Free Feed", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Pull Phoenix Reddit Feed", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Pull Scottsdale Reddit Feed", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Pull Arizona Reddit Feed", pos: "b", h: 48 }
n6["<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 RSS Streams"]
n7["<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/>Cleanse and Prep Items"]
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/code.svg' width='40' height='40' /></div><br/>Assemble Gemini Payload"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Gemini Relevance Request"]
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/>Apply Relevance Scores"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Rank by Relevance", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Cap to Top Five", pos: "b", h: 48 }
n13["<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/>Compose Discord Digest"]
n14["<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/discord.svg' width='40' height='40' /></div><br/>Dispatch to Discord"]
n12 --> n13
n10 --> n11
n2 --> n6
n0 --> n1
n0 --> n2
n0 --> n3
n0 --> n4
n0 --> n5
n11 --> n12
n8 --> n9
n5 --> n6
n3 --> n6
n6 --> n7
n7 --> n8
n1 --> n6
n4 --> n6
n13 --> n14
n9 --> n10
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 n9 api
class n7,n8,n10,n13 code
classDef customIcon fill:none,stroke:none
class n6,n7,n8,n9,n10,n13,n14 customIcon
Problemet: för många flöden, för lite signal
Lokala nyheter är utspridda. Stadstidningen har en vinkel, en oberoende aktör en annan, och Reddit snappar ofta upp det som ingen hunnit skriva om än. Så du försöker hänga med genom att kolla “bara några flöden”, vilket blir en daglig rutin av att skanna rubriker, klicka på dubbletter och tvivla på vad som faktiskt är viktigt. Det värsta är den mentala belastningen. Du läser inte bara – du filtrerar, rangordnar och sammanfattar i huvudet innan du ens har börjat jobba på riktigt. Missar du en dag känns det som att du hamnar efter.
Det blir snabbt mycket. Här är vad som brukar fallera i praktiken.
- Du lägger cirka 30–45 minuter varje morgon på att hoppa mellan RSS-läsare, Reddit och bokmärken.
- Dubbletter dyker upp med lite olika rubriker, så du slösar tid på att öppna samma sak två gånger.
- Team saknar en gemensam källa för “vad som är viktigt i dag”, vilket gör att beslut tas på ofullständig kontext.
- Även när du samlar länkar måste du fortfarande formatera och posta dem någonstans där folk faktiskt ser dem.
Lösningen: en daglig prioriterad digest som postas till Discord
Det här workflowet förvandlar utspridda källor till en enda felfri briefing, levererad där teamet redan kommunicerar. Varje morgon (08:00 som standard) hämtar n8n nya inlägg från flera RSS-flöden och Reddit-flöden. Det slår ihop allt till ett flöde, strukturerar artikeldata och tar bort uppenbara upprepningar så att du inte ser samma nyhet fem olika gånger. Sedan skickar det den strukturerade listan till Google Gemini (via en HTTP-request) för att poängsätta relevans. Till sist sorterar workflowet på poäng, behåller de fem bästa, formaterar dem till ett läsbart Discord-meddelande och postar digesten i din valda kanal.
Workflowet startar enligt schema, inte utifrån någons motivation. I mitten gör det det tråkiga men avgörande jobbet: deduplicering, strukturering och AI-baserade relevanspoäng du kan lita på. Slutresultatet blir en kort, prioriterad lista som känns kuraterad – inte stökig.
Det här får du: automation kontra resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här kan det se ut
Säg att du bevakar 5 källor (3 RSS-flöden plus 2 Reddit-flöden) och att du lägger ungefär 8 minuter per källa varje morgon på att skumma och plocka länkar. Det är cirka 40 minuter per dag, och du måste fortfarande klistra in de “bästa” länkarna i Discord. Med det här workflowet lägger du cirka 2 minuter på att justera flöden vid behov, sedan postar körningen 08:00 topp 5-nyheterna automatiskt. Även om Gemini-poängsättning och formatering tar några minuter i bakgrunden är din tidskostnad i praktiken borta.
Det du behöver
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Discord för att posta det dagliga digest-meddelandet
- Google Gemini API för att poängsätta och rangordna relevans
- Gemini API-nyckel (hämta den från Google AI Studio / Google Cloud)
Kunskapsnivå: Medel. Du klistrar in flödes-URL:er, kopplar Discord och lägger till en API-nyckel för Gemini.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd morgontrigger kör workflowet. Som standard triggas det 08:00, så du startar dagen med en färsk briefing utan att någon behöver komma ihåg att trycka på en knapp.
RSS- och Reddit-poster hämtas och slås ihop. Flera flöden hämtas parallellt och kombineras sedan till ett enda flöde så att workflowet kan behandla allt konsekvent från och med där.
Strukturering och relevanspoängsättning sker i mitten. n8n strukturerar rubriker och URL:er, tar bort dubbletter, bygger en request-payload och skickar den till Gemini för relevanspoäng (via en HTTP-request). Poängen läggs tillbaka på varje nyhet så att sortering blir enkel.
Toppnyheterna rangordnas och skickas till Discord. Workflowet sorterar på relevans, begränsar utdata till fem poster, formaterar ett läsbart meddelande och skickar sedan digesten till din Discord-kanal.
Du kan enkelt ändra listan med källor så att den matchar din stad eller nisch, och du kan också byta destination från Discord till en annan kanal senare. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda morgontriggern
Ställ in det dagliga schemat som startar hela arbetsflödet för nyhetssammanställningen.
- Lägg till och öppna Scheduled Morning Trigger.
- Ställ in cron-uttrycket i Rule till
0 8 * * *för en daglig körning kl. 08:00. - Bekräfta att triggern förgrenar sig parallellt: Scheduled Morning Trigger skickar utdata till både Fetch Phoenix Times Feed och Retrieve AZ Free Feed och Pull Phoenix Reddit Feed och Pull Scottsdale Reddit Feed och Pull Arizona Reddit Feed parallellt.
Steg 2: Anslut RSS-källor och slå ihop flöden
Hämta lokala nyheter och community-innehåll från fem RSS-källor och slå ihop dem för vidare bearbetning.
- Konfigurera RSS-URL:erna för alla fem flödesnoder (grupperade efter funktion): Fetch Phoenix Times Feed (
https://www.phoenixnewtimes.com/phoenix/Rss.xml), Retrieve AZ Free Feed (https://azfreenews.com/feed/), Pull Phoenix Reddit Feed (https://www.reddit.com/r/Phoenix/.rss), Pull Scottsdale Reddit Feed (https://www.reddit.com/r/Scottsdale/.rss), och Pull Arizona Reddit Feed (https://www.reddit.com/r/Arizona/.rss). - Öppna Combine RSS Streams och ställ in Number Inputs till
5. - Säkerställ att varje RSS-nod är ansluten till rätt input i Combine RSS Streams (inputs 1–5).
Steg 3: Ställ in AI-baserad relevanspoängsättning
Rensa och avduplicera artiklar, förbered en kompakt payload och poängsätt relevans med Gemini.
- I Cleanse and Prep Items, behåll JavaScript-koden som den är för att avduplicera på URL/titel, tagga lokala omnämnanden och begränsa till de 50 senaste items.
- I Assemble Gemini Payload, behåll JavaScript-koden som sammanställer listan med enbart titlar till
titlesTextoch inkluderararticlesCount. - I Gemini Relevance Request, ställ in URL till
=https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-lite:generateContent?key=[CONFIGURE_YOUR_API_KEY]. - Ställ in JSON Body i Gemini Relevance Request till det angivna uttrycket:
{{ JSON.stringify({ "contents": [{ "parts": [{ "text": "You are a local news relevance scorer for Phoenix, Scottsdale, and Paradise Valley area. Score the following " + $json.articlesCount + " article TITLES based on their local relevance.\n\nScore each from 0-100 based on:\n- Local relevance (50%): Is it about Phoenix/Scottsdale/Paradise Valley?\n- Community impact (30%): Will locals care?\n- News value (20%): Is it newsworthy?\n\nArticle titles:\n" + $json.titlesText + "\n\nReturn ONLY a JSON array with scores in the same order. Example: [85, 72, 45, 90, 33]\nBe strict - only highly local news should score above 70." }] }], "generationConfig": { "temperature": 0.3, "topK": 40, "topP": 0.95, "maxOutputTokens": 512 } }) }}. - I Apply Relevance Scores, behåll koden som tolkar Geminis svar och kopplar
relevanceScoretill varje artikel; den refererar internt till Assemble Gemini Payload.
[CONFIGURE_YOUR_API_KEY] med en giltig Gemini API-nyckel i URL:en.Steg 4: Rangordna, begränsa och formatera Discord-sammanställningen
Sortera efter relevans, begränsa listan till toppresultaten och formatera den slutliga sammanställningstexten.
- Öppna Rank by Relevance och säkerställ att sorteringsfältet är relevanceScore med Order satt till
descending. - I Cap to Top Five, ställ in Max Items till
5. - I Compose Discord Digest, behåll den angivna JavaScript-koden för att bygga meddelandet, ta bort HTML och dela upp meddelanden för att hålla er under Discords gräns på 2000 tecken.
Steg 5: Konfigurera Discord-utdata
Skicka den formaterade sammanställningen till er Discord-kanal via webhook.
- Öppna Dispatch to Discord och ställ in Authentication till
webhook. - Ställ in Content till
{{ $json.content }}så att varje meddelandedel publiceras separat. - Credential Required: Anslut era discordWebhookApi-credentials.
Steg 6: Testa och aktivera ert arbetsflöde
Verifiera hela kedjan och schemalägg den sedan för dagliga körningar.
- Klicka på Execute Workflow för att köra hela kedjan från Scheduled Morning Trigger till Dispatch to Discord.
- Bekräfta att Combine RSS Streams ger items som utdata, att Gemini Relevance Request returnerar ett svar och att Dispatch to Discord publicerar sammanställningen.
- Om resultaten är tomma, testa varje RSS-nod individuellt för att validera att flödet är tillgängligt.
- När allt fungerar, slå på arbetsflödet till Active för att aktivera den schemalagda körningen varje morgon.
Vanliga fallgropar
- Discord-credentials kan löpa ut eller sakna rätt behörigheter för server/kanal. Om postningen misslyckas, kontrollera först åtkomst för din Discord-bot/app och kanal-ID-inställningarna i n8n.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Gemini-prompter och poängkriterier kan bli för generiska om du lämnar dem orörda. Lägg in din plats, nisch och “vad som räknas som relevant” tidigt, annars kommer du fortsätta tveka kring rankningen.
Vanliga frågor
Cirka 30 minuter om dina flöden, din Discord-kanal och din Gemini-nyckel är redo.
Nej. Du kopplar främst konton och klistrar in flödes-URL:er. Workflowet innehåller redan logik för strukturering, poängsättning och formatering.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för Gemini API-användning, som beror på hur många poster du poängsätter varje dag.
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 hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men du byter sista leveranssteget. Ersätt noden “Dispatch to Discord” med en Slack-meddelandenod och återanvänd sedan samma formateringslogik i “Compose Discord Digest” (eller justera den för Slacks markdown). Vanliga anpassningar är att ändra schematid, lägga till eller ta bort RSS-/Reddit-källor och justera gränsen från topp 5 till topp 10.
Oftast är det behörigheter. Säkerställ att Discord-boten faktiskt är tillagd på servern och har åtkomst att posta i målkanalen. Om det fungerade tidigare och plötsligt slutade, autentisera om Discord-credential i n8n och bekräfta att kanalreferensen inte har ändrats. Kontrollera även rate limits om du ökade antalet poster eller inlägg.
Gott om för en daglig briefing. De flesta team kör några dussin poster genom poängsättning varje morgon och publicerar sedan de fem bästa. På n8n Cloud är begränsningen främst månatliga körningar enligt din plan; om du self-hostar begränsas det av din server och hur snabbt Gemini svarar. Skalar du upp till hundratals poster per dag vill du ha stramare deduplicering och eventuellt batchning för att hålla API-kostnaderna förutsägbara.
Det beror på hur noga du är med rankning och deduplicering. Zapier och Make kan posta RSS till Discord, absolut, men när du lägger till “slå ihop flera flöden”, “strukturera inkonsekventa fält”, “deduplicera” och “skicka en poängförfrågan till en AI-modell” hamnar du i fler-stegsflöden som snabbt blir dyra och sköra. n8n hanterar förgrening och kodbaserad strukturering på ett ställe, vilket är skillnaden mellan en snygg demo och något du faktiskt litar på varje morgon. Om du bara behöver ett enkelt flöde “ny RSS-post → skicka meddelande” kan enklare verktyg räcka. Prata med en automationsexpert om du vill ha hjälp att välja rätt stack.
När det här väl rullar får teamet en kort, prioriterad briefing varje morgon och du får tillbaka ditt fokus. Sätt upp det en gång och låt sedan workflowet hantera det dagliga bruset.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.