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

FileFlows + Whisper, transkript mejlas via Gmail

Rickard Andersson Partner, Nodenordic.se

Du får äntligen ljudfilen. Sedan kommer du på filstorleksgränsen, uppladdningar som misslyckas och den klumpiga ihopklippningen av “del 1 / del 2 / del 3”-transkriptioner som alltid havererar vid sämsta möjliga tillfälle.

Den här automationen för Whisper-transkript via e-post slår hårdast mot poddare, men marknadsförare som återanvänder intervjuer och drift-/ops-team som dokumenterar interna samtal känner också av den. Resultatet är enkelt: långa inspelningar blir ett enda korrekt formaterat transkript i din inkorg, utan att du behöver vaka över processen.

Nedan ser du hur flödet hanterar uppdelning, transkribering och leverans, plus vad du behöver för att köra det stabilt med “verkliga” ljudlängder.

Så fungerar den här automationen

Hela n8n-workflowen, från trigger till slutresultat:

n8n Workflow Template: FileFlows + Whisper, transkript mejlas via Gmail

Problemet: långt ljud knäcker “enkel” transkribering

Whisper är grymt, tills din inspelning är längre än ett snabbt klipp. En MP3 på en timme kan enkelt överstiga uppladdningsgränsen på 25 MB, så du börjar leta verktyg för att dela filen, gissa chunk-längder och hoppas att inget hamnar i fel ordning. Om du gör det här åt kunder eller ett team blir det ännu värre: folk mejlar dig enorma bilagor, du råkar ladda upp fel version och plötsligt blir en “snabb transkribering” en eftermiddag av omförsök och städning. Det är inte svårt arbete. Det är skört arbete.

Friktionen växer snabbt. Här är var det brukar gå sönder.

  • En enda inspelning kan kräva flera manuella uppdelningar bara för att klara API-gränsen.
  • Uppladdningsfel tvingar dig att börja om, och ofta märker du det först mycket senare.
  • Transkriptioner kommer som separata delar, så du lägger tid på att sy ihop och formatera om.
  • Leverans blir ytterligare ett jobb: kopiera text, spara filer och mejla rätt person.

Lösningen: dela, transkribera, slå ihop och mejla automatiskt

Det här flödet gör “transkribering av långt ljud” till en enkel inlämning och en automatisk leverans. Det startar när någon laddar upp en MP3 via ett webbformulär och anger e-postadressen dit transkriptet ska skickas. n8n förbereder sedan filen för säker hantering genom att dela upp den i små uppladdningsdelar på 4 MiB och skicka dem till FileFlows. FileFlows, med FFmpeg, segmenterar ljudet i 15-minutersbitar så att varje del ligger tryggt under Whispers storleksgräns. Varje segment transkriberas via OpenAI Whisper API (franska som standard, men du kan ändra språk), och därefter slår n8n ihop texten igen till ett sammanhängande transkript. Till sist skickar Gmail det färdiga transkriptet automatiskt, eller skickar ett tydligt felmejl om något misslyckas.

Flödet startar med en formulärinskickning i n8n. FileFlows gör grovjobbet med att dela ljudet, så Whisper bara får segment i säker storlek. När transkriberingen är klar sätter n8n ihop en enda textfil och mejlar ut den, vilket betyder att även “sista milen” hanteras.

Vad du får: automation vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du transkriberar två intervjuer på 60 minuter varje vecka för en podcast. Manuellt kanske du lägger cirka 30 minuter på att dela filer, ladda upp delar, vänta och sy ihop texten igen, alltså ungefär 1 timmes adminarbete per vecka innan du ens börjar redigera innehållet. Med det här flödet är “mänsklig tid” närmare 5 minuter per fil (uppladdning + e-post), och bearbetningen kör i bakgrunden. Du får transkriptet på cirka 10–15 minuter per timme ljud, levererat automatiskt till rätt inkorg.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • FileFlows för ljuduppdelning och orkestrering.
  • OpenAI Whisper API för att transkribera varje ljudsegment.
  • Gmail-konto för att mejla transkript och felnotiser.
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard).

Kunskapsnivå: Medel. Du kopplar in behörigheter, sätter några URL:er/sökvägar och bekräftar att FileFlows når din lagring och n8n.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (kostnadsfri konsultation i 15 minuter).

Så fungerar det

En användare skickar in ett formulär med en MP3 och en e-postadress. Den formulärtriggern startar körningen och sparar grundinställningar (som målspråk och callback-detaljer för FileFlows).

MP3:an förbereds för uppladdning och skickas till FileFlows i delar med säker storlek. n8n delar den binära filen i 4 MiB-chunks, loopar igenom dem i batchar och laddar upp varje del via HTTP så att stora filer inte fallerar halvvägs.

FileFlows delar ljudet och n8n transkriberar varje segment med Whisper. Efter att FileFlows skapat 15-minuterssegment väntar n8n på callbacken, plockar ut segmentlistan och loopar igenom den. Whisper transkriberar varje del, och en throttle-väntan hjälper till att undvika toppar i anropsfrekvens när du processar mycket.

Allt slås ihop, görs om till en textfil och mejlas via Gmail. När alla segment är klara kombinerar n8n transkripttexten i rätt ordning, gör om den till en nedladdningsbar fil och skickar slutmejlet. Om uppdelning eller transkribering misslyckas skickar flödet i stället en felnotis så att du slipper gissa.

Du kan enkelt ändra språk och segmentlängd efter behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera formulärtriggern

Skapa det publika formuläret som samlar in ljudfilen och mottagarens e-postadress för att starta arbetsflödet.

  1. Lägg till noden Incoming Form Capture som trigger.
  2. Ställ in Form TitleAudio Transcription.
  3. Ställ in Form DescriptionSelect an audio file to transcribe and an email address to receive the result.
  4. I Form Fields lägger ni till ett filfält med etiketten file (obligatoriskt) som accepterar .mp3, samt ett e-postfält med etiketten email (obligatoriskt).
  5. Bekräfta att svarsmeddelandet i Respond With Options är satt till Your file has been received; an email will be sent to you upon completion of transcription or in case of error.

Tips: Koden i Create 4MiB Segments förväntar att det uppladdade filfältet heter file. Om ni byter namn på fältet behöver ni uppdatera koden därefter.

Steg 2: konfigurera arbetsflödeskonstanter och filchunkning

Definiera chunkstorleken och FileFlows API-inställningar, och dela sedan upp inkommande ljud i 4 MiB-chunkar för uppladdning.

  1. Öppna Set Workflow Config och sätt chunk_size till {{ 4 * 1024 * 1024 }}.
  2. Sätt fileflows_url till er FileFlows-bas-URL, t.ex. http://0.0.0.0:5000.
  3. Sätt flowUid till ert FileFlows flow-ID och ersätt [YOUR_ID].
  4. I Create 4MiB Segments behåller ni den medföljande JavaScript-koden för att läsa den binära uppladdningen och generera chunk-metadata och binära delar.
  5. Säkerställ att Iterate Chunk Batches är kopplad efter Create 4MiB Segments för att styra chunk-uppladdningarna.

⚠️ Vanlig fallgrop: Om flowUid eller fileflows_url är felaktig kommer Upload Segment Part och Initiate Audio Split att misslyckas utan tydlig felindikering, och processen fastnar vid Pause for Callback.

Steg 3: koppla ihop FileFlows-uppladdning och split-förfrågningar

Ladda upp varje chunk till FileFlows, validera svaret och trigga split-operationen på serversidan.

  1. I Upload Segment Part sätter ni URL till ={{ $('Set Workflow Config').item.json.fileflows_url }}/api/library-file/upload och Method till POST.
  2. Sätt Content Type till multipart-form-data och mappa body-parametrar: fileName till {{$json["fileName"]}}, chunkNumber till {{$json["chunkNumber"]}}, totalChunks till {{$json["totalChunks"]}} och file till binärfältet chunk.
  3. Använd Exclude Temp Records för att filtrera bort temporära objekt med villkoret {{ $json.data }} notEndsWith .temp.
  4. I Success Check bekräftar ni att villkoret {{ $json.data }} exists för att routa giltiga uppladdningar till Initiate Audio Split.
  5. Konfigurera Initiate Audio Split med URL ={{ $('Set Workflow Config').item.json.fileflows_url }}/api/library-file/manually-add och JSON-body { "FlowUid": "{{ $('Set Workflow Config').first().json.flowUid }}", "Files": [ "{{ $json.data }}" ], "CustomVariables": { "callbackUrl": "{{$execution.resumeUrl}}" } }.
  6. Låt Pause for Callback vara inställd på Resume webhook, HTTP Method POST och Resume Amount 30 minutes för att vänta på att FileFlows skickar tillbaka splittrat ljud.

Steg 4: konfigurera ljudextraktion och transkriberingsloop

Transformera callback-binära data till objekt, loopa igenom varje ljuddel och skicka dem till OpenAI för transkribering.

  1. I Extract Audio Parts behåller ni den medföljande JavaScript-koden för att konvertera alla returnerade binärer till individuella objekt med ett binärfält som heter Audio.
  2. Säkerställ att Process Segment Loop följer efter Extract Audio Parts för att iterera varje segment.
  3. Konfigurera OpenAI Transcribe med Resource audio, Operation transcribe och Binary Property Name Audio. Låt Language vara satt till fr under alternativ om ni vill ha fransk transkribering.
  4. Inloggning krävs: Anslut era openAiApi-uppgifter i OpenAI Transcribe.
  5. Använd Throttle Pause efter OpenAI Transcribe för att styra request-tempo innan ni loopar tillbaka till Process Segment Loop.

Tips: Noderna Segment Marker och Transcription Output är noOp-markörer för att hålla loopen strukturerad och enkel att felsöka.

Steg 5: slå ihop transkript och leverera resultat

Sammanställ alla transkriberingsdelar till en enda textfil och e-posta den till den som begärde den.

  1. I Combine Transcripts behåller ni JavaScript-koden som konkatenerar item.json.text till ett enda fält transcription.
  2. Konfigurera Build Text File med Operation toText och Source Property transcription.
  3. Sätt alternativen för Build Text File till File Name transcription.txt och Encoding utf8.
  4. I Email Transcript Delivery sätter ni Send To till ={{ $('Incoming Form Capture').first().json.email }}, Subject till Your transcription is ready och inkluderar det medföljande meddelandet.
  5. Inloggning krävs: Anslut era gmailOAuth2-uppgifter i Email Transcript Delivery.

Steg 6: lägg till felhantering för split- och transkriberingsfel

Säkerställ att användare får återkoppling när FileFlows eller transkriberingen misslyckas.

  1. Från Success Check verifierar ni att false-grenen går till Split Error Email.
  2. I Split Error Email behåller ni Send To satt till ={{ $('Incoming Form Capture').first().json.email }} och bekräftar innehållet i felmeddelandet.
  3. Från OpenAI Transcribe säkerställer ni att felutgången kopplas till Email Error Notice för att avisera om transkriberingsproblem.
  4. Inloggning krävs: Anslut era gmailOAuth2-uppgifter i både Email Error Notice och Split Error Email.

⚠️ Vanlig fallgrop: Om ni tar bort felutgången från OpenAI Transcribe kommer misslyckade transkriberingar inte att trigga Email Error Notice, vilket gör att användare blir utan återkoppling.

Steg 7: testa och aktivera ert arbetsflöde

Validera hela pipelinen med en testinsändning innan ni aktiverar den i produktion.

  1. Klicka på Execute Workflow och skicka in formuläret Incoming Form Capture med en liten .mp3-fil och en giltig e-postadress.
  2. Verifiera att Upload Segment Part, Initiate Audio Split och Pause for Callback körs utan fel.
  3. Bekräfta att OpenAI Transcribe producerar text-utdata och att Combine Transcripts skapar fältet transcription.
  4. Kontrollera att Email Transcript Delivery skickar ett e-postmeddelande med transcription.txt bifogad till den angivna adressen.
  5. När testet lyckas växlar ni arbetsflödet till Active för att ta emot insändningar från formuläret i drift.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Gmail-behörigheter kan löpa ut eller kräva specifika rättigheter. Om något slutar fungera, kontrollera först statusen för ditt kopplade Google-konto i n8n-behörigheter.
  • Om du använder Wait-noder eller extern rendering varierar processeringstiderna. Öka väntetiden om noder längre ned fallerar på tomma svar.
  • OpenAI-prompter och standardval spelar större roll än många tror. Whisper-noden är konfigurerad för franska som standard här, så bekräfta språkinställningar tidigt annars rättar du fel i efterhand.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för Whisper-transkript via e-post?

Cirka 45 minuter om FileFlows och Gmail redan fungerar.

Behöver jag kunna koda för att automatisera leverans av Whisper-transkript via e-post?

Nej. Du klistrar främst in behörigheter och justerar några inställningar i formuläret, FileFlows-endpointen och Whisper-noden.

Är n8n gratis att använda för det här workflowet för Whisper-transkript via e-post?

Ja. n8n har ett gratis alternativ för egen hosting 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 kostnader för OpenAI Whisper API på 0,006 USD per minut (så en inspelning på 1 timme är cirka 0,36 USD).

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

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 serveradministration.

Kan jag anpassa det här workflowet för Whisper-transkript via e-post för engelskt ljud och andra chunk-storlekar?

Ja, men ändra på två ställen. Uppdatera språkinställningen i noden OpenAI Transcribe och justera sedan FileFlows split-inställningar så att dina segment håller sig under 25 MB-gränsen. Vanliga justeringar är att byta från franska till engelska, korta segmenten för brusigt ljud och ändra e-postmallen så att den inkluderar talaretiketter eller en länk till en sammanfattning.

Varför misslyckas min FileFlows-anslutning i det här flödet?

Oftast är det nätverksåtkomst eller en felaktig endpoint-URL mellan n8n och FileFlows, ärligt talat. Bekräfta att n8n kan nå FileFlows-hostens nätverk, och dubbelkolla sedan inställningarna i HTTP Request-noden och eventuella headers som krävs. Om FileFlows kör i Docker är portmappning och interna DNS-namn vanliga bovar. Säkerställ också att lagringssökvägen som FileFlows använder är skrivbar, annars kan split-jobbet “lyckas” men inte producera något.

Hur många ljudfiler kan den här automationen för Whisper-transkript via e-post hantera?

På n8n Cloud Starter begränsas du av månatliga körningar, medan egen hosting främst begränsas av din server och hur snabbt FileFlows kan processa jobb. Ett praktiskt upplägg är att börja med några filer per dag och sedan öka parallelliteten när du känner dig trygg med köhantering och väntetider. Om du förväntar dig toppar (som 20 uppladdningar efter ett event) kan du lägga in längre väntetider och lite mer throttling så att Whisper och FileFlows inte blir överbelastade.

Är den här automationen för Whisper-transkript via e-post bättre än att använda Zapier eller Make?

För transkribering av långt ljud, ja. Zapier och Make får det tufft så fort du behöver chunkade uppladdningar, callbacks, loopar över segment och pålitliga felmejl i ett och samma flöde. n8n hanterar förgreningar och loopar snyggt, och du kan köra egen hosting för att slippa överraskningar med per-uppgift-prissättning när volymen ökar. Nackdelen är uppsättningen: du lägger lite mer tid på att koppla FileFlows och testa vänta/callback-logiken. Om du vill att någon kvalitetssäkrar upplägget, prata med en automationsexpert.

När det här väl rullar slutar transkribering av långt ljud att vara ett återkommande måste. Du laddar upp, väntar lite, får transkriptet och går 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.

×

Använd mall

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

Launch login modal Launch register modal