Röstmeddelanden låter smidigt, tills de landar i din Telegram-supportinkorg hela dagen. Du kan inte skumma dem. Du kan inte söka i dem. Och när du sitter i möten bygger du upp en backlogg av ”jag svarar senare” som ärligt talat aldrig känns helt under kontroll.
Det är här automatisering för Telegram-röstsvar hjälper. Supportansvariga märker det först, men byråägare och solooperatörer som sköter kundchatt gör det också. Utfallet är enkelt: färre missade meddelanden, snabbare svar och en konsekvent ton utan att behöva skriva allt manuellt.
Det här flödet gör inkommande Telegram-röstmeddelanden till transkriptioner, genererar ett varumärkesanpassat svar och skickar tillbaka ett röstsvar automatiskt. Du får se hur det fungerar, vad du behöver och vad du ska se upp med när du går live.
Så fungerar automatiseringen
Se hur det här löser problemet:
n8n Workflow Template: Telegram + Deepgram: röst svar för snabbare support
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Transcribe with Deepgram"]
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/>Download Voice File"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get File Path"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Voice Message Data", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Text Message Data", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Knowledge base", pos: "b", h: 48 }
n6@{ icon: "mdi:memory", form: "rounded", label: "Telegram Memory", pos: "b", h: 48 }
n7@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Transcript?", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Voice Message?", pos: "b", h: 48 }
n11["<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"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Generate Audio Response"]
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/telegram.svg' width='40' height='40' /></div><br/>Send Audio Response"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Was Voice Input?", pos: "b", h: 48 }
n15["<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 Text Response"]
n8 --> n14
n2 --> n1
n5 -.-> n8
n9 --> n8
n6 -.-> n8
n11 --> n10
n14 --> n12
n14 --> n15
n10 --> n3
n10 --> n4
n7 -.-> n8
n1 --> n0
n12 --> n13
n0 --> n9
n4 --> n8
n3 --> n2
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 n11 trigger
class n8 ai
class n7 aiModel
class n6 ai
class n9,n10,n14 decision
class n0,n1,n2,n12 api
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n11,n12,n13,n15 customIcon
Utmaningen: röstmeddelanden skapar osynliga supportbackloggar
Textbaserad support är redan mycket administrativt arbete. Röstmeddelanden lägger till en ny typ av friktion eftersom du måste avbryta det du gör för att ta in dem. Du kan inte snabbt skanna efter avsikt, ordernummer eller brådska, så allt tar längre tid än det borde. Sedan svarar du på volley, vilket är så tonen glider och små misstag smyger sig in (”lovade vi det?”). Om du någon gång har spelat upp ett 45-sekunders meddelande tre gånger bara för att fånga en detalj vet du hur det känns.
Friktionen byggs på. Här är var det brister i verkliga team.
- Att lyssna igenom röstmeddelanden ett och ett äter upp stora delar av dagen, särskilt när frågan kunde ha besvarats med två rader text.
- Du tappar sammanhang mellan meddelanden, så kunder upprepar sig och teamet upprepar frågor.
- Tonen blir inkonsekvent eftersom svar skrivs av den som råkar vara tillgänglig (och den som råkar vara irriterad).
- Eskaleringar sker sent eftersom brådskande ärenden inte ser brådskande ut förrän du faktiskt trycker på play.
Lösningen: Telegram-röstmeddelanden → tydliga röstsvar, automatiskt
Det här n8n-flödet gör Telegram-röstmeddelanden till en snabb och konsekvent supportloop. När ett röstmeddelande kommer in till din bot hämtar det automatiskt ljudfilen från Telegram, transkriberar den med Deepgram och kontrollerar att det finns en användbar transkription. Därefter genererar en AI-agent (driven av en OpenAI-chattmodell) ett svar och behåller samtalskontext i minnet, så att den inte ”glömmer” vad användaren sa för två meddelanden sedan. Om du har kopplat en Supabase-kunskapsbas kan agenten hämta faktiska verksamhetssvar i stället för att gissa. Slutligen omvandlar flödet svaret tillbaka till naturligt tal med Deepgram TTS och skickar ett röstmeddelande tillbaka till användaren (eller ett textsvar när röst inte är lämpligt).
Flödet startar med en Telegram-trigger och en snabb kontroll av om inkommande meddelande är röst eller text. Deepgram sköter tal-till-text och text-till-tal, medan AI-agenten använder minne plus din Supabase-kunskapsbas för att hålla svaren korrekta och konsekventa. Resultatet hamnar tillbaka i samma Telegram-tråd, så kundupplevelsen förblir smidig.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att din Telegram-bot får 20 röstmeddelanden per dag. Manuellt kanske du lägger ungefär 2 minuter på att lyssna, och sedan ytterligare 2 minuter på att skriva ett genomtänkt svar, vilket är cirka 80 minuter per dag. Med det här flödet lägger du kanske 5 minuter totalt på att skumma transkriptioner för specialfall, medan automatiseringen transkriberar, tar fram ett svarsförslag och skickar röstsvar på egen hand. På en vecka blir det flera timmar som du kan lägga tillbaka på faktiskt kundarbete (eller att leverera produkt).
Krav
- n8n-instans (prova n8n Cloud gratis)
- Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
- Telegram-bot för att ta emot och skicka röstmeddelanden.
- Deepgram för transkribering (STT) och röstgenerering (TTS).
- OpenAI API-nyckel (hämta den från din OpenAI-instrumentpanel).
Kunskapsnivå: Medel. Du kopplar några konton, klistrar in API-nycklar och justerar ett par textprompter.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
Ett Telegram-meddelande triggar flödet. Botten tar emot ett inkommande meddelande och kontrollerar typen (röst vs. text) så att det kan routas rätt.
Flödet hämtar ljudet och transkriberar det. För röstmeddelanden hämtar det filsökvägen från Telegram, laddar ner ljudet och skickar det till Deepgram för tal-till-text. Om transkriberingen saknas eller är tom faller det tillbaka på ett robust sätt i stället för att skicka skräp.
En AI-agent genererar svaret med kontext. Transkriptionen (eller det ursprungliga textmeddelandet) går in i AI-agenten som drivs av en OpenAI-chattmodell. En minnesbuffer håller konversationen sammanhängande, och en Supabase-kunskapsbas-sökning kan lägga in dina riktiga policys, vanliga frågor och produktdetaljer.
Svaret skickas tillbaka som röst (eller text). När det är en röstkonversation använder flödet Deepgram TTS för att skapa ett ljudsvar och skickar det i Telegram som ett röstmeddelande. Om det är ett renodlat textscenario skickar det ett vanligt textsvar i stället.
Du kan enkelt ändra svarsstilen så att den matchar ert tonalitet (formell, lekfull, kort, tvåspråkig) utifrån era behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera triggern för inkommande Telegram-hook
Det här arbetsflödet startar när Telegram skickar en meddelandeuppdatering till Incoming Telegram Hook.
- Lägg till noden Incoming Telegram Hook och välj uppdateringar för message.
- Inloggningsuppgifter krävs: Anslut era telegramApi-uppgifter i Incoming Telegram Hook.
- Säkerställ att arbetsflödet är inställt för att ta emot webhooks så att Telegram kan trigga det.
Steg 2: Anslut Telegram
Dela upp inkommande meddelanden i röst och text med hjälp av routingnoderna och mappa sedan payload-fälten för efterföljande bearbetning.
- I Voice Message Check, ställ in villkoret till
{{ Boolean($json.message.voice) }}så att röstmeddelanden routas till röstspåret och textmeddelanden routas till textspåret. - I Map Voice Payload, lägg till tilldelningar: user_id =
{{ $json.message.from.id }}, chat_id ={{ $json.message.chat.id }}, voice_file_id ={{ $json.message.voice.file_id }}, timestamp ={{ new Date().toISOString() }}och telegramToken =[CONFIGURE_YOUR_TOKEN]. - I Map Text Payload, lägg till tilldelningar: user_id =
{{ $json.message.from.id }}, chat_id ={{ $json.message.chat.id }}, message_text ={{ $json.message.text }}, message_id ={{ $json.message.message_id }}och timestamp ={{ new Date().toISOString() }}. - Bekräfta routningsordningen: Incoming Telegram Hook → Voice Message Check → Map Voice Payload eller Map Text Payload.
[CONFIGURE_YOUR_TOKEN] i Map Voice Payload med er faktiska Telegram-bottoken, annars kommer URL:erna för filhämtning att misslyckas.Steg 3: Sätt upp pipelinen för rösttranskribering
Röstmeddelanden konverteras till text med hjälp av Telegrams fil-API och Deepgrams transkriberingsendpoint.
- I Retrieve File Path, ställ in URL till
=https://api.telegram.org/bot{{ $json.telegramToken }}/getFile?file_id={{ $json.voice_file_id }}. - I Fetch Voice File, ställ in URL till
=https://api.telegram.org/file/bot{{ $json.telegramToken }}/{{ $json.result.file_path }}. - I Deepgram Transcription, ställ in URL till
https://api.deepgram.com/v1/listen?model=nova-2&language=en&smart_format=true, Method till POST, Content Type till binaryData och Input Data Field Name tilldata. - I Deepgram Transcription, lägg till headers: Authorization =
Token [CONFIGURE_YOUR_TOKEN]och Content-Type =audio/ogg. - I Transcript Present?, använd villkoret
{{ $json.body && $json.body.results && $json.body.results.channels && $json.body.results.channels[0] && $json.body.results.channels[0].alternatives && $json.body.results.channels[0].alternatives[0] && $json.body.results.channels[0].alternatives[0].transcript }}med isNotEmpty.
[CONFIGURE_YOUR_TOKEN] i Deepgram Transcription med er Deepgram API-token, annars kommer transkriberingen att misslyckas.Steg 4: Sätt upp AI-svarsagenten
AI-agenten genererar svar med hjälp av en kunskapsbas, minne och OpenAI-modellen.
- I AI Response Agent, ställ in Text till
{{ $json.body?.results?.channels?.[0]?.alternatives?.[0]?.transcript || $json.message_text || $json.message?.text || 'Hello' }}. - Behåll systemmeddelandet i AI Response Agent för att säkerställa en professionell supportton och begränsningar för svarslängd.
- Anslut OpenAI Chat Engine till AI Response Agent som språkmodell och ställ in alternativ som maxTokens till
200och temperature till0.3. - Inloggningsuppgifter krävs: Anslut era openAiApi-uppgifter i OpenAI Chat Engine (den här modellen driver AI Response Agent).
- Koppla Telegram Memory Buffer till AI Response Agent och ställ in Session Key till
telegram_{{ $json.user_id }}med Session ID Type = customKey. - Koppla Knowledge Base Lookup till AI Response Agent och ställ in tableId till
knowledge_basemed operation =getAll. - Inloggningsuppgifter krävs: Anslut era supabaseApi-uppgifter i Knowledge Base Lookup (det här verktyget används av AI Response Agent).
Steg 5: Konfigurera utdata- och routningsnoder
Routa AI-utdata till röst- eller textsvar baserat på den ursprungliga meddelandetypen.
- I Voice Input Decision, ställ in villkoret till
{{ Boolean($('Incoming Telegram Hook').item.json.message.voice) }}för att styra röstinmatning till ljudutmatning och textinmatning till textutmatning. - I Create Audio Reply, ställ in URL till
https://api.deepgram.com/v1/speak, Method till POST, och lägg till body-parametern text ={{ $json.output }}samt query-parametern model =aura-asteria-en. - I Create Audio Reply, lägg till headers: Authorization =
Token [CONFIGURE_YOUR_TOKEN]och Content-Type =application/json. - I Send Voice Reply, ställ in Operation till sendAudio, Binary Data till true och Chat ID till
{{ $('Map Voice Payload').item.json.chat_id }}. - Inloggningsuppgifter krävs: Anslut era telegramApi-uppgifter i Send Voice Reply.
- I Send Text Reply, ställ in Text till
{{ $json.output }}och Chat ID till{{ $('Map Text Payload').item.json.chat_id }}. - Inloggningsuppgifter krävs: Anslut era telegramApi-uppgifter i Send Text Reply.
[CONFIGURE_YOUR_TOKEN] i Create Audio Reply med er Deepgram API-token, annars kommer ljudsyntesen att misslyckas.Steg 6: Testa och aktivera ert arbetsflöde
Verifiera både röst- och textspår innan ni aktiverar körning i produktion.
- Klicka på Test Workflow och skicka ett textmeddelande till er Telegram-bot för att bekräfta spåret: Incoming Telegram Hook → Voice Message Check → Map Text Payload → AI Response Agent → Voice Input Decision → Send Text Reply.
- Skicka ett röstmeddelande för att validera spåret: Incoming Telegram Hook → Voice Message Check → Map Voice Payload → Retrieve File Path → Fetch Voice File → Deepgram Transcription → Transcript Present? → AI Response Agent → Voice Input Decision → Create Audio Reply → Send Voice Reply.
- Lyckad körning innebär att Telegram tar emot antingen ett textsvar eller ett röstljudsvar beroende på inmatningen.
- Slå på arbetsflödet Active för att möjliggöra kontinuerlig användning i produktion.
Se upp för
- Telegram-botens inloggningsuppgifter kan sluta fungera om token ändras eller om webhook-konfigurationen är fel. Om det plötsligt slutar fungera, kontrollera bot-token i BotFather och bekräfta webhook-inställningarna i din Telegram-trigger först.
- Om du använder Wait-logik (eller om din TTS-begäran är långsam) varierar processtiderna. Öka väntetiden om nedströms noder fallerar eftersom ljudsvaret inte har hunnit genereras ännu.
- Deepgram- och AI-prompter är generiska från början. Lägg in era tonalitetsregler i AI-agentens systemmeddelande tidigt, annars kommer du fortsätta skriva om ”tekniskt korrekta” svar som inte låter som ert företag.
Vanliga frågor
Cirka en timme om du redan har din Telegram-bot och API-nycklar redo.
Ja, men du vill ha någon som är bekväm med att kopiera API-nycklar och testa några meddelanden. Ingen kodning krävs för standardflödet.
Ja. n8n har ett gratis självhostat alternativ 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 användningskostnader för Deepgram och OpenAI (ofta bara ören per interaktion, beroende på meddelandelängd).
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änsade körningar men kräver grundläggande serverhantering.
Börja med att redigera AI-agentens systemmeddelande så att det matchar era policys, tonalitet och era ”säg inte det här”-regler. Om du vill att botten ska svara utifrån ert eget innehåll, koppla (eller bygg ut) Supabase Knowledge Base Lookup så att agenten kan hämta godkända svar. Många team anpassar också Voice Input Decision-logiken för att tvinga textsvar för vissa ämnen, som fakturatvister eller uppsägningar av konto.
Oftast är det en felaktig bot-token eller ett webhook-problem. Skapa om eller kopiera om token från BotFather, uppdatera den i n8n och bekräfta att Telegram Trigger tar emot events. Om det fungerar för text men inte för röst, kontrollera noderna för filhämtning (Retrieve File Path och Fetch Voice File), eftersom saknade behörigheter eller felaktiga fil-URL:er kan stoppa ljudnedladdningen.
På n8n Cloud beror kapaciteten på din plans månatliga körningar, medan självhosting beror på din server. I praktiken kör de flesta mindre team hundratals röstmeddelanden per dag utan problem, så länge du respekterar rate limits för Deepgram/OpenAI och håller svaren korta.
Ofta, ja. Det här flödet behöver förgrening (röst vs text), filhantering och en minnesbaserad AI-agent, och den komplexiteten blir klumpig och dyr i många ”enkla automatiserings”-verktyg. n8n låter dig också självhosta, vilket spelar roll när du vill ha obegränsade körningar eller stramare kontroll över data. Zapier eller Make kan fortfarande vara bra för enkel routing, som ”skicka en Telegram-notis när ett formulär skickas in”. Om du är osäker, prata med en automationsexpert och få en snabb rekommendation.
När det här väl är igång slutar röstmeddelanden att vara ett svart hål i din supportprocess. Flödet sköter de repetitiva delarna, och du kliver bara in när det faktiskt behövs en människa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.