Vergaderingen zijn kostbaar. Een uur meeting met vijf mensen kost je organisatie vijf uur productietijd. De notities achteraf zijn vaak slordig, incompleet of komen nooit bij de juiste mensen terecht. Dit is precies het probleem dat we in deze handleiding oplossen: een n8n workflow die luistert, begrijpt, samenvat en distribueert, volledig automatisch.
Wat je nodig hebt
Voordat je begint, zorg dat je het volgende hebt: een n8n installatie (self-hosted of cloud), een OpenAI API key met toegang tot de Whisper endpoint, een Anthropic API key voor Claude, een Slack workspace met een inkomende webhook URL, en een Google Drive map waar opnames worden geupload. Je hebt ook basiskennis van n8n nodes en HTTP requests nodig.
Stap 1: Google Drive trigger instellen
De workflow start zodra een nieuw audiobestand in een specifieke Google Drive map verschijnt. Maak een nieuwe n8n workflow aan en voeg als eerste node een Google Drive Trigger toe. Configureer deze op de trigger mode 'File Created' en selecteer de map waar jullie vergaderopnames worden opgeslagen, bijvoorbeeld /Vergaderingen/Opnames.
Stel het polling interval in op 5 minuten. Zorg dat de Google Drive credential in n8n de juiste OAuth2 scopes heeft: drive.readonly voor het lezen van bestanden. De trigger geeft vervolgens het bestand-ID, de naam en de download-URL terug die we in de volgende stap gebruiken.
Stap 2: Audiobestand downloaden
Voeg een HTTP Request node toe die het audiobestand van Google Drive downloadt als binaire data. Gebruik de Google Drive download URL uit de trigger output. Stel de response format in op 'File' zodat n8n de binary data doorgeeft aan de volgende node. Dit is cruciaal: Whisper verwacht een multipart form upload, geen URL.
Stap 3: Whisper API transcriptie uitvoeren
Nu het audiobestand beschikbaar is als binary data, sturen we het naar de OpenAI Whisper endpoint. Voeg een nieuwe HTTP Request node toe en configureer deze als multipart form data upload. Whisper ondersteunt mp3, mp4, mpeg, mpga, m4a, wav en webm formaten tot 25MB. Voor grotere bestanden gebruik je de code node om het bestand te splitsen.
Gebruik response_format 'verbose_json' in plaats van plain text. Dit geeft je tijdstempels per segment terug, wat handig is voor de samenvatting. De taalinstelling 'nl' verbetert de nauwkeurigheid voor Nederlandse vergaderingen aanzienlijk. De kosten zijn $0.006 per minuut audio, dus een uur vergadering kost je circa 36 cent.
Stap 4: Transcriptie opschonen met een Code node
De ruwe Whisper output bevat alle segmenten met tijdstempels. Voeg een Code node toe om de transcriptie op te schonen en voor te bereiden voor Claude. We concateneren alle segmenten tot een doorlopende tekst, verwijderen dubbele spaties en voegen alinea-breaks toe op basis van lange pauzes.
Stap 5: Claude API voor samenvatting en actiepunten
Dit is het hart van de workflow. We sturen de opgeschoonde transcriptie naar Claude met een specifiek prompt dat drie outputs genereert: een beknopte samenvatting, een lijst actiepunten met eigenaren, en een lijst van beslissingen. Gebruik claude-3-5-sonnet voor de beste balans tussen kwaliteit en snelheid.
Stap 6: Claude output parsen
Claude retourneert de output als tekst binnen het content array. Voeg een Code node toe om de JSON te parsen en de data klaar te maken voor distributie. Voeg ook foutafhandeling toe voor het geval Claude geen valide JSON terugstuurt.
Stap 7: Bericht sturen naar Slack
Voeg een Slack node toe (of een HTTP Request naar de webhook URL). Bouw een gestructureerd Slack Block Kit bericht op met de samenvatting, beslissingen en actiepunten. Blocks Kit geeft je meer opmaakmogelijkheden dan plain text en maakt het bericht makkelijker scanbaar.
Stap 8: Opslaan in Notion (optioneel)
Naast Slack kun je de samenvatting ook automatisch in een Notion database opslaan. Dit geeft je een doorzoekbaar archief van alle vergaderingen. Voeg een Notion node toe na de Slack node. Zorg dat je een Notion database hebt met de kolommen: Naam (Title), Datum, Samenvatting (Text), Actiepunten (Text), Beslissingen (Text) en Duur (Number).
In de Notion node, kies 'Create Database Item' en map de velden. Voor de datum gebruik je een expression als {{new Date().toISOString().split('T')[0]}} om de huidige datum in ISO formaat te krijgen. De Notion API accepteert datum in YYYY-MM-DD formaat.
Stap 9: Foutafhandeling en retry logica
Een productie-workflow heeft robuuste foutafhandeling nodig. Voeg een Error Trigger node toe als aparte workflow die wordt geactiveerd bij fouten. Configureer ook retry instellingen op de Whisper en Claude nodes: 3 pogingen met exponential backoff (2 seconden, 4 seconden, 8 seconden).
Voor bestanden groter dan 25MB voeg je een IF node toe die controleert op bestandsgrootte. Als het bestand te groot is, gebruik je een Code node om het te splitsen in segmenten van 10 minuten. Verwerk elk segment apart en combineer de transcripties daarna. De n8n Code node heeft toegang tot de Buffer API voor dit soort binaire bewerkingen.
Stap 10: Cron schedule voor dagelijkse batch-verwerking
Als alternatief voor de realtime Google Drive trigger kun je ook een dagelijkse batch instellen. Dit is handig als jullie vergaderingen altijd op vaste tijden plaatsvinden, bijvoorbeeld ochtend standup om 09:00. De batch workflow draait om 18:00 en verwerkt alle opnames van die dag.
Vervang de Google Drive Trigger door een Schedule Trigger met cron expressie '0 18 * * 1-5' (maandag tot vrijdag om 18:00). Voeg daarna een Google Drive node toe in 'List Files' modus die alle bestanden van vandaag ophaalt. Gebruik een Filter node om alleen audiobestanden te selecteren op basis van de mimeType (audio/mpeg, audio/wav, etc.). Gebruik een SplitInBatches node om elk bestand afzonderlijk te verwerken.
Kosten en ROI
De kosten voor deze workflow zijn laag. Whisper kost $0.006 per minuut, dus een gemiddelde vergadering van 45 minuten kost 27 cent. Claude Sonnet kost circa $0.003 per 1000 tokens; een vergadering van 5000 woorden (inclusief prompt) kost ongeveer 4 cent. Per vergadering betaal je dus rond de 31 cent aan API-kosten.
Stel dat jullie 10 vergaderingen per week hebben en het handmatig uitwerken van notities kost gemiddeld 20 minuten per vergadering. Dat is 200 minuten, ofwel meer dan 3 uur per week. Bij een uurtarief van 50 euro bespaart deze workflow jullie 150 euro per week. De API-kosten zijn dan 3,10 euro per week. De terugverdientijd van de bouwtijd (90 minuten) is minder dan een dag.
Verdere optimalisaties
Enkele verbeteringen die je kunt toevoegen: gebruik speaker diarization via een derde partij API (zoals AssemblyAI of Deepgram) om te weten wie wat heeft gezegd. Voeg een kalenderintegratie toe zodat de vergadering automatisch gekoppeld wordt aan de juiste agenda-afspraak. Bouw een feedback loop in via Slack interactieve buttons zodat deelnemers direct kunnen aangeven of actiepunten kloppen. Sla de volledige transcriptie op in Notion zodat mensen later specifieke uitspraken terug kunnen zoeken.
Met deze workflow transformeer je een tijdrovend handmatig proces in een volledig geautomatiseerde pipeline. De combinatie van Whisper voor accurate transcriptie en Claude voor intelligente analyse levert resultaten die even goed of beter zijn dan handmatige uitwerking, in een fractie van de tijd. De n8n workflow is flexibel genoeg om aan te passen aan jullie specifieke behoeften: andere doeldestinaties, extra analyses, of integratie met bestaande tools als Jira of Asana voor actiepuntenbeheer.