Din Telegram-grupp träffas av en spamvåg och plötsligt spelar du whack-a-mole. Du bannar en bot, två till dyker upp, och legitima medlemmar fastnar i röran.
Det är precis vad automatisering för Telegram spam blocking är till för. Community managers känner smärtan först, men ops-ansvariga som driver kundgrupper och byråägare som hanterar kundcommunities råkar ut för det hela tiden också. Målet är enkelt: blockera bottar snabbt, behåll riktiga människor och sluta bränna hela dagen på manuella bannlysningar.
Det här flödet använder en liten matteutmaning (inga AI-kostnader) plus loggning i Google Sheets, så du får en mer strukturerad chatt och en snabb audit trail. Du ser vad det gör, hur det fungerar och vad du ska se upp med innan du slår på det.
Så fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Telegram + Google Sheets: stoppa spambotar snabbt
flowchart LR
subgraph sg0["📱 Telegram Flow"]
direction LR
n0["<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/>📱 Telegram Trigger"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "🔍 Check New Member", pos: "b", h: 48 }
n2["<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/>🎲 Generate CAPTCHA Question"]
n3@{ icon: "mdi:database", form: "rounded", label: "💾 Store User Answer", pos: "b", h: 48 }
n4["<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/>❓ Send CAPTCHA Question"]
n5["<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/>🚫 Ban User (Failed CAPTCHA)"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "✅ Verify Answer", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>🎉 Welcome New Member"]
n8@{ icon: "mdi:database", form: "rounded", label: "🗑️ Clean User Data (Success)", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>🗑️ Delete Join Message"]
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/telegram.svg' width='40' height='40' /></div><br/>🗑️ Delete CAPTCHA Question (.."]
n11@{ icon: "mdi:database", form: "rounded", label: "📋 Find Pending CAPTCHA", 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/telegram.svg' width='40' height='40' /></div><br/>🗑️ Delete User Message"]
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "⚙️ Bot Configuration", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Create URL for banrequest", pos: "b", h: 48 }
n6 --> n7
n6 --> n14
n0 --> n13
n1 --> n2
n1 --> n11
n7 --> n12
n13 --> n1
n14 --> n5
n4 --> n9
n11 --> n10
n9 --> n3
n12 --> n8
n2 --> n4
n5 --> n12
n10 --> n6
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 n1,n6 decision
class n3,n8,n11 database
class n5 api
class n2 code
classDef customIcon fill:none,stroke:none
class n0,n2,n4,n5,n7,n9,n10,n12 customIcon
Utmaningen: stoppa spam utan att straffa riktiga medlemmar
Spambottar postar inte bara skräp. De förändrar hela känslan i gruppen. Nya medlemmar går med, ser en vägg av bedrägerier och lämnar. Återkommande medlemmar slutar engagera sig eftersom chatten blir stökig, och du hamnar i moderering i stället för att bygga community. Värst är tajmingen: spamvågor slår ofta till när du är upptagen, så ett ”snabbt ban” blir en timme av städning, plus följdmeddelanden från förvirrade riktiga användare som råkat bli blockerade av misstag.
Det eskalerar snabbt. Här är vad som faller isär i den dagliga modereringen.
- Du måste reagera manuellt, vilket ger bottar ett fönster att posta länkar innan du ens hinner se det.
- Mänsklig verifiering i chatten blir rörig, så dina välkomstmeddelanden och CAPTCHA-promptar skräpar ner allt.
- Det är svårt att bevisa vad som hände i efterhand eftersom det inte finns någon korrekt logg över vem som misslyckades med verifieringen och varför.
- Överreaktion ger följdskador, och ärliga medlemmar blir bannade under en spamstorm.
Lösningen: matte-CAPTCHA + automatisk städning + loggning i Sheets
Det här n8n-flödet gör spamkontroll till en automatisk grind i samma ögonblick någon går med (eller i samma ögonblick de försöker skriva). En ny användare triggar processen, boten genererar en enkel mattefråga (typ ”4 + 7 = ?”) och skickar utmaningen direkt i gruppen samtidigt som den taggar användaren så det är tydligt vem som ska svara. Svaret loggas i Google Sheets, och sedan letar flödet upp den väntande utmaningen och kontrollerar svaret. Är det rätt välkomnar boten personen och städar bort verifieringsmeddelandena så att chatten inte förvandlas till en supporttråd. Är det fel (eller bot-likt) förbereder flödet en ban-förfrågan och blockerar användaren via ett Telegram API-anrop.
Flödet startar med en Telegram-trigger och en snabb kontroll: ”är detta ett nytt medlems-event eller ett svar?”. Därifrån bygger och skickar det antingen en matteprompt, eller så verifierar det användarens meddelande mot det som lagras i Google Sheets. Till sist routar det till ”välkomstmeddelande + städning” eller ”ban + städning”, så slutresultatet alltid blir en prydlig chatt.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att din publika grupp får cirka 30 nya joins per dag under en kampanj. Manuellt tar även ett ”snabbt” flöde kanske 2 minuter per person att hälsa, kontrollera, banna uppenbara bottar och städa bort meddelanden. Det är ungefär en timme om dagen, och det blir värre vid raids. Med det här flödet gör du inställningen en gång, sedan hanteras varje join automatiskt; du kanske lägger 5 minuter om dagen på att kolla Google Sheet efter något misstänkt. Det är verklig tid tillbaka, inte ”bra att ha”-tid.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- Telegram för att köra boten i din grupp
- Google Sheets för att logga utmaningar och svar
- Telegram Bot Token (hämta det från @BotFather)
Svårighetsnivå: Nybörjare. Du klistrar in behörigheter, sätter ett Sheet-ID och ger boten rätt adminbehörigheter.
Behöver du hjälp att implementera detta? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Flödeslogiken
En medlem går med eller skickar ett meddelande. Telegram-triggern fångar händelsen direkt, och sedan tillämpas dina botinställningar (token, gruppkontext och meddelandemallar).
Flödet avgör vilken typ av händelse det är. Om det är en ny medlem genererar det en slumpad mattefråga och postar den och taggar användaren. Om det är ett svar söker det i Google Sheets efter den väntande CAPTCHA-posten som är kopplad till användaren.
Verifieringen sker mot ett sparat svar. Användarens svar kontrolleras med enkel logik (ingen AI), vilket håller det snabbt och konsekvent. Rätt svar routar till ett välkomstmeddelande; fel svar routar till en ban-förfrågan.
Städning gör chatten läsbar. Join-notiser, CAPTCHA-promptar och användarens verifieringsmeddelande tas bort, och den relaterade raden i Google Sheets raderas när flödet är klart.
Du kan enkelt justera mattesvårigheten så att den passar din community, eller ändra välkomsttext och länkar efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera Telegram-triggern
Konfigurera arbetsflödet så att det lyssnar efter Telegram-uppdateringar, så att nya medlemmar och meddelanden kan behandlas.
- Lägg till noden 📱 Telegram Intake Trigger som din trigger.
- Autentiseringsuppgifter krävs: Anslut era Telegram-autentiseringsuppgifter (detta krävs för 📱 Telegram Intake Trigger och alla Telegram-åtgärdsnoder).
- Verifiera att triggern lyssnar på er målgrupp eller bot-uppdateringar.
⚠️ Vanlig fallgrop: Om Telegram-boten inte är administratör i gruppen kommer raderingsåtgärder i senare steg att misslyckas.
Steg 2: anslut Google Sheets
Google Sheets används för att spåra väntande CAPTCHA-promptar och användarsvar.
- Öppna 💾 Record User Reply, 📋 Locate Pending CAPTCHA och 🗑️ Purge User Records.
- Autentiseringsuppgifter krävs: Anslut era Google Sheets-autentiseringsuppgifter i var och en av dessa noder.
- Mappa era kalkylblads- och kalkylarksfält så att de matchar den data ni vill lagra (användar-ID, CAPTCHA-värde, tidsstämplar osv.).
Behåll samma kalkylbladsstruktur i dessa Google Sheets-noder så att uppslagningar och rensningsåtgärder fortsätter att vara synkade.
Steg 3: konfigurera bearbetningslogik
Konfigurera logiken som validerar nya medlemmar och bygger CAPTCHA-utmaningen.
- I ⚙️ Bot Settings anger ni eventuella konstanter eller flaggor som ert arbetsflöde är beroende av (t.ex. grupp-ID, tröskelvärden för bannlysning).
- Konfigurera 🔎 Validate New Member så att nya anslutningar skickas till 🎲 Build CAPTCHA Prompt och befintliga svar skickas till 📋 Locate Pending CAPTCHA.
- I 🎲 Build CAPTCHA Prompt genererar ni CAPTCHA-utmaningen och lagrar rätt svar i item-data.
⚠️ Vanlig fallgrop: Om 🔎 Validate New Member inte filtrerar korrekt kan befintliga användare få nya CAPTCHAs eller så kan svaren inte valideras.
Steg 4: konfigurera utdata-/åtgärdsnoder
Konfigurera Telegram-åtgärderna som levererar, tar bort och bekräftar CAPTCHA-interaktioner.
- Konfigurera Telegram-åtgärdsnoderna som en grupp: ❓ Deliver CAPTCHA Prompt, 🗑️ Remove Join Notice, 🗑️ Clear CAPTCHA Prompt, 🎉 Greet New Member och 🗑️ Remove User Message.
- Autentiseringsuppgifter krävs: Anslut era Telegram-autentiseringsuppgifter till varje Telegram-åtgärdsnod.
- Bekräfta att meddelandetext och målchatt-/meddelande-ID hämtas från tidigare noder (särskilt efter 🎲 Build CAPTCHA Prompt och ✅ Confirm Answer).
Använd konsekvent meddelandeformatering i ❓ Deliver CAPTCHA Prompt så att användarna förstår hur de ska svara.
Steg 5: konfigurera validering, bannlysningsflöde och rensning
Detta steg kopplar CAPTCHA-validering till hälsningar, rensning och automatiska bannlysningar.
- I ✅ Confirm Answer ställer ni in villkoret för att jämföra användarsvaret från 📋 Locate Pending CAPTCHA med det förväntade svaret.
- Bekräfta lyckad väg: ✅ Confirm Answer → 🎉 Greet New Member → 🗑️ Remove User Message → 🗑️ Purge User Records.
- Bekräfta misslyckad väg: ✅ Confirm Answer → Prepare Ban Request URL → 🚫 Block User After Failure → 🗑️ Remove User Message.
- I Prepare Ban Request URL anger ni den request-URL eller de parametrar som behövs av 🚫 Block User After Failure.
⚠️ Vanlig fallgrop: Om URL:en för bannlysningsförfrågan är felaktigt formaterad kommer 🚫 Block User After Failure att misslyckas utan att ge utslag och användare kommer inte att blockeras.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta att CAPTCHA-leverans, validering och rensning fungerar från början till slut.
- Kör arbetsflödet manuellt med en testanvändare som går med i Telegram-gruppen.
- Verifiera att ❓ Deliver CAPTCHA Prompt skickar en prompt och att 🗑️ Remove Join Notice tar bort anslutningsmeddelandet.
- Skicka in ett korrekt svar och bekräfta att flödet når 🎉 Greet New Member och sedan 🗑️ Purge User Records.
- Skicka in ett felaktigt svar och bekräfta att flödet når 🚫 Block User After Failure och sedan 🗑️ Remove User Message.
- Växla arbetsflödet till Active för användning i produktion.
Se upp med
- Telegram-adminbehörigheter spelar roll. Om boten inte kan radera meddelanden eller banna användare, kontrollera gruppens administratörsinställningar och bekräfta att den har ”Ban users” och ”Delete messages” aktiverat.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardpromptar i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Cirka 5 minuter när din bot och ditt Sheet är redo.
Ja. Ingen kodning krävs, men du behöver klistra in en bot-token och koppla Google Sheets-uppgifter i n8n.
Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna in användning av Google Sheets, vilket normalt täcks av gratisnivåer för vanliga community-volymer.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Det kan du. De flesta anpassningar finns i botinställningarna och genereringen av matteutmaningen: ändra välkomsttexten i “⚙️ Bot Settings”, justera mattesvårigheten i “🎲 Build CAPTCHA Prompt” och byt loggningsformat i stegen för Google Sheets. Vissa grupper kortar också tidsfönstret för svar, eller utmanar bara användare som gått med via inbjudningslänkar.
Oftast är det bot-token eller saknade adminrättigheter i gruppen. Generera om token i @BotFather vid behov och bekräfta sedan att boten är upphöjd till admin och får radera meddelanden och banna användare. Om det fortfarande misslyckas, kontrollera chat-ID:t som flödet riktar sig mot och säkerställ att boten faktiskt finns i den chatten.
I självhostad n8n beror kapaciteten främst på din server och Telegrams rate limits, inte på antal körningar.
För Telegram-moderering är n8n oftast mer praktiskt eftersom du kan köra grenad logik, lagra och slå upp väntande utmaningar och anropa Telegram API direkt utan att fastna i plattformsbegränsningar. Det ger också en väg för självhosting, vilket spelar roll om din grupp blir raidad och du plötsligt får en burst av händelser. Zapier och Make kan fungera för enklare automatiseringar av typen ”skicka ett meddelande när X händer”, men modereringsflöden i chattar blir snabbt pilliga. Ärligt talat: så fort du behöver städning, villkorliga bans och loggning kommer du uppskatta n8n:s flexibilitet. Prata med en automationsspecialist om du vill att någon rimlighetscheckar din exakta setup.
När det väl kör så slutar spamkontroll vara en daglig brandövning och blir till bakgrundshygien. Du får en mer strukturerad chatt, färre huvudvärkar och ett Google Sheet som visar vad som hände när någon klagar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.