Röstmeddelanden i Telegram känns smidiga ända tills du faktiskt måste agera på dem. Du kan inte söka i dem, du kan inte skumma dem, och att vidarebefordra ”det där meddelandet från i går” blir snabbt en tidsfälla.
Det här drabbar supportteam först, men operativa ansvariga och kundnära byråägare brottas med det också. Med automatisering för transkribering av Telegram-röstmeddelanden i n8n blir varje röstmeddelande till felfri text, matchas mot rätt medlem och skickas sedan vidare till rätt flöde.
Nedan ser du hur workflowet fungerar, vad du får ut av det och vad du ska hålla koll på när du slår på det i en skarp supportmiljö.
Så här fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutligt resultat:
n8n Workflow Template: Telegram + Google Speech-to-Text: 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/telegram.svg' width='40' height='40' /></div><br/>Telegram Trigger"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Test Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Test Input", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Telegram Input", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Type Switch", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Download Audio"]
n6@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Google STT", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Telegram Voice Input", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Input", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Telegram", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Active", 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/>Parse Service"]
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/redis.svg' width='40' height='40' /></div><br/>Member Cache"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Member Cache", 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/postgres.svg' width='40' height='40' /></div><br/>Load Memer Data"]
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/redis.svg' width='40' height='40' /></div><br/>Save Member Cache"]
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Member", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "English", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "yue-Hant-HK", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "cmn-Hant-TW", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "cmn-Hans-CN", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "ja-JP", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Transcript", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-vertical", form: "rounded", label: "No Transcript Input", pos: "b", h: 48 }
n26@{ icon: "mdi:cog", form: "rounded", label: "Demo Call Back", pos: "b", h: 48 }
n27@{ icon: "mdi:cog", form: "rounded", label: "Demo Call Center", pos: "b", h: 48 }
n28["<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 Test Output"]
n9 --> n27
n9 --> n10
n23 --> n7
n17 --> n4
n18 --> n20
n18 --> n22
n18 --> n21
n18 --> n23
n18 --> n19
n19 --> n7
n11 --> n16
n7 --> n24
n2 --> n9
n10 --> n28
n4 --> n3
n4 --> n5
n21 --> n7
n20 --> n7
n13 --> n14
n1 --> n2
n24 --> n8
n24 --> n25
n12 --> n17
n5 --> n6
n3 --> n9
n14 --> n12
n14 --> n15
n15 --> n11
n0 --> n13
n6 --> n18
n16 --> n17
n25 --> n26
n8 --> n9
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,n1 trigger
class n4,n10,n11,n14,n18,n24 decision
class n13,n15,n16 database
class n12 code
classDef customIcon fill:none,stroke:none
class n0,n5,n12,n13,n15,n16,n28 customIcon
Problemet: röstmeddelanden saktar ned supporten
Telegram-röstmeddelanden skapar en märklig typ av supportskuld. Någon måste avbryta det de gör, ta på hörlurar (eller hitta en lugn stund), lyssna på en svamlig förklaring och sedan skriva om det viktiga i ett ärende eller en intern chatt. Multiplicera det med dussintals meddelanden så lägger du verklig tid på att översätta ”ljud” till ”något teamet kan jobba med”. Och om du inte snabbt kan identifiera vem avsändaren är (aktiv medlem, tidigare kund, fel kontakt) slösar du ännu fler cykler på att ställa grundfrågor som redan finns i en databas.
Friktionen byggs på. Det är här det oftast skaver.
- Handläggare spelar upp röstmeddelanden igen för att fånga detaljer, vilket gör enkla ärenden till en lång fram-och-tillbaka.
- Inget är sökbart, så ”Vad sa de förra veckan?” blir manuellt detektivarbete.
- Förfrågningar kommer utan medlemskontext, så routning blir gissningar och överlämningar blir slarviga.
- Ljudbilagor är lätta att missa under rusning, vilket ger sena svar och missnöjda kunder.
Lösningen: transkribera, berika och routa varje Telegram-meddelande
Det här workflowet gör Telegram till en pålitlig ”ring-in”-kanal som teamet faktiskt kan drifta. Det startar när din Telegram-bot tar emot ett meddelande. Workflowet slår upp avsändaren i PostgreSQL (med Redis-cache så att du inte bombardera databasen), kontrollerar om medlemmen är aktiv och normaliserar sedan allt till en felfri payload. Om meddelandet är röst hämtar det ljudfilen från Telegram, extraherar ljuddatan och skickar den till Google Speech-to-Text för transkribering. Därefter routar workflowet den nu textbaserade förfrågan till rätt nedströmsprocess via sub-workflows (ett callcenterflöde, ett återuppringningsflöde eller din egen ärende-/CRM-logik) och skickar till sist ett Telegram-svar tillbaka till användaren.
Workflowet börjar med en Telegram-trigger och förgrenas sedan efter innehållstyp (text vs röst). Det berikar förfrågan med medlemskontext och språkinställningar, kör rätt sub-workflow och svarar i Telegram så att användaren vet att du har tagit emot det.
Det du får: automatisering vs. resultat
| Vad workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att din inkorg får 20 röstmeddelanden per dag. Manuellt, om en handläggare lägger ungefär 5 minuter på att lyssna, spela upp igen och skriva en sammanfattning, blir det cirka 100 minuter dagligen (nästan 2 timmar) bara för att göra om ljud till text. Med det här workflowet är handläggarens ”jobb” i princip noll: triggern går direkt, transkriberingen kör i bakgrunden och förfrågan landar i ditt callcenter-sub-workflow redan märkt med medlemskontext. Du svarar fortfarande som en människa, men du gör inte grovjobbet först.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger funkar bra)
- Telegram-bot för att ta emot inkommande meddelanden.
- Google Speech-to-Text för att transkribera röstmeddelanden till text.
- PostgreSQL-databas för medlemsregister och statuskontroller.
- Redis för att cacha medlemsuppslag och minska belastningen på databasen.
- Google Cloud API-nyckel (hämta den i Google Cloud Console under credentials).
Kunskapsnivå: Avancerad. Du kommer att koppla flera tjänster, installera en community-nod och mappa fält noggrant för att matcha din medlemsdatabas.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Telegram tar emot meddelandet. Workflowet startar med en Telegram-trigger (och en valfri chatt-test-trigger) så att du kan testa utan att vänta på riktiga användare.
Medlemskontext kopplas på tidigt. Avsändaren kontrolleras först i Redis, sedan i PostgreSQL vid behov, och workflowet validerar saker som ”aktiv medlem” innan något routas vidare.
Röstmeddelanden blir text. Om inkommande innehåll är ljud hämtar workflowet filen från Telegram, extraherar ljudet, väljer rätt språkspår (engelska, kantonesiska, traditionell/förenklad kinesiska, japanska), kör sedan Google Speech-to-Text och verifierar att en transkription faktiskt finns.
Förfrågan routas till din faktiska supportlogik. En enhetlig payload skickas in i en av noderna som kör sub-workflow (demo: callcenter-/återuppringningsflöden), och ett Telegram-svar skickas tillbaka så att användaren får ett tydligt nästa steg.
Du kan enkelt justera medlemstabellen och routningsreglerna så att de matchar din egen supportdrift. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Telegram-triggern
Sätt upp inkommande ingångar för Telegram-meddelanden och den chattbaserade testtriggern som används för validering.
- Lägg till och öppna Telegram Inbound Trigger för att ta emot röst- och textmeddelanden.
- Uppgifter krävs: Anslut era Telegram Bot API-uppgifter i Telegram Inbound Trigger.
- Aktivera Chat Test Trigger om ni vill ha en inbyggd test-webhook för lokal validering.
- Anslut Chat Test Trigger till Assign Test Payload för att simulera meddelandedata.
Tips: Använd Chat Test Trigger för snabba tester utan att behöva skicka meddelanden till er bot, och behåll Telegram Inbound Trigger för produktionsinmatning.
Steg 2: Normalisera och routa inkommande innehåll
Standardisera meddelandepayloads och skicka dem via rätt väg för röst- eller textbearbetning.
- Konfigurera Assign Test Payload så att den outputar ett strukturerat objekt som speglar Telegrams payload-fält.
- I Map Telegram Payload mappar ni obligatoriska fält till ett konsekvent format för nedströmsnoder.
- Använd Route by Content Type för att förgrena röstmeddelanden till Fetch Audio File och innehåll som inte är röst till Map Telegram Payload.
- Bekräfta att Map Telegram Payload skickar output till Unified Input Hub för enhetlig bearbetning.
⚠️ Vanlig fallgrop: Om villkoren i Route by Content Type inte är definierade kan alla meddelanden hamna på fel väg och hoppa över rösttranskribering.
Steg 3: Konfigurera hämtning och transkribering av röstfil
Hämta ljudfilen, extrahera binärdata, identifiera språk och skicka den till tal-tjänsten.
- Öppna Fetch Audio File och ställ in den för att ladda ner Telegram-röstfilen med hjälp av inkommande fil-ID.
- Uppgifter krävs: Anslut era Telegram Bot API-uppgifter i Fetch Audio File.
- Säkerställ att Extract Audio Data tar emot binärdata från Fetch Audio File för att förbereda den för transkribering.
- Routa extraherat ljud till Language Router och definiera grenar för Set Cantonese Locale, Set Simplified CN, Set Traditional CN, Set Japanese Locale och Set English Locale.
- Anslut varje språk-/locale-nod till Speech-to-Text Service så att rätt språkkod används.
- Uppgifter krävs: Anslut era Google Cloud Speech-uppgifter i Speech-to-Text Service.
Steg 4: Validera transkript och slå ihop indata
Kontrollera transkriberingsresultat och slå ihop text från röst eller meddelandeinnehåll för nedströms bearbetning.
- I Transcript Present? verifierar ni att tal-svaret innehåller ett transkript.
- Skicka lyckade transkriberingar till Map Voice Transcript och mappa transkriptet till ett standardfält.
- Skicka saknade transkript till Handle Missing Transcript, och därefter till Run Sub-Workflow (Config Required) för ett fallback-flöde.
- Routa Map Voice Transcript till Unified Input Hub så att röst- och textindata bearbetas enhetligt.
Steg 5: Konfigurera medlemscache och profil-logik
Ladda eller cacha medlemsprofiler och bygg sedan en enhetlig profil som används för routing och bearbetning.
- Sätt upp Redis Member Cache för att hämta cachad medlemsdata från Redis.
- Uppgifter krävs: Anslut era Redis-uppgifter i Redis Member Cache och Store Member Cache.
- I Cache Hit Check routar ni cache misses till Load Member Records och hits till Parse Service Mode.
- Uppgifter krävs: Anslut era Postgres-uppgifter i Load Member Records.
- Skicka Load Member Records till Validate Member Active, och därefter till Store Member Cache för att spara uppdateringar.
- Bygg den enhetliga profilen i Build Member Profile och anslut den till Route by Content Type för att fortsätta bearbetningen.
Steg 6: Sätt upp parallell routing och Telegram-svar
Dela upp enhetlig indata till sub-workflows och Telegram-svarlogik, och konfigurera sedan det utgående meddelandet.
- Unified Input Hub skickar output parallellt till både Run Sub-Workflow (Config Required) 2 och Check Telegram Source.
- Konfigurera Run Sub-Workflow (Config Required) 2 för att anropa rätt workflow-ID.
- Använd Check Telegram Source för att avgöra när ett svar ska skickas.
- I Send Telegram Reply anger ni meddelandetext och målchattfält med hjälp av inkommande payload.
- Uppgifter krävs: Anslut era Telegram Bot API-uppgifter i Send Telegram Reply.
Tips: Om Run Sub-Workflow (Config Required) och Run Sub-Workflow (Config Required) 2 inte är konfigurerade med giltiga workflow-ID:n kommer körningar att se ut att fungera, men inga nedströms åtgärder kommer att utföras.
Steg 7: Testa och aktivera ert workflow
Validera workflowet med testdata och aktivera det sedan för produktion.
- Klicka på Execute Workflow och trigga Chat Test Trigger för att bekräfta att hela end-to-end-flödet körs via Assign Test Payload och Unified Input Hub.
- Skicka ett riktigt Telegram-röstmeddelande till boten och bekräfta att Fetch Audio File → Speech-to-Text Service → Map Voice Transcript körs utan fel.
- Verifiera att en lyckad körning skapar en enhetlig indata och skickar ett meddelande från Send Telegram Reply.
- När allt är validerat, växla workflowet till Active för att möjliggöra produktionskörningar.
Vanliga fallgropar
- Telegram-inloggningsuppgifter kan löpa ut eller så kan boten tappa åtkomst till chatten. Om det uppstår problem: kontrollera först din Telegram bot token och botens chattbehörigheter.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Google Speech-to-Text kan returnera tomma transkriptioner när ljudet är för svagt eller när språkvalet är fel. Dubbelkolla inställningarna i språkroutern och logga råsvaret innan du antar att workflowet ”misslyckades”.
Vanliga frågor
Räkna med cirka 1–2 timmar om du redan har Telegram, Google, Postgres och Redis redo.
Nej. Du kommer främst att koppla inloggningsuppgifter, installera community-noden för Google Speech och mappa några fält noggrant.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna med kostnader för Google Speech-to-Text API-användning, som beror på antal ljudminuter och språk.
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änsat antal körningar men kräver grundläggande serverhantering.
Ja, men räkna med lite pill. Du kan ändra språklogiken i Language Router-switchen och dess noder för locale-inställning (engelska, kantonesiska, traditionell/förenklad kinesiska, japanska). Du kan också ersätta noderna “Run Sub-Workflow (Config Required)” med dina egna flöden, som ”Skapa ärende”, ”Tilldela handläggare” eller ”Skicka till Slack”. Många team byter även ut standardmedlemstabellen (sys_member) genom att uppdatera PostgreSQL-frågan som används för att läsa in medlemsdata.
Oftast beror det på en ogiltig bot token eller att boten saknar behörighet i chatten där meddelandena kommer in. Skapa en ny token i BotFather vid behov och välj sedan om inloggningsuppgifterna i Telegram Trigger- och Telegram-svar-noderna. Bekräfta också att du testar i samma chattyp som du ska använda i produktion, eftersom grupp- och privata chattar beter sig olika.
Det beror på din n8n-plan och din server, men de flesta små team klarar några hundra meddelanden per dag utan att behöva tänka särskilt mycket på det.
Ofta, ja. Det här workflowet gör mer än ”transkribera och skicka”: det förgrenas efter innehållstyp, kontrollerar medlemsstatus, cachar uppslag i Redis, routar efter språk och kan lämna över till flera sub-workflows. I Zapier eller Make kan du bygga något liknande, men du landar ofta i flera separata scenarier/zaps, fler betalda operationer och mindre kontroll över felhantering. n8n är också enklare att köra i queue-läge för att skala i produktion om volymen ökar. Om behoven är riktigt enkla (ett röstmeddelande till en transkribering till ett mejl) kan Zapier/Make gå snabbare. Prata med en automationsexpert om du vill ha hjälp att välja.
När röstmeddelanden blir strukturerad text med medlemskontext slutar support att kännas kaotisk. Sätt upp det en gång, så får teamet tillbaka de där timmarna varje vecka.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.