Handleidingen · n8n

Automatische e-mailsamenvatting bouwen met n8n en GPT-5 (stap voor stap)

Inbox samenvatten met n8n en GPT-5. Dagelijks overzicht van belangrijke mails — minder scrollen, sneller handelen.

🟢 Beginner — geen code vereist ⏱ 1-2 uur
Tools: n8nGmail of OutlookOpenAI API (GPT-5)
Goud-op-zwart illustratie: een opname wordt transcript, kennisbank en lijst met actiepunten

✅ Wat je leert in deze handleiding

  • ✓ E-mails automatisch ophalen via Gmail of Outlook node
  • ✓ E-mailtekst filteren en voorbereiden voor AI-verwerking
  • ✓ GPT-5 aanroepen via de OpenAI node in n8n
  • ✓ Samenvattingen per e-mail of als dagelijks digest versturen
  • ✓ Prioritering instellen op basis van afzender of sleutelwoorden

De gemiddelde ondernemer besteedt 2,5 uur per dag aan e-mail. Een groot deel daarvan gaat op aan berichten lezen die uiteindelijk niet actiegericht zijn: nieuwsbrieven, cc-mails, statusupdates. Met n8n en GPT-5 bouw je een workflow die jouw inbox elke ochtend voor je samenvat, zodat jij direct ziet wat aandacht vraagt.

In deze handleiding bouw je stap voor stap een automatische e-mailsamenvatting. We gebruiken n8n als automatiseringsplatform, de Gmail- of Outlook-node om e-mails op te halen, en de OpenAI-node om GPT-5 de samenvatting te laten schrijven. Aan het einde ontvang je elke ochtend om 07:30 een gestructureerd overzicht in je inbox of via een andere kanaal naar keuze.

Wat je nodig hebt

Voordat je begint, zorg je dat je het volgende gereed hebt:

- Een n8n-instantie (cloud via n8n.io of zelf-gehost)
- Een Gmail- of Microsoft Outlook-account met API-toegang
- Een OpenAI API-sleutel (platform.openai.com)
- Basiskennis van n8n-workflows (je hebt eerder een workflow gebouwd)

De OpenAI API-kosten voor deze workflow zijn minimaal. Een samenvatting van 20 e-mails per dag kost met GPT-5 typisch minder dan 0,05 dollar per dag. Zelfs bij intensief gebruik blijf je ruim onder 2 euro per maand.

Stap 1: Nieuwe workflow aanmaken in n8n

Open je n8n-dashboard en klik rechtsboven op 'New workflow'. Geef de workflow een duidelijke naam, bijvoorbeeld 'Dagelijkse e-mailsamenvatting'. Sla direct op via Ctrl+S (macOS: Cmd+S). Zo heb je een opgeslagen startpunt waarnaar je terugvalt als er iets misgaat.

Stap 2: Schedule Trigger instellen

Klik op 'Add first step' en zoek naar 'Schedule Trigger'. Stel de trigger in op een dagelijks tijdstip, bijvoorbeeld 07:00. De workflow haalt dan elke ochtend automatisch de e-mails van de vorige 24 uur op en stuurt jou een samenvatting voor je werkdag begint.

{
  "rule": {
    "interval": [{
      "field": "hours",
      "minutesInterval": 0,
      "hoursInterval": 24
    }]
  },
  "triggerAtHour": 7,
  "triggerAtMinute": 0
}

Stap 3: Gmail-node koppelen

Voeg een nieuwe node toe en zoek naar 'Gmail'. Kies de actie 'Get Many Messages'. Configureer de node als volgt:

- Credential: maak een nieuwe Gmail OAuth2-verbinding aan
- Return All: uitzetten
- Limit: 50 (maximaal 50 e-mails ophalen per run)
- Filters: stel 'After' in op 'yesterday' via de expressie-editor

// Expressie voor 'After' filter (gisteren 00:00)
const gisteren = new Date();
gisteren.setDate(gisteren.getDate() - 1);
gisteren.setHours(0, 0, 0, 0);
return gisteren.toISOString();

Gebruik je Outlook in plaats van Gmail? Voeg de 'Microsoft Outlook' node toe met dezelfde instellingen. De configuratie werkt vrijwel identiek; alleen de authenticatie verschilt (gebruik Microsoft OAuth2).

Stap 4: E-mailtekst samenvoegen met Code-node

De Gmail-node geeft een array terug met losse e-mailberichten. GPT-5 heeft echter alle e-mails als aaneengesloten tekst nodig. Voeg een 'Code' node toe en gebruik de volgende JavaScript:

const emails = $input.all();

const tekst = emails.map((item, index) => {
  const mail = item.json;
  return `--- E-mail ${index + 1} ---
Van: ${mail.from}
Onderwerp: ${mail.subject}
Datum: ${mail.date}
Inhoud: ${mail.text ? mail.text.slice(0, 500) : '(geen tekst)'}\n`;
}).join('\n');

return [{ json: { emailsTekst: tekst, aantalEmails: emails.length } }];

Let op de .slice(0, 500) op regel 7: hiermee begrens je de inhoud per e-mail tot 500 tekens. Dit voorkomt dat lange e-mails je prompt overbelasten en houdt de API-kosten laag. Voor de meeste e-mails is 500 tekens ruim voldoende om de kern te begrijpen.

Stap 5: OpenAI-node configureren met GPT-5

Voeg een 'OpenAI' node toe. Selecteer bij 'Resource' de optie 'Chat' en bij 'Model' kies je 'gpt-5' (of 'gpt-5.6' zodra beschikbaar in jouw API-tier). Stel het volgende systeem-prompt in:

// Systeem-prompt voor de OpenAI node
Je bent een zakelijke assistent die e-mails samenvat voor een drukke ondernemer.

Geef een beknopte samenvatting in het Nederlands met:
1. URGENT (actie vereist vandaag): max 3 punten
2. INFORMATIE (nuttig, geen actie nodig): max 5 punten  
3. KAN WACHTEN: rest in 1 zin

Gebruik opsommingstekens. Wees concreet en kort. Noem namen en bedragen als die relevant zijn.
// User-prompt (gebruik expressie in n8n)
Hier zijn de e-mails van de afgelopen 24 uur ({{ $json.aantalEmails }} e-mails):

{{ $json.emailsTekst }}

Geef de samenvatting.

Stel 'Max Tokens' in op 800. Dat is ruim genoeg voor een volledige samenvatting van 50 e-mails, zonder onnodige kosten. Zet 'Temperature' op 0.3 voor consistente, zakelijke output.

Stap 6: Samenvatting versturen via Gmail

Voeg een tweede Gmail-node toe, nu met actie 'Send Email'. Configureer als volgt:

- Aan: jouw e-mailadres
- Onderwerp: 'Dagelijkse e-mailsamenvatting — {{ $now.format("DD-MM-YYYY") }}'
- Bericht: de output van de OpenAI-node ({{ $json.message.content }})

// Expressie voor het e-mailbericht
{{ $node["OpenAI"].json.message.content }}

---
Automatisch gegenereerd door n8n + GPT-5
Aantal verwerkte e-mails: {{ $node["Code"].json.aantalEmails }}

Wil je de samenvatting liever via Slack of Teams ontvangen? Vervang de Gmail-verzendnode door een 'Slack' of 'Microsoft Teams' node. De configuratie is vrijwel identiek; alleen het doel-kanaal verschilt.

Stap 7: Workflow testen

Klik bovenaan op 'Test workflow' om de workflow handmatig uit te voeren zonder te wachten op de geplande trigger. Controleer per node of de data correct doorstroomt:

1. Schedule Trigger: geeft een leeg object terug (normaal)
2. Gmail node: toont een array e-mailobjecten
3. Code node: toont emailsTekst en aantalEmails
4. OpenAI node: toont de samenvatting onder message.content
5. Gmail verzend node: bevestigt dat de e-mail verstuurd is

// Verwachte output van de OpenAI node
{
  "message": {
    "role": "assistant",
    "content": "**URGENT (actie vereist vandaag):**\n- Offerte gevraagd door Jansen BV (deadline morgen)\n- Factuur #2847 nog niet betaald (30 dagen te laat)\n\n**INFORMATIE:**\n- Bevestiging vergadering donderdag 15:00\n- Nieuw privacy-document van leverancier ontvangen\n\n**KAN WACHTEN:**\n- 3 nieuwsbrieven en 2 automatische notificaties."
  }
}

Stap 8: Prioritering toevoegen op basis van afzender

Wil je dat e-mails van specifieke afzenders altijd bovenaan staan? Voeg in de Code-node een prioriteringslogica toe:

const emails = $input.all();

// Definieer prioriteitsafzenders
const prioriteit = ['baas@bedrijf.nl', 'klant@grootklant.com', '@rechtbank'];

// Sorteer: prioriteitsafzenders eerst
const gesorteerd = emails.sort((a, b) => {
  const aIsPrio = prioriteit.some(p => a.json.from?.includes(p));
  const bIsPrio = prioriteit.some(p => b.json.from?.includes(p));
  return bIsPrio - aIsPrio;
});

const tekst = gesorteerd.map((item, index) => {
  const mail = item.json;
  const tag = prioriteit.some(p => mail.from?.includes(p)) ? '[PRIORITEIT] ' : '';
  return `--- E-mail ${index + 1} ${tag}---
Van: ${mail.from}
Onderwerp: ${mail.subject}
Inhoud: ${mail.text ? mail.text.slice(0, 500) : '(geen tekst)'}\n`;
}).join('\n');

return [{ json: { emailsTekst: tekst, aantalEmails: emails.length } }];

Stap 9: Workflow activeren

Als de testrun goed verloopt, activeer je de workflow via de schakelaar rechtsboven ('Active'). Vanaf dat moment draait de workflow elke ochtend automatisch. Je hoeft er verder niets aan te doen.

Tip: stel ook een foutmelding in via de 'Error Trigger'-node. Zo ontvang je een melding als de workflow een keer misloopt (bijv. door een verlopen API-sleutel of verbindingsfout). Voeg een Error Trigger toe en koppel er een Slack- of e-mailnode aan.

Stap 10: Verfijnen op basis van gebruik

Na een week gebruik merk je snel wat werkt en wat niet. Veelgemaakte aanpassingen:

- Systeem-prompt aanpassen: voeg specifieke instructies toe ('negeer factuurbevestigingen van systeem@boekhoudtool.nl')
- Drempelwaarde aanpassen: ophalen van e-mails de laatste 12 uur in plaats van 24 uur
- Uitvoertijdstip verschuiven: sommige ondernemers prefereren 06:30 of 08:00
- Extra filter: only unread e-mails (voeg filter toe op 'isUnread: true')

Veelgestelde vragen en problemen

De Gmail-node geeft een autorisatiefout

Dit gebeurt als je Gmail OAuth2-token is verlopen. Ga naar n8n Instellingen, Credentials, zoek je Gmail-credential en klik op 'Reconnect'. Doorloop de Google-autorisatie opnieuw. Tokens verlopen na 6 maanden inactiviteit.

GPT-5 geeft een 'context length exceeded' fout

Verlaag de .slice(0, 500) in de Code-node naar .slice(0, 250) of verlaag de Gmail-limiet van 50 naar 25 e-mails. GPT-5 heeft een groot contextvenster, maar bij 50 e-mails van elk 500 tekens raak je de grenzen van je tier.

De samenvatting is te lang of te kort

Pas de 'Max Tokens' aan: hoger voor meer detail (tot 1.500), lager voor een compactere samenvatting (500). Voeg ook instructies toe aan het systeem-prompt: 'Geef maximaal 300 woorden' of 'Wees uitgebreider bij URGENT-items'.

De workflow draait niet op het geplande tijdstip

Controleer of de workflow actief staat (schakelaar rechtsboven). Bij zelf-gehoste n8n: controleer of de n8n-service draait als achtergrondproces (systemctl status n8n of pm2 status). Bij n8n Cloud is dit automatisch geregeld.

Uitbreidingsmogelijkheden

Zodra de basisworkflow draait, zijn er talloze uitbreidingen mogelijk:

- Wekelijkse digest: voeg een tweede workflow toe die alle dagelijkse samenvattingen bundelt tot een weekoverzicht
- CRM-koppeling: laat n8n automatisch taken aanmaken in HubSpot of Pipedrive op basis van urgente e-mails
- Slack-integratie: stuur urgente items direct naar een specifiek Slack-kanaal (#actie-vandaag)
- Antwoordsuggesties: vraag GPT-5 niet alleen om een samenvatting, maar ook om conceptantwoorden voor de drie meest urgente e-mails
- Meerdere inboxen: voeg extra Gmail-nodes toe voor meerdere e-mailadressen en combineer de output in de Code-node

Conclusie

Een automatische e-mailsamenvatting is een van de meest directe manieren om AI praktisch in te zetten voor jouw werkdag. De investering is klein (minder dan 2 euro per maand aan API-kosten), de tijdswinst is aanzienlijk, en de workflow is eenvoudig aan te passen aan jouw specifieke situatie. Bouw hem vandaag en morgenochtend heb je al je eerste samenvatting klaarstaan.

Meer n8n handleidingen op workflows.nl: bekijk ook onze handleidingen over automatische rapportage met Google Sheets, een LinkedIn lead generation agent, en het bouwen van je eerste Flowise-agent zonder code.

Gerelateerd

Nieuwsbrief

Meer handleidingen en tips?

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

Gratis aanmelden →