Du hittar en Reel som fungerar, du säger ”vi borde återanvända den här”, och sen… händer inget. Eller ännu värre: någon laddar ner den manuellt, försöker plocka ut ljudet, gissar hooken och den ”snabba återanvändningen” blir en stökig halvdagsuppgift.
Den här Reel script automation drabbar content managers först, om vi ska vara ärliga. Byråägare märker det när kunder vill ha volym. Och ensamma kreatörer märker det när konsekvensen hänger på sena kvällar med kopiera/klistra in. Resultatet är enkelt: skicka en Reel-länk i Telegram och få användbara hooks, manus och insikter loggade prydligt i Google Sheets.
Nedan ser du hur flödet fungerar, vad det ersätter och vad du behöver för att få det att fungera utan att förvandla veckan till ett ”automationsprojekt”.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Telegram till Google Sheets: reels blir manus
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Wait2", 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/telegram.svg' width='40' height='40' /></div><br/>Send a text message"]
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", 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/>Telegram Trigger"]
n5@{ icon: "mdi:brain", form: "rounded", label: "Mistral Cloud Chat Model", pos: "b", h: 48 }
n6["<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/>Extract::Instagram Reel URL"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::URL Extracted", pos: "b", h: 48 }
n8["<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/>Respond::Invalid URL"]
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/>Apify::Scrape Reel Metadata"]
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::Reel Downloadable", 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/>Respond::Reel Download Failed1"]
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/>Download::Reel File"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>FreeConvert::Import Reel"]
n14["<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/>Check::Import Status"]
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::Import Successful", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>FreeConvert::Submit MP3 Conv.."]
n17@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n18["<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/>Check::Conversion Status"]
n19@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::Conversion Complete", pos: "b", h: 48 }
n20["<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::MP3 File"]
n21["<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/>AssemblyAI::Submit Transcrip.."]
n22["<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/>Check::Transcript Status"]
n23@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::Transcript Present", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::Speech Detected", pos: "b", h: 48 }
n25["<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/>Respond::No Speech Found"]
n26@{ icon: "mdi:robot", form: "rounded", label: "AI::Generate Hook Ideas & Sc..", pos: "b", h: 48 }
n27@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate::AI Output Fields", pos: "b", h: 48 }
n28@{ icon: "mdi:database", form: "rounded", label: "Storage::Log to Google Sheet", pos: "b", h: 48 }
n0 --> n14
n17 --> n18
n1 --> n22
n4 --> n6
n20 --> n21
n12 --> n13
n14 --> n15
n7 --> n9
n7 --> n8
n18 --> n19
n22 --> n23
n13 --> n0
n5 -.-> n26
n3 -.-> n26
n24 --> n26
n24 --> n25
n27 --> n28
n27 --> n26
n9 --> n10
n6 --> n7
n15 --> n16
n15 --> n0
n10 --> n12
n10 --> n11
n28 --> n2
n23 --> n24
n23 --> n1
n19 --> n20
n19 --> n17
n21 --> n1
n26 --> n27
n16 --> n17
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 n4 trigger
class n3,n26 ai
class n5 aiModel
class n7,n10,n15,n19,n23,n24,n27 decision
class n28 database
class n9,n12,n13,n14,n16,n18,n20,n21,n22 api
class n6 code
classDef customIcon fill:none,stroke:none
class n2,n4,n6,n8,n9,n11,n12,n13,n14,n16,n18,n20,n21,n22,n25 customIcon
Utmaningen: att återanvända Reels tar alldeles för lång tid
Återanvändning borde vara den enkla delen av content. Du har redan bevis på vad som fungerade, ämnet är validerat och strukturen finns där. Men för att göra en Instagram Reel till ”återanvändbara tillgångar” hamnar du ändå mellan verktyg: nedladdare, konverterare, transkriberingstjänster, anteckningsdokument och kalkylblad. Varje överlämning är en chans att tappa länken, felmärka filen eller glömma vad som fick Reelen att prestera från början. Och när du gör det här varje vecka (eller varje dag) är den mentala belastningen den verkliga skatten.
Det drar snabbt iväg. Här är var processen oftast fallerar.
- Du slösar cirka 30 minuter per Reel bara på att flytta filer och vänta på konverteringar.
- Transkriptioner är inkonsekventa eller saknas, så teamet improviserar och manusen blir generiska.
- Hooks ligger i någons anteckningsapp, vilket betyder att ingen kan återanvända dem senare.
- När Reelen saknar tal (eller har mutat ljud) får du reda på det först efter att du redan har bränt tid.
Lösningen: skicka en Reel-länk, få manus loggade automatiskt
Det här flödet gör Telegram till din ”återanvändningsinkorg” och Google Sheets till ditt content-bibliotek. Du klistrar in en Instagram Reel-URL i Telegram och automatiseringen tar över. Den hämtar Reel-detaljerna, laddar ner videon, konverterar den till en ljudfil (MP4 till MP3) och skickar sedan ljudet för transkribering. När transkriptionen är klar använder den en LLM (OpenAI eller Mistral) för att analysera vad som sägs och hur det positioneras, och genererar sedan hooks och färdiga kortform-manus. Till sist läggs allt till i ett Google Sheet så att teamet kan sortera, söka, fördela och återanvända utan att leta i chattar eller mappar.
Flödet startar med ett Telegram-meddelande som innehåller Reel-länken. Därefter hanterar HTTP-anrop nedladdning och filkonvertering, AssemblyAI skapar transkriptionen och AI-agenten skriver dina hooks och manus. Slutresultatet landar i Google Sheets, och Telegram skickar en snabb uppdatering så att du vet att det är klart.
Vad som förändras: före vs. efter
| Det här elimineras | Effekt du kommer att märka |
|---|---|
|
|
Effekt i verkligheten
Säg att teamet återanvänder 10 Reels per vecka. Manuellt kanske ni lägger cirka 10 minuter på nedladdning, 10 minuter på att konvertera till ljud och 15 minuter på att transkribera och sammanfatta per Reel, plus ytterligare 15 minuter för att ta fram hooks och manusutkast. Det är ungefär 50 minuter styck, eller cirka 8 timmar i veckan. Med det här flödet är den ”mänskliga” delen att skicka länken (en minut) och att skumma igenom resultatet i Google Sheets (kanske 5 minuter). Du får tillbaka större delen av den dagen, varje vecka.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- Telegram-bot för att skicka Reel-länkar som triggers
- Google Sheets för att lagra manus, hooks och insikter
- AssemblyAI API-nyckel (hämta den från din AssemblyAI-dashboard)
Kunskapsnivå: Medel. Du kopplar ihop några tjänster, klistrar in API-nycklar och testar med en riktig Reel-länk.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödesöversikt
Ett Telegram-meddelande sätter igång det. Du skickar en Instagram Reel-URL till din Telegram-bot och flödet tolkar meddelandet för att hitta länken. Om ingen länk upptäcks svarar den direkt så att du slipper gissa.
Reelen hämtas och laddas ner. Ett HTTP-anrop hämtar Reel-informationen (via Apify i den här setupen) och kontrollerar att den faktiskt går att ladda ner. Om Instagram blockerar åtkomst eller länken är ogiltig får du en Telegram-varning istället för att det misslyckas tyst.
Video blir ljud, och ljud blir text. Flödet laddar upp MP4:an till FreeConvert, pollar tills jobbet är klart, laddar ner MP3:an och skickar den till AssemblyAI för transkribering. Det fortsätter att kolla tills transkriptionen är klar (de där Wait-noderna gör faktiskt jobbet här).
AI gör transkriptionen till tillgångar. När tal upptäcks genererar AI-agenten en nischsammanfattning, huvudbudskapet, tre hooks och tre kortform-manus, och sedan validerar en strukturerad parser att resultatet går att använda. Om det inte gör det loopar flödet tillbaka och genererar om istället för att logga skräp.
Allt loggas och du får en statusuppdatering. Raden läggs till i Google Sheets och Telegram skickar ett klart-meddelande så att du vet att innehållet är redo för granskning.
Du kan enkelt justera AI-prompterna för att matcha ditt varumärkes tonalitet och din manusstil utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera Telegram Incoming Trigger
Det här arbetsflödet startar när ett nytt Telegram-meddelande kommer in och skickar meddelandet vidare till tolkningslogiken.
- Lägg till och öppna Telegram Incoming Trigger.
- Credential Required: Anslut era telegramApi-uppgifter.
- Låt Updates vara satt till
message. - Säkerställ att Telegram Incoming Trigger är kopplad till Parse Instagram Reel Link enligt flödet.
Steg 2: Tolka och validera reel-URL:en
Det här steget extraherar Instagram reel-URL:en från det inkommande meddelandet och hanterar saknade länkar.
- Öppna Parse Instagram Reel Link och behåll JavaScript Code som det är för URL-extrahering.
- I Verify Reel Link Found bekräftar ni att villkoret kontrollerar att
{{ $json.reel_url }}inte är tom. - Konfigurera Notify Missing Reel Link med Text satt till
Couldn't find any reel's URL. Please try againoch Chat ID satt till[YOUR_ID]. - Credential Required: Anslut era telegramApi-uppgifter i Notify Missing Reel Link.
null och routa till Notify Missing Reel Link.Steg 3: Hämta och ladda ner reel-videon
Arbetsflödet använder Apify för att hämta reel-metadata och bekräftar om videon kan laddas ner.
- Öppna Apify Fetch Reel Info och ställ in URL till
https://api.apify.com/v2/acts/red.cars~universal-content-extractor/run-sync-get-dataset-items. - Ställ in JSON Body till
{ "urls": ["{{ $('Parse Instagram Reel Link').item.json.reel_url }}"], "quality": "best", "format": "mp4", "audioOnly": false, "removeWatermark": false, "maxItems": 100 }. - Lägg till er Apify API-nyckel i Header Parameters genom att ersätta
Bearer [CONFIGURE_YOUR_API_KEY]. - I Confirm Reel Downloadable verifierar ni att villkoret jämför
{{ $json.success.toString() }}medtrue. - Konfigurera Alert Reel Access Failed med Text satt till
This video is private or not available. For private content, try providing authentication cookies in the input or try with different video.och Chat ID satt till[YOUR_ID]. - Credential Required: Anslut era telegramApi-uppgifter i Alert Reel Access Failed.
- Öppna Download Reel Video och ställ in URL till
{{ $json.downloadUrl }}.
Steg 4: Konvertera video till ljud och starta transkribering
Den här delen hanterar import/konvertering via FreeConvert och skickar ljud till AssemblyAI för transkribering.
- I FreeConvert Import Job ställer ni in URL till
https://api.freeconvert.com/v1/process/jobsoch behåller JSON Body som refererar till$json.downloadUrl. - Bekräfta att Pause Import Check är kopplad till Check Import Progress för polling.
- I Check Import Progress ställer ni in URL till
https://api.freeconvert.com/v1/process/jobs/{{ $json["id"] }}. - I Validate Import Complete verifierar ni att villkoret kontrollerar att
{{ $json.status }}är lika medcompleted. - Konfigurera FreeConvert Convert to MP3 med angiven JSON Body för att skapa MP3-utdata.
- I Pause Conversion Check låter ni Amount vara satt till
10och kopplar till Check Conversion Progress. - Ställ in Check Conversion Progress URL till
https://api.freeconvert.com/v1/process/jobs/{{ $json.id }}och bekräfta att Verify Conversion Done kontrollerar att{{ $json.status }}är lika medcompleted. - I Download MP3 Audio ställer ni in URL till
{{ $json.tasks[1].result.url }}. - I AssemblyAI Start Transcript ställer ni in URL till
https://api.assemblyai.com/v2/transcriptoch audio_url till{{ $json.tasks[1].result.url }}. - Lägg till er AssemblyAI-nyckel i headers för AssemblyAI Start Transcript och Check Transcript Progress genom att ersätta
[CONFIGURE_YOUR_API_KEY]. - Säkerställ att Delay Transcript Poll kopplar till Check Transcript Progress, och att Route Transcript Ready routar statusen när den är klar vidare.
Steg 5: Sätt upp AI-analys och tolkning av utdata
När transkriberingen är klar genererar AI hooks och manus och validerar den strukturerade responsen.
- I Confirm Speech Detected bekräftar ni att villkoret kontrollerar att
{{ $json.text }}inte är tom. - Sätt Notify No Speech Text till
The Agent couldn't detect any speech in the reel. Please try again with different reel's urloch Chat ID till[YOUR_ID]. - Credential Required: Anslut era telegramApi-uppgifter i Notify No Speech.
- Öppna AI Create Hooks & Scripts och ställ in Text till
{{ $json.text }}. - Behåll den definierade prompten i System Message i AI Create Hooks & Scripts för att generera nisch, kärnbudskap och tre idéer/manus.
- Säkerställ att Mistral Chat Engine är ansluten som språkmodell för AI Create Hooks & Scripts.
- Credential Required: Anslut era mistralCloudApi-uppgifter i Mistral Chat Engine.
- Verifiera att Structured Result Parser har JSON-schemaexemplet konfigurerat; credentials (om det krävs) ska läggas till i AI Create Hooks & Scripts, inte i parsern.
- I Validate AI Output Data bekräftar ni att kontrollerna validerar alla utdatafält som
{{ $json.output.niche }},{{ $json.output.core_message }}samt idéernas titlar/manus.
Steg 6: Anslut Google Sheets och Telegram-utdata
Spara all extraherad metadata och AI-utdata i Google Sheets och skicka därefter en bekräftelse i Telegram.
- Öppna Append to Google Sheet och ställ in Operation till
appendOrUpdate. - Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter i Append to Google Sheet.
- Ställ in Document till
[YOUR_ID]och Sheet tillSheet1(gid0). - Mappa kolumner med de uttryck som anges, till exempel Title =
{{ $('Apify Fetch Reel Info').item.json.metadata.title }}och idea_1 ={{ $('AI Create Hooks & Scripts').item.json.output.ideas[0].title }}. - I Send Telegram Update ställer ni in Chat ID till
[YOUR_ID]och behåller Text-mallen med uttryck som{{ $('Apify Fetch Reel Info').item.json.metadata.uploader }}och{{ $json.niche_and_category }}. - Credential Required: Anslut era telegramApi-uppgifter i Send Telegram Update.
Steg 7: Testa och aktivera ert arbetsflöde
Validera hela reel-till-analys-pipelinen och aktivera sedan arbetsflödet för löpande användning.
- Klicka på Execute Workflow och skicka en giltig Instagram reel-URL till er Telegram-bot.
- Bekräfta att Parse Instagram Reel Link extraherar
reel_urloch att Apify Fetch Reel Info returnerar metadata ochdownloadUrl. - Verifiera att polling-loopen för FreeConvert och AssemblyAI slutförs och producerar transkriptionstext i Check Transcript Progress.
- Kontrollera att Append to Google Sheet lägger till eller uppdaterar en rad med alla mappade fält.
- Säkerställ att Send Telegram Update postar ett lyckat-meddelande i chatten.
- När ni är nöjda växlar ni arbetsflödet till Active för att köra i produktion.
Se upp med
- Google Sheets-autentisering kan löpa ut eller kräva specifika behörigheter. Om det strular, börja med att kontrollera åtkomst för Google Cloud service account och delningsbehörigheterna för Sheetet.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du redigera output i all evighet.
Vanliga frågor
Cirka en timme om du redan har API-nycklarna klara.
Ja, men du behöver någon som är bekväm med att klistra in API-nycklar och testa några körningar. Efter det är användningen så enkel som att skicka ett Telegram-meddelande.
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 volym. Du behöver också räkna in API-användning för AssemblyAI, FreeConvert och din LLM (vanligtvis några dollar i månaden vid små volymer).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Du kan byta LLM som används i steget ”AI Create Hooks & Scripts” (OpenAI vs. Mistral) utan att ändra resten av pipelinen. De flesta anpassningar sker i prompten: justera hook-formler, lägg till ett utdrag av varumärkesröst eller kravställ en viss manuslängd. Om du vill lagra på annat sätt kan du byta ut ”Append to Google Sheet” mot Airtable, Notion eller en CRM-rad. Team justerar också ofta Telegram-statusmeddelandena så att redaktörer vet exakt vad som ska granskas.
Oftast handlar det om bot-token, chattbehörigheter eller att du skriver till fel bot. Skapa en ny Telegram bot-token, uppdatera den i n8n och bekräfta att triggern lyssnar på samma chatt där du skickar Reel-URL:en. Om flödet kör men inte kan svara saknar boten ofta behörighet i den konversationen. Kontrollera också att meddelandet faktiskt innehåller en fullständig Instagram-URL, eftersom länkparsern kommer att misslyckas med förkortad eller felaktigt formaterad text.
På n8n Cloud Starter klarar du normalt några tusen körningar per månad, och Pro hanterar mer. Om du self-hostar finns ingen körningsgräns, men din server och API:ernas rate limits blir flaskhalsen. I praktiken bearbetar det här flödet en Reel åt gången per körning, och wait-/pollingstegen gör att du vill sprida ut inskickade jobb om du kör stora batcher. För de flesta små team är 10–50 Reels per dag realistiskt om dina API:er är finansierade och stabila.
Ofta, ja. Det här flödet bygger på filhantering i flera steg (ladda ner video, konvertera, polla, ladda ner ljud), villkorsstyrd branching och ”försök igen”-logik när AI-output inte godkänns vid validering. n8n hanterar den typen av orkestrering snyggt, och du kan self-hosta för obegränsade körningar, vilket spelar roll när du skalar återanvändningen. Zapier eller Make kan fortfarande göra det, men polling-loopar och felhantering blir oftast klumpigt (och dyrt) när volymen växer. Om du bara behöver ”skicka länk, skriv en sammanfattning” kan enklare verktyg räcka. Prata med en automationsexpert om du vill ha en snabb rekommendation för din stack.
När det här väl rullar slutar återanvändning vara en återkommande börda och blir en enkel vana. Skicka länken, få tillgångarna, gå vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.