Handleidingen · n8n

Klantgesprekken automatisch samenvatten en opslaan met Whisper, n8n en Notion

Klantgesprekken automatisch transcriberen en samenvatten met Whisper, n8n en Notion. Notities zonder nabewerking.

🟡 Gevorderd — beetje technisch ⏱ 75 minuten
Tools: Whispern8nNotionClaude
Klantgesprekken automatisch samenvatten en opslaan met Whisper, n8n en Notion

Na elk klantgesprek verdwijnt waardevolle informatie in fragmentarische aantekeningen of verdampt simpelweg uit het geheugen. Met een automatische transcriptie- en samenvattingspijplijn op basis van Whisper, n8n en Notion leg je elk gesprek volledig vast: transcriptie, gestructureerde samenvatting, actiepunten en sentimentanalyse -- zonder handmatig werk.

Architectuur van de workflow

De workflow bestaat uit vijf logische fases: (1) trigger wanneer een nieuw audiobestand wordt geupload naar Google Drive of Dropbox, (2) het audiobestand downloaden en doorsturen naar de OpenAI Whisper API voor transcriptie, (3) de transcriptietekst aanleveren aan Claude met een gestructureerde prompt voor samenvatting, actiepunten en sentimentanalyse, (4) de gestructureerde output opslaan als nieuwe pagina in een Notion-database, en (5) een Slack-notificatie sturen naar de verantwoordelijke accountmanager. De totale verwerkingstijd voor een gesprek van 30 minuten is gemiddeld 90 seconden.

Benodigdheden

Voor deze handleiding heb je nodig: een n8n-installatie (minimaal versie 1.30), een OpenAI API-sleutel met toegang tot het Whisper-model, een Anthropic API-sleutel voor Claude, een Notion-workspace met een database voor klantgesprekken, een Google Drive of Dropbox account voor audio-opslag, en een Slack-workspace met bot-token. Optioneel: een opname-app op je telefoon (Otter.ai, Notta of simpelweg de standaard Voice Memos app) die automatisch synchroniseert naar Google Drive.

Stap 1: Notion database inrichten

Maak in Notion een nieuwe database aan met de naam 'Klantgesprekken'. Voeg de volgende eigenschappen toe: Titel (Title - standaard aanwezig), Klant (Text), Datum (Date), Duur (Number, format: minuten), Deelnemers (Multi-select), Samenvatting (Text), Actiepunten (Text), Sentiment (Select: Positief / Neutraal / Gemengd / Negatief), Vervolgstap (Checkbox), Transcriptie (Text - voor de volledige tekst), en Status (Select: Nieuw / In behandeling / Afgehandeld). Noteer de database-ID vanuit de URL (het deel na notion.so/ en voor het vraagteken).

Stap 2: Google Drive trigger instellen in n8n

Maak een nieuwe n8n workflow aan en klik op 'Add first step'. Zoek naar 'Google Drive Trigger' en selecteer deze. Verbind je Google-account via OAuth (zie de Google Cloud instructies in de vorige handleiding). Stel de trigger in op 'File Created' en wijs een specifieke map aan (bijv. /Klantgesprekken). Stel ook een bestandstype-filter in: accepteer alleen .mp3, .mp4, .m4a, .wav en .webm bestanden. Als je Dropbox verkiest, gebruik je de 'Dropbox Trigger' node met vergelijkbare instellingen.

Stap 3: Audiobestand downloaden

Na de trigger voeg je een 'Google Drive' node toe met de actie 'Download File'. Gebruik de bestand-ID uit de trigger-output ({{$trigger.json.id}}) als input. n8n haalt het binaire bestand op en slaat het tijdelijk op in het workflow-geheugen. Zorg dat de node instelling 'Binary Property' op 'data' staat -- dit is het veld waarnaar de volgende Whisper node verwijst.

Stap 4: Transcriptie via Whisper API

Voeg een 'HTTP Request' node toe voor de Whisper API. Stel de URL in op https://api.openai.com/v1/audio/transcriptions en de methode op POST. Gebruik multipart/form-data als Content-Type. Voeg twee form-velden toe: 'file' (met het binaire audiobestand als waarde, gebruik {{$binary.data}}) en 'model' (waarde: whisper-1). Optioneel voeg je 'language' toe met waarde 'nl' voor betere nauwkeurigheid bij Nederlandstalige gesprekken.

Stap 5: Claude structureert de transcriptie

Na de Whisper-transcriptie voeg je een 'HTTP Request' node toe voor de Anthropic API (https://api.anthropic.com/v1/messages). Bouw een gedetailleerde prompt die Claude vraagt de transcriptietekst te analyseren en te structureren in vier onderdelen: een beknopte samenvatting (3-5 zinnen), genummerde actiepunten met eigenaar en deadline waar mogelijk, een sentimentanalyse (Positief/Neutraal/Gemengd/Negatief met korte toelichting) en een aanbevolen vervolgstap. Vraag Claude de output in geldig JSON-formaat te retourneren.

Stap 6: JSON parsen vanuit Claude-response

Claude retourneert het JSON-object als tekst in de content-array. Voeg een 'Code' node toe om de response te parsen naar een JavaScript-object dat je kunt gebruiken in de Notion-node.

Stap 7: Opslaan in Notion database

Voeg een 'Notion' node toe met de actie 'Create a database item'. Selecteer je Notion-credential en vul de database-ID in. Map de velden van de Claude-output en de trigger naar de Notion properties: Titel naar de bestandsnaam zonder extensie, Datum naar de aanmaamdatum van het bestand, Samenvatting naar parsed.samenvatting, Actiepunten naar de actiepunten-array samengevoegd met newlines, Sentiment naar parsed.sentiment, en de Transcriptie naar de volledige Whisper-tekst. Stel de Status in op 'Nieuw'.

Stap 8: Slack notificatie versturen

Voeg een 'Slack' node toe als laatste stap in de workflow. Stuur een notificatie naar de verantwoordelijke accountmanager met een kort overzicht: gesprekspartner, datum, sentiment en de eerste actiepunt. Voeg ook de directe Notion-link toe zodat de accountmanager met een klik naar de volledige samenvatting kan navigeren.

Stap 9: Batch-verwerking van bestaande opnames

Heb je een archief van bestaande klantgespreksopnames? Je kunt de workflow handmatig triggeren voor bestaande bestanden via een aparte 'Google Drive' node die alle bestanden in de map ophaalt. Voeg een 'Split in Batches' node toe om maximaal 5 bestanden tegelijk te verwerken (om rate limits op de Whisper API te vermijden). De Whisper API heeft een limiet van 25 MB per bestand en verwerkt 10 verzoeken per minuut op de standaard API. Voor grote archieven kun je batchgewijs door de nacht laten verwerken met throttling via een 'Wait' node van 10 seconden tussen elk verzoek.

Troubleshooting en veelgestelde vragen

Whisper geeft een 413-fout (Request Entity Too Large): het audiobestand is groter dan 25 MB. Comprimeer het bestand eerst met ffmpeg (ffmpeg -i input.mp4 -b:a 64k output.mp3) of splits lange gesprekken op. Claude retourneert geen geldig JSON: verbeter de prompt door expliciet te vragen om 'alleen het JSON-object zonder enige andere tekst'. De fallback in de Code node vangt dit al op. Notion node geeft 'Could not find property': controleer of de database-ID correct is en of je Notion-integratie toegang heeft tot de database (voeg de integratie toe via Delen in Notion).

Uitbreidingen

Wanneer de basisworkflow draait, zijn uitbreidingen eenvoudig toe te voegen. Koppel de Notion-database aan een CRM (HubSpot, Pipedrive) via een extra n8n-stap zodat actiepunten direct als CRM-taken verschijnen. Voeg een wekelijkse batchrun toe die alle gesprekken van de week samenvat in een management-overzicht via Claude. Gebruik de sentimentdata om automatisch follow-up prioriteiten te stellen: negatieve gesprekken krijgen dezelfde dag een Slack-herinnering, neutrale gesprekken na drie dagen.

Gerelateerd

Nieuwsbrief

Meer handleidingen en tips?

Elke week de beste agentic AI inzichten en nieuwe handleidingen in je inbox.

Gratis aanmelden →