Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Telegram + Google Sheets: lugnare botsvar

Rickard Andersson Partner, Nodenordic.se

Din Telegram-bot känns inte “hjälpsam” när en kund skickar fem meddelanden på 20 sekunder och får fem osammanhängande svar tillbaka. Det känns spamigt. Och ärligt talat får det din support att se spretig ut även när teamet verkligen anstränger sig.

Den här Telegram Sheets automation träffar supportansvariga först, men marknadsteam som driver community-grupper och småföretagare som hanterar DM:s känner igen samma problem. Du får ett enda tydligt, kontextuellt svar per meddelandeburst, plus en prydlig revisionslogg i Google Sheets.

Nedan ser du exakt hur arbetsflödet batchar meddelanden, hanterar röstmeddelanden, loggar allt och skickar ett enda AI-svar vid rätt tidpunkt.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: Telegram + Google Sheets: lugnare botsvar

Problemet: Telegram-botar svarar för snabbt (och för ofta)

Folk skriver inte supportfrågor som de skriver mejl. De skickar ett snabbt meddelande, sedan ett till med en skärmbildsbeskrivning, sedan “och…” och därefter ordernumret. Om din bot svarar på varje meddelande direkt får du en rörig tråd: svar som missar kontext, dubbla svar och kunder som känner att de pratar med en bugg. På din sida tappar du dessutom tidslinjen. Du kan inte enkelt återskapa vad som sades, vad boten såg och varför den svarade som den gjorde.

Det eskalerar snabbt. Här är var det faller isär i verkligheten.

  • Snabba meddelandeskurar skapar flera halvsvar, vilket förvirrar kunder och genererar fler följdfrågor.
  • Dina AI-kostnader går upp eftersom du betalar för fem anrop i stället för ett bättre anrop.
  • Röstmeddelanden ignoreras eller hanteras manuellt om du inte bygger in transkribering i flödet.
  • Utan enkel loggning kan du inte granska konversationer när något går fel.

Lösningen: debouncade Telegram-svar loggade i Sheets

Det här arbetsflödet lyssnar på varje inkommande Telegram-meddelande och grupperar sedan tyst meddelanden från samma användare till en enda “burst”. I stället för att svara direkt skapar det ett kort väntfönster (cirka 20–30 sekunder) och förlänger det om användaren fortsätter att skriva. Under tiden lagras varje meddelande i ett Google Sheet så att inget försvinner. När användaren slutar hämtar n8n de köade meddelandena, slår ihop dem till en enda prompt och skickar ett enda AI-genererat svar tillbaka till Telegram. Efter att ha svarat rensar det de köade raderna och återställer användarens väntestatus, redo för nästa konversation.

Arbetsflödet startar i samma ögonblick som ett Telegram-meddelande kommer in. Text går direkt in i meddelandekön och röstmeddelanden hämtas och transkriberas (Whisper) innan de ansluter till samma ström. I slutet ser användaren ett lugnt svar och du ser en tydlig logg i Sheets.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att en kund skickar 6 meddelanden på under 30 sekunder (helt normalt): “Hej”, “Min order har inte kommit”, “Order #18372”, “Det står levererad”, plus två följdmeddelanden. Utan batchning kan det trigga 6 botsvar och 6 AI-anrop på under en minut, och de tidiga svaren missar ofta ordernumret. Med det här arbetsflödet lägger du ungefär 1 minut på att låta fönstret stänga, sedan skickar du 1 konsoliderad prompt till AI och levererar 1 tydligt svar. Chatten förblir läsbar och du betalar inte för brus.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Telegram-bot för att ta emot meddelanden och skicka svar
  • Google Sheets för att lagra köade meddelanden och debounce-status
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard)

Svårighetsgrad: Medel. Du kopplar Telegram- och Google-uppgifter och klistrar sedan in ett par uttryck (som tidsstämpelkontrollen “äldre än 30s”).

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett Telegram-meddelande kommer in. Arbetsflödet triggas på nya Telegram-uppdateringar och kontrollerar sedan om det är text eller röst för att kunna routa det rätt.

Röst konverteras till text. Om det är ett röstmeddelande hämtar n8n ljudfilen från Telegram och transkriberar den med OpenAI (Whisper). Om transkriberingen misslyckas mappar arbetsflödet en säker fallback så att du inte får tomma prompts.

Meddelanden köas och “debouncas”. Varje inkommande meddelande läggs till i ett Google Sheet (“Message Retention”), därefter slår arbetsflödet upp användaren i ett andra sheet (“Message Checkup”). Om användaren inte väntar just nu, eller om senaste uppdateringen är äldre än cirka 30 sekunder, sätter det användaren i vänteläge och startar vänttimern. Om användaren redan väntar uppdaterar det bara tidsstämpeln så att fönstret förlängs.

Ett svar skickas tillbaka, sedan sker städning. När väntetiden är slut hämtar n8n alla köade rader för den användaren, slår ihop dem till en prompt, kör AI-agenten (med minne och valfritt kunskapslager), skickar ett enda Telegram-svar och raderar de bearbetade raderna samt väntflaggan.

Du kan enkelt ändra väntetiden så att den passar din målgrupp (snabbare chattar vs. långsammare, mer detaljerade). Se hela implementationsguiden nedan för anpassningsmöjligheter.

Steg-för-steg-implementeringsguide

Steg 1: konfigurera Telegram-triggern

Konfigurera Telegram-ingången så att inkommande meddelanden startar arbetsflödet och förgrenas efter meddelandetyp.

  1. Lägg till och öppna Telegram Incoming Trigger.
  2. Credential Required: Anslut era telegramApi-uppgifter.
  3. Under Updates låter ni message vara markerat för att ta emot text- och röstmeddelanden.
  4. Koppla Telegram Incoming Trigger till Validate Message Type för att utvärdera om en röstfil finns.

Steg 2: anslut Google Sheets

Dessa noder lagrar och hämtar meddelandebatcher och väntestatus. Det här arbetsflödet använder flera Google Sheets-noder; anslut uppgifter en gång och återanvänd dem i samtliga.

  1. Öppna Append Log Entry och ställ in Operation till append.
  2. Ställ in Document till ATEM Chat Logs och Sheet till Msg Retention.
  3. Mappa kolumner: date till {{$now}}, message till {{$json.processedMessage}} och user_id till {{$json.sessionId}}.
  4. Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter till Append Log Entry, Retrieve Log Rows, Lookup Waiting Rows, Flag Waiting Status, Refresh Waiting Timestamp, Clear Retention Rows och Remove Waiting Row.

⚠️ Vanlig fallgrop: Google Sheets-noderna refererar till platshållare som [YOUR_ID]. Ersätt dessa med era faktiska dokument- och bladval i varje Google Sheets-nod.

Steg 3: konfigurera meddelandeintag och transkribering

Det här steget normaliserar text- och röstmeddelanden till en och samma ström för batchning.

  1. I Validate Message Type säkerställer ni att första villkoret använder {{$json.message.voice.file_id}} med exists för att upptäcka röstmeddelanden.
  2. Koppla röstgrenen från Validate Message Type till Fetch Voice File och textgrenen till Forward Text Payload.
  3. I Fetch Voice File ställer ni in Resource till file och File ID till {{$('Telegram Incoming Trigger').item.json.message.voice.file_id}}. Credential Required: Anslut era telegramApi-uppgifter.
  4. I Transcribe Audio Clip ställer ni in Resource till audio och Operation till transcribe. Credential Required: Anslut era openAiApi-uppgifter.
  5. I Forward Text Payload mappar ni processedMessage till {{$json.message.text}}, sessionId till {{$json.message.chat.id}} och name till {{$json.message.from.first_name}}.
  6. I Map Transcription Text mappar ni processedMessage till {{$json.text}} och sessionId till {{$('Telegram Incoming Trigger').item.json.message.chat.id}}.
  7. Koppla Forward Text Payload, Map Transcription Text och Map Transcription Error till Combine Streams med numberInputs inställt på 3.

⚠️ Vanlig fallgrop: Transcribe Audio Clip har continueErrorOutput aktiverat, så fel routas till Map Transcription Error. Säkerställ att den grenen är kopplad till Combine Streams enligt bilden.

Steg 4: konfigurera batchning och väntelogik

Den här delen loggar inkommande meddelanden, avgör om den ska vänta in fler och aggregerar när tidsfönstret stänger.

  1. I Refine Output Fields ställer ni in processedMessage till {{$json.processedMessage || $json.error || ''}} och sessionId till {{$('Telegram Incoming Trigger').item.json.message.from.id}}.
  2. Koppla Refine Output Fields till Append Log Entry och vidare till Lookup Waiting Rows för att kontrollera väntestatus.
  3. I Normalize Empty Rows behåller ni JavaScript-koden som returnerar en standardrad när ingen vänt-rad finns.
  4. I Decide Wait Logic bekräftar ni villkoren: {{$json.last_updated}} före {{ new Date(Date.now() - 30000).toISOString() }} ELLER {{$json.is_waiting}} är false.
  5. Sant-grenen från Decide Wait Logic går till Flag Waiting Status (sätter vänteläge), därefter Delay Window med amount 30, sedan Retrieve Log Rows och därefter Aggregate Messages.
  6. Falskt-grenen från Decide Wait Logic går till Refresh Waiting Timestamp för att hålla väntfönstret aktivt.
  7. I Clear Retention Rows ställer ni in startIndex till {{$('Aggregate Messages').item.json.start_row_number}} och numberToDelete till {{$('Aggregate Messages').item.json.row_count}}.

⚠️ Vanlig fallgrop: Väntelogiken är beroende av konsekventa tidsstämplar i Msg Waiting. Säkerställ att både Flag Waiting Status och Refresh Waiting Timestamp skriver {{$now}} till last_updated.

Steg 5: konfigurera AI-svarslagret

AI-lagret använder OpenAI, minne och en Supabase-kunskapsbas för att skapa svar från de aggregerade meddelandena.

  1. Öppna Conversational Agent och ställ in Text till {{$('Aggregate Messages').item.json.message}}.
  2. Ställ in System Message i Conversational Agent till er prompt (för närvarande ADD YOUR PROMPT HERE).
  3. Öppna OpenAI Chat Engine och välj Model som gpt-5-mini. Credential Required: Anslut era openAiApi-uppgifter.
  4. Öppna Supabase Knowledge Store och ställ in Mode till retrieve-as-tool. Credential Required: Anslut era supabaseApi-uppgifter.
  5. Öppna Generate OpenAI Vectors och låt den vara ansluten till Supabase Knowledge Store. Credential Required: Anslut era openAiApi-uppgifter.
  6. Koppla OpenAI Chat Engine som språkmodell och Windowed Memory som minne till Conversational Agent. Obs: Generate OpenAI Vectors och Windowed Memory är AI-undernoder, så uppgifter konfigureras på föräldranoderna (OpenAI Chat Engine och Supabase Knowledge Store).

Steg 6: konfigurera utdata till Telegram

Skicka AI-svaret tillbaka till användaren och rensa vänt-rader.

  1. I Send Reply to Telegram ställer ni in Text till {{$json.output.text}} och Chat ID till {{$('Aggregate Messages').item.json.session_id}}.
  2. Credential Required: Anslut era telegramApi-uppgifter i Send Reply to Telegram.
  3. Koppla Send Reply to Telegram till Remove Waiting Row för att städa upp väntestatusen efter att ett svar har skickats.

Steg 7: testa och aktivera ert arbetsflöde

Verifiera hela flödet för text- och röstmeddelanden och aktivera sedan arbetsflödet.

  1. Klicka på Execute Workflow och skicka ett Telegram-textmeddelande till er bot för att bekräfta att Forward Text PayloadAppend Log EntryFlag Waiting Status körs.
  2. Skicka flera meddelanden inom 30 sekunder och bekräfta att Delay Window väntar, och att Retrieve Log RowsAggregate MessagesConversational Agent körs därefter.
  3. Skicka ett röstmeddelande och bekräfta att Fetch Voice FileTranscribe Audio ClipMap Transcription Text används innan batchning.
  4. Kontrollera att Send Reply to Telegram returnerar ett AI-svar och att Remove Waiting Row rensar väntestatusen.
  5. När allt fungerar växlar ni arbetsflödet till Active för att möjliggöra produktionsanvändning.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-autentisering kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s credential-koppling och att arket är delat med samma Google-konto eller servicekonto.
  • Om du använder Wait-noder eller extern transkribering varierar processningstiderna. Öka väntetiden om noder längre ner i flödet misslyckas på grund av tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Telegram Sheets automation?

Cirka 45 minuter om din bot och dina Sheets är redo.

Behöver jag kunna koda för att automatisera Telegram-botens svar med den här Telegram Sheets automation?

Nej. Du kopierar ett tidsstämpeluttryck och kopplar konton, men du bygger ingen app.

Är n8n gratis att använda för det här arbetsflödet för Telegram Sheets automation?

Ja. n8n har ett gratisalternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med OpenAI API-kostnader (ofta bara några dollar i månaden vid typiska supportvolymer).

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Telegram Sheets automation till ett längre väntfönster, till exempel 60 sekunder?

Ja, och det är en vanlig justering. Du ändrar varaktigheten i Wait-noden och “äldre än”-kontrollen av tidsstämpeln som används i IF-villkoret för väntlogiken. Många team anpassar också prompten i AI-agenten efter sin tonalitet, lägger till eskaleringsregler (t.ex. “skicka till en människa om meddelandet innehåller återbetalning”) och loggar extra fält till Sheets som chat_id, message_type och ett konversations-ID.

Varför misslyckas min Telegram-anslutning i den här Telegram Sheets automation?

Oftast beror det på att webhooken inte registreras korrekt eller att bot-token i n8n inte längre matchar det Telegram förväntar sig. Dubbelkolla att Telegram Trigger är aktiv och att din n8n-instans går att nå från publika internet (egen drift kan ibland blockera inkommande anrop). Om röstmeddelanden misslyckas kan det också bero på saknade behörigheter för att hämta filer, vilket brukar synas som fel i steget “Fetch Voice File”. Fixa anslutningen först och testa sedan igen med ett enkelt textmeddelande.

Hur många meddelanden kan den här Telegram Sheets automation hantera?

På n8n Cloud Starter kan du köra tusentals körningar per månad, vilket räcker för de flesta mindre supportteam. Om du kör egen drift finns ingen gräns för antal körningar; det beror främst på serverstorlek och hur ofta du transkriberar röst. I praktiken skalar det här arbetsflödet bra eftersom det hanterar användare oberoende av varandra, men Google Sheets kan bli flaskhalsen om du loggar väldigt stora volymer. Om du förväntar dig hög trafik, överväg att flytta lagringen från Sheets till en databas senare.

Är den här Telegram Sheets automation bättre än att använda Zapier eller Make?

För debounce-batchning är n8n oftast ett bättre val eftersom du kan hantera väntfönster, grenlogik och städning utan krångliga workarounds. Det ger också möjlighet till egen drift, vilket spelar roll när antalet körningar sticker iväg. Zapier eller Make kan fortfarande fungera om du håller det enkelt, men ofta blir det dyrare när du lägger till AI-steg och logik med flera grenar. Om du är osäker, prata med en automationsexpert så hjälper vi dig välja den minst smärtsamma vägen.

När det här väl är igång slutar din bot att avbryta folk mitt i tanken. Du får renare konversationer, färre bortkastade AI-anrop och en Google Sheets-logg som du faktiskt kan lita på.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal