Eighty
← Blog

Claude Code als AI-agent voor je inbox: zo bouw je een email-triage tool na Notion's pivot

26 juni 2026/4 min lezen/Door de Eighty redactie

Notion gooit z'n email-app in de prullenbak. Dat zegt iets.

Notion stopt met z'n eigen email-app. Niet omdat het product slecht was, maar omdat de meeste gebruikers hun inbox al laten afhandelen door AI-agents. Notion gaat nu zelf "all in on using agents to run your inbox."

Dat is een behoorlijk duidelijk signaal uit de markt: de inbox als handmatige taak is voorbij. AI-agents die lezen, sorteren en samenvatten zijn de nieuwe standaard.

Wat betekent dit voor jouw project?

Als je een SaaS bouwt voor ondernemers, coaches, consultants of ZZP'ers, dan is email nog steeds het kloppend hart van hun werkdag. Een eenvoudige email-triage agent als feature of als standalone tool is ineens een stuk relevanter geworden. En met Claude Code kun je vanavond een werkende eerste versie bouwen, zonder dat je ooit een regel Python hebt geschreven.

We bouwen een script dat:

  • Emails inleest vanuit een tekstbestand of API
  • Ze categoriseert (urgent / actie vereist / ter info / spam)
  • Een korte samenvatting geeft per email
  • Een prioriteitslijst uitspuugt

Hoe pak je het aan met Claude Code?

Stap 1: Start een nieuw project in Claude Code

Open Claude Code en maak een nieuwe projectmap aan. Vertel Claude Code meteen wat het doel is:

Maak een nieuwe map aan genaamd email-triage. Initialiseer daar een Node.js project met npm init -y. We gaan een script bouwen dat een lijst van email-teksten inleest en voor elke email een categorie, prioriteit (1-3) en samenvatting van maximaal 2 zinnen teruggeeft. Gebruik de Anthropic SDK voor Node.js.

Claude Code maakt de mapstructuur aan, initialiseert het project en installeert de benodigde packages.

Stap 2: Maak een testbestand met nep-emails

Maak een bestand emails.json aan in de project-root met 5 voorbeeldemails. Varieer de inhoud: een factuur die betaald moet worden, een nieuwsbrief, een urgente vraag van een klant, een meeting-verzoek en een spam-bericht over een loterij. Geef elke email een id, van, onderwerp en tekst veld.

Je krijgt een bestand dat er zo uitziet:

[
  {
    "id": 1,
    "van": "boekhouding@leverancier.nl",
    "onderwerp": "Factuur #2026-441 vervaldatum morgen",
    "tekst": "Beste, hierbij herinneren wij u aan factuur #2026-441 van 850 euro. De vervaldatum is morgen 27 juni."
  },
  {
    "id": 2,
    "van": "nieuwsbrief@marketingplatform.com",
    "onderwerp": "5 tips voor meer conversie deze zomer",
    "tekst": "Lees onze nieuwste tips over zomerse campagnes..."
  }
]

Stap 3: Laat Claude Code het triage-script schrijven

Dit is de kern. Geef Claude Code een concrete, gedetailleerde prompt:

Schrijf een script triage.js dat:

  1. emails.json inleest
  2. Voor elke email de Anthropic API aanroept met Claude claude-opus-4-5 als model
  3. In de system prompt uitlegt dat Claude een email-assistent is die emails categoriseert als: "urgent", "actie-vereist", "ter-info" of "spam"
  4. Als user message de volledige emailtekst stuurt inclusief afzender en onderwerp
  5. Claude vraagt om een JSON-object terug te sturen met de velden: categorie, prioriteit (getal 1 tot 3, waarbij 1 het meest urgent is) en samenvatting (max 2 zinnen)
  6. De resultaten logt naar de console in een leesbare tabel Gebruik de ANTHROPIC_API_KEY uit een .env bestand. Installeer ook dotenv.

Het gegenereerde script ziet er ongeveer zo uit:

import Anthropic from "@anthropic-ai/sdk";
import { readFileSync } from "fs";
import * as dotenv from "dotenv";
dotenv.config();

const client = new Anthropic();
const emails = JSON.parse(readFileSync("./emails.json", "utf-8"));

async function triageEmail(email) {
  const message = await client.messages.create({
    model: "claude-opus-4-5",
    max_tokens: 300,
    system:
      "Je bent een email-assistent die emails categoriseert. Stuur altijd een geldig JSON-object terug met de velden: categorie (urgent/actie-vereist/ter-info/spam), prioriteit (1-3, waarbij 1 het meest urgent is) en samenvatting (max 2 zinnen). Geen extra tekst, alleen JSON.",
    messages: [
      {
        role: "user",
        content: `Van: ${email.van}\nOnderwerp: ${email.onderwerp}\n\n${email.tekst}`,
      },
    ],
  });

  return JSON.parse(message.content[0].text);
}

async function main() {
  console.log("\n=== EMAIL TRIAGE RAPPORT ===");
  const results = [];

  for (const email of emails) {
    const triage = await triageEmail(email);
    results.push({ ...email, ...triage });
  }

  results
    .sort((a, b) => a.prioriteit - b.prioriteit)
    .forEach((r) => {
      console.log(`\n[P${r.prioriteit}] ${r.categorie.toUpperCase()}`);
      console.log(`Van: ${r.van}`);
      console.log(`Onderwerp: ${r.onderwerp}`);
      console.log(`Samenvatting: ${r.samenvatting}`);
    });
}

main();

Stap 4: Voeg een .env toe en run het script

Maak een .env bestand aan met daarin ANTHROPIC_API_KEY=jouw-sleutel-hier. Voeg .env ook toe aan .gitignore. Pas daarna package.json aan zodat ik het script kan draaien met npm start.

Vervolgens draai je het script:

npm start

Je ziet nu in de terminal een gesorteerde lijst van je emails, van meest urgent naar minst urgent, met categorielabels en samenvattingen.

Wat te checken na afloop

  • Worden de emails gesorteerd op prioriteit, met "urgent" bovenaan?
  • Geeft Claude een samenvatting van max 2 zinnen per email?
  • Is het spam-bericht correct herkend als "spam" met prioriteit 3?
  • Staat .env in je .gitignore zodat je API-sleutel niet publiek wordt?

Als dat allemaal klopt, heb je een werkende email-triage agent. Vanaf hier kun je hem koppelen aan een echte email-API (Gmail via OAuth, of een IMAP-verbinding), een Supabase-database om resultaten op te slaan, of een simpel Next.js dashboard om de triage visueel te maken. Dat zijn mooie vervolgstappen voor volgende week.


Wil je dit zelf leren?

Bij Eighty leer ik je Claude Code in het Nederlands gebruiken, van installatie tot een werkend SaaS-product. Wekelijks een nieuwe module, persoonlijke begeleiding.