Att kopiera inlägg mellan Telegram-kanaler låter enkelt tills du gör det varje dag. Formateringen skapar fel, länkar blir felaktiga, media försvinner och du måste fortfarande översätta allt för hand.
Det här drabbar marknadschefer som driver flerspråkiga kanaler hårdast. Men grundare och byråoperatörer känner också av det. Med den här Telegram-översättningsautomationen kan du publicera korrekt formaterade, översatta uppdateringar enligt schema utan att behöva sitta och vaka över processen.
Nedan ser du exakt vad det här n8n-flödet gör, vad du behöver för att köra det och vilka vanliga fallgropar du ska undvika för att det ska förbli stabilt.
Så fungerar automationsflödet
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Telegram + OpenAI: översätt och publicera om kanalposter
flowchart LR
subgraph sg0["Daily Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Daily Schedule", pos: "b", h: 48 }
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/>Fetch Channel Page"]
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/html.dark.svg' width='40' height='40' /></div><br/>Extract Post Content"]
n3["<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/>Clean Post Content"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Translate Text", 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/code.svg' width='40' height='40' /></div><br/>Process Media URLs"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Photo?", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Video?", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Text Only?", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Download Photo"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Download Video"]
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/>Send Photo to Channel"]
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/>Send Video to Channel"]
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 Text to Channel"]
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Telegram Channels", pos: "b", h: 48 }
n6 --> n9
n7 --> n10
n8 --> n13
n0 --> n14
n9 --> n11
n10 --> n12
n4 --> n5
n3 --> n4
n1 --> n2
n5 --> n6
n5 --> n7
n5 --> n8
n2 --> n3
n14 --> n1
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 n4 ai
class n6,n7,n8 decision
class n1,n9,n10 api
class n3,n5 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n5,n9,n10,n11,n12,n13 customIcon
Problemet: flerspråkig återpublicering i Telegram är en daglig tidstjuv
Att driva mer än en Telegram-kanal är redan arbete. Lägg till översättning, och det blir en repetitiv rutin som i tysthet tar fokus från riktig marknadsföring. Du hämtar det senaste inlägget, kopierar texten, översätter den, tar bort “signatur”-raden, bifogar rätt foto eller video igen och hoppas att Telegram inte sabbar formateringen. Sedan gör du om det i morgon. Ett enda misstag (fel länk, saknat media, klumpig översättning) ser oprofessionellt ut och folk märker det.
Det blir snabbt mycket. Här är det som oftast fallerar.
- Manuell copy-paste gör dig till “synkmotorn”, vilket är skört och tråkigt.
- Översättningar blir inkonsekventa när du stressar, så er tonalitet glider över tid.
- Återpublicering av media är störigt, särskilt när ett inlägg har en video och en bildtext som måste hålla ihop.
- Schemaläggning är svår att hålla konsekvent, vilket gör att du missar dagar när det blir mycket.
Lösningen: schemalagd återpublicering i Telegram med OpenAI-översättning
Det här flödet körs enligt ett dagligt schema, kontrollerar en offentlig Telegram-källa efter det senaste inlägget och förbereder sedan innehållet för din målkanal. Det hämtar inläggsdata, rensar texten för att ta bort källkanalens signatur och skickar den återstående bildtexten genom OpenAI (GPT-4o-mini) för en naturlig översättning till ditt valda språk. Därefter normaliserar det medialänkar så att bilder och videor kan återpubliceras korrekt. Slutligen publicerar det det översatta inlägget i din målkanal via din Telegram-bot och väljer rätt publiceringsmetod beroende på om inlägget är enbart text, foto + bildtext eller video + bildtext.
Flödet startar när den schemalagda triggern körs (dagligen som standard). Det hämtar och tolkar det senaste kanal-inlägget, rensar och översätter bildtexten, kontrollerar vilket media som finns och återpublicerar rätt format till destinationskanalen.
Det här får du: automation vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du återpublicerar 1 uppdatering per dag från en huvudkanal till en översatt kanal. Manuellt kan du lägga cirka 10 minuter på översättning, 5 minuter på att rensa bildtext och länkar och ytterligare 5 minuter på att bifoga rätt foto eller video igen, alltså runt 20 minuter per dag. Med det här flödet är “arbetet” i princip noll: det kör enligt schema, hämtar senaste inlägget, översätter det och publicerar igen. Du vill fortfarande göra en snabb kontroll i början, men du gör inte längre de mekaniska stegen varje morgon.
Det du behöver
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Telegram Bot API för att publicera i din målkanal
- OpenAI API för att översätta bildtexter på ett naturligt sätt
- OpenAI API-nyckel (hämta den i OpenAI Platform-dashboarden)
Kunskapsnivå: Nybörjare. Du klistrar in autentiseringsuppgifter, ändrar en enda inställningsnod och kör ett test.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett dagligt schema sätter igång allt. Flödet kör vid en bestämd tid (09:00 som standard), så din översatta kanal fortsätter vara aktiv även när du sitter i möten.
Kanalinställningar laddas först. En konfigurationsnod innehåller källkanalens användarnamn, målkanalens identifierare, målspråket och den “signatur”-text du vill ta bort.
Senaste inlägget hämtas och rensas. n8n hämtar kanalsidan, tolkar det senaste inlägget och kör ett rensningssteg som tar bort oönskade rader och snyggar till bildtexten före översättning.
OpenAI översätter, sedan publicerar flödet rätt format. Efter översättningen kontrollerar flödet om inlägget innehåller ett foto, en video eller bara text. Vid behov hämtar det mediafilen och publicerar i din målkanal via din Telegram-bot.
Du kan enkelt ändra målspråk eller regler för signaturrensning så att det matchar ert varumärke. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda dagliga triggern
Det här arbetsflödet körs dagligen och startar med att ställa in kanalkonfigurationen som används genom hela flödet.
- Lägg till och öppna Scheduled Daily Trigger.
- Ställ in schemaregeln att köra vid Trigger At Hour
9. - Anslut Scheduled Daily Trigger till Configure Channel Settings.
Steg 2: Anslut Telegram-källkanalen och hämta sidan
Definiera käll-/målkanalerna och hämta Telegram-kanalsidan för parsning.
- Öppna Configure Channel Settings och ställ in sourceChannel till
[YOUR_ID]. - Ställ in targetChannel till
[YOUR_ID], targetLanguage tillPersianoch channelSignature till[YOUR_ID]. - Öppna Retrieve Channel Page och ställ in URL till
=https://t.me/s/{{ $('Configure Channel Settings').item.json.sourceChannel }}. - Aktivera Send Headers och ställ in User-Agent till
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/0.0.0.0 Safari/537.36.
Tips: Den klisterlappen Flowpast Branding är endast informativ och kan lämnas som den är eller tas bort utan att påverka körningen.
Steg 3: Sätt upp parsning, rensning och AI-översättning
Extrahera det senaste inlägget, sanera det och översätt meddelandets innehåll med OpenAI.
- I Parse Latest Post använder ni Operation
extractHtmlContentmed de angivna CSS-selektorerna förpost,postId,videoochphoto. - Öppna Sanitize Post Text och behåll den medföljande JavaScript-koden som tar bort
channelSignaturemed$('Configure Channel Settings').first().json.channelSignature. - Öppna Translate Message Text och bekräfta att meddelandeinnehållet använder
=Translate the following text to {{ $('Configure Channel Settings').item.json.targetLanguage }}.... - Autentiseringsuppgifter krävs: Anslut era openAiApi-autentiseringsuppgifter i Translate Message Text.
- Anslut Translate Message Text till Normalize Media Links.
⚠️ Vanlig fallgrop: Om targetLanguage lämnas tomt i Configure Channel Settings kommer översättningsprompten att misslyckas eller ge oväntade resultat.
Steg 4: Konfigurera mediarouting och Telegram-utdata
Normalisera media-URL:er, förgrena baserat på mediatyp och publicera till Telegram. Utdataroutingen sker parallellt.
- I Normalize Media Links behåller ni JavaScript-koden som extraherar foto-URL:en från attributet
style. - Normalize Media Links skickar utdata parallellt till Check Photo Present?, Check Video Present? och Check Text Only?.
- I Fetch Photo File ställer ni in URL till
={{ $json.photo }}och behåller Timeout på30000. - I Fetch Video File ställer ni in URL till
={{ $('Parse Latest Post').item.json.video }}och behåller Timeout på60000. - Konfigurera Post Photo to Channel med Operation
sendPhoto, Chat ID={{ $('Configure Channel Settings').item.json.targetChannel }}och Caption={{ $json.message.content }} {{ $('Configure Channel Settings').item.json.channelSignature }}. - Konfigurera Post Video to Channel med Operation
sendVideo, Chat ID={{ $('Configure Channel Settings').item.json.targetChannel }}och Caption={{ $json.message.content }} {{ $('Configure Channel Settings').item.json.channelSignature }}. - Konfigurera Post Text to Channel med Text
={{ $json.message.content }} {{ $('Configure Channel Settings').item.json.channelSignature }}och Chat ID={{ $('Configure Channel Settings').item.json.targetChannel }}. - Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Post Photo to Channel och Post Video to Channel.
- Autentiseringsuppgifter krävs: Post Text to Channel kräver också telegramApi-autentiseringsuppgifter—lägg till dem manuellt eftersom inga är konfigurerade.
⚠️ Vanlig fallgrop: Om källkanalens senaste inlägg är ett foto och foto-URL:en inte normaliseras korrekt kommer Fetch Photo File att misslyckas. Verifiera CSS-selektorn i Parse Latest Post och URL-tolkningen i Normalize Media Links.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att översättning, routing och publicering till Telegram fungerar korrekt.
- Klicka på Execute Workflow för att köra Scheduled Daily Trigger manuellt.
- Bekräfta att Retrieve Channel Page returnerar Telegram-HTML och att Parse Latest Post extraherar
post,photoellervideo. - Verifiera att Translate Message Text ger ut ett översatt meddelande och att Normalize Media Links har en giltig media-URL när det är tillämpligt.
- Kontrollera att endast en av Post Photo to Channel, Post Video to Channel eller Post Text to Channel körs baserat på vilken media som finns.
- När allt fungerar, växla arbetsflödet till Active för att köra dagligen enligt schemat.
Vanliga fallgropar
- Telegram-botens autentiseringsuppgifter kan gå ut eller sakna behörigheter. Om publiceringen misslyckas, kontrollera botens administratörsroll i målkanalen och testa om Telegram-autentiseringen i n8n först.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter om du redan har din bot och dina API-nycklar.
Nej. Du kommer främst att klistra in autentiseringsuppgifter och justera några fält i inställningsnoden.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för OpenAI API, som vanligtvis är några cent per översatt inlägg beroende på längd.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men oftast duplicerar du flödet. Ändra värdet targetLanguage i noden “Configure Channel Settings” och låt varje kopia peka mot en annan målkanal. Vanliga anpassningar är olika rensningsregler i “Sanitize Post Text”, en striktare översättningsprompt i “Translate Message Text” och separata scheman så att du inte publicerar allt på samma minut.
Oftast handlar det om bot-behörigheter. Din bot måste vara administratör i målkanalen, och värdet för målkanalen måste vara i rätt format (som @kanalnamn eller ett chat_id). Om det fungerade en gång och sedan slutade, testa om Telegram-autentiseringen i n8n och skapa om bot-token i BotFather vid behov. Kontrollera också dina n8n-körningsloggar för att bekräfta att felet sker i Telegram-sändnoden, inte tidigare under hämtning eller översättning.
Tillräckligt för de flesta kanaler, eftersom den normalt bearbetar ett senaste inlägg per schemalagd körning.
För det här användningsfallet är n8n oftast bättre eftersom det kan hantera logik med flera grenar (text vs. foto vs. video) på ett snyggt sätt, och kod-/rensningsstegen är enklare att styra. Upplägget med “inga adminrättigheter för källkanalen” passar också bra i n8n:s HTTP + parsning-flöde, som du kan justera om Telegram ändrar sidstruktur. Zapier och Make kan fungera, men du hamnar ofta i högre kostnader när du lägger till villkorsvägar och filhantering. Dessutom innebär egen hosting av n8n att du inte räknar varje litet steg som en debiterbar uppgift. Vill du ha en snabb rekommendation för din setup? Prata med en automationsexpert.
Sätt upp detta en gång och din översatta kanal slutar vara beroende av din kalender. Flödet tar hand om det repetitiva arbetet så att du kan fokusera på vad du ska publicera härnäst.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.