E-mail klantenservice is tijdrovend en repetitief. Onderzoek laat zien dat 60-70% van alle klantenservice-e-mails vragen zijn die meerdere keren per dag worden gesteld. Een AI-bot die die vragen automatisch beantwoordt, bespaart je team uren per dag en verbetert de klanttevredenheid doordat antwoorden sneller komen. Claude is hiervoor een uitstekende keuze: het model begrijpt context goed, schrijft natuurlijk Nederlands en volgt instructies nauwkeurig op.
Hoe de bot werkt
De workflow werkt als volgt: 1. Gmail-trigger detecteert een nieuwe, ongelezen e-mail 2. Een Set node extraheert afzender, onderwerp en berichttekst 3. Claude categoriseert de e-mail: FAQ, bestelling, klacht, of doorzenden 4. Op basis van de categorie: a. FAQ: Claude genereert een antwoord op basis van de kennisbank en stuurt het direct b. Bestelling: Claude zoekt de bestelstatus op in Google Sheets en stuurt een gepersonaliseerd antwoord c. Klacht: Claude stuurt een eerste excuus-reactie en maakt een ticket aan voor de medewerker d. Doorzenden: e-mail wordt doorgestuurd naar de juiste medewerker met een samenvatting 5. Alle behandelde e-mails worden gelogd in Google Sheets voor rapportage
Stap 1: Gmail-trigger instellen
Maak een nieuwe workflow aan in n8n. Voeg een Gmail Trigger node toe als startnode. Koppel je Gmail-account via OAuth (klik op Add Credential en volg de stappen). Stel de trigger in: - Event: Message Received - Filters: Optional label filter (bijvoorbeeld alleen e-mails in de Inbox, niet in Spam) - Poll Times: elke 2 minuten (of minder als de reactiesnelheid kritisch is) Voor Outlook gebruik je de Microsoft Outlook Trigger node met vergelijkbare instellingen. De rest van de workflow is identiek.
Stap 2: E-mailinhoud extraheren
Voeg een Set node toe na de Gmail Trigger. Maak de volgende variabelen aan: Afzender: {{ $json.from.value[0].address }} Naam: {{ $json.from.value[0].name || 'Klant' }} Onderwerp: {{ $json.subject }} Berichttekst: {{ $json.text || $json.textHtml }} Datum: {{ $now.toISO() }} Deze variabelen gebruik je in de volgende stappen. De naam gebruik je om de e-mail persoonlijk te maken (Beste Jan,...). De berichttekst geef je mee aan Claude voor analyse.
Expressie om lange e-mails in te korten (voorkomt hoge API-kosten): {{ $json.berichttekst.slice(0, 3000) }} E-mails langer dan 3000 tekens hebben zelden extra context nodig voor categorisering. Zorg er wel voor dat je het volledige bericht doorgeeft als Claude een volledig antwoord moet opstellen.
Stap 3: E-mail categoriseren met Claude
Voeg een Anthropic node toe (of gebruik een HTTP Request node met de Anthropic API). Gebruik claude-haiku-3-5 voor de categorisering: die is snel en goedkoop voor eenvoudige classificatietaken. Systeemprompt voor categorisering: Je analyseert klantenservice-e-mails en categoriseert ze. Geef ALLEEN een JSON-object terug, geen andere tekst. Categorieen: - faq: algemene vragen, productinformatie, openingstijden, levering - bestelling: vragen over een specifieke bestelling, trackingnummer, leverstatus - klacht: ontevreden klant, beschadigd product, foutieve levering, terugstuurverzoek - doorzenden: complexe juridische vragen, zakelijke aanvragen, pers, sollicitaties Geef terug: {"categorie": "[categorie]", "urgentie": "laag/middel/hoog", "samenvatting": "[max 50 woorden]"} Gebruikersprompt: Onderwerp: {{ $json.onderwerp }} Bericht: {{ $json.berichttekst }}
Stap 4: Switch node voor de vier scenario's
Voeg een Code node toe om de JSON-response van Claude te parsen: const claude_response = JSON.parse($json.choices[0].message.content); return [{ json: { ...claude_response, ...items[0].json } }]; Vervolgens voeg je een Switch node toe met vier uitgangen: - Uitgang 1: categorie === 'faq' - Uitgang 2: categorie === 'bestelling' - Uitgang 3: categorie === 'klacht' - Uitgang 4: categorie === 'doorzenden' Elke uitgang leidt naar een andere reeks nodes die het antwoord verzorgt.
Stap 5: FAQ-antwoorden genereren met kennisbank
Voor FAQ-e-mails voeg je een Google Sheets node toe die de kennisbank ophaalt. Maak een Google Sheets spreadsheet aan met twee kolommen: Vraag en Antwoord. Vul deze met je 20-30 meest gestelde vragen en bijbehorende antwoorden. Laat de Sheets node alle rijen ophalen en geef ze als context mee aan Claude: Systeemprompt voor antwoord-generatie: Je bent een vriendelijke klantenservicemedewerker voor [bedrijfsnaam]. Gebruik ALLEEN de informatie uit de kennisbank hieronder om vragen te beantwoorden. Als het antwoord niet in de kennisbank staat, zeg dat je het uitzoekt en dat iemand binnen 24 uur contact opneemt. Kennisbank: {{ $json.kennisbank }} Gebruikersprompt: Beantwoord deze e-mail. Begin met Beste [naam van afzender], sluit af met een groet van het [bedrijfsnaam] klantenservice-team. E-mail: Onderwerp: {{ $json.onderwerp }} Bericht: {{ $json.berichttekst }}
Stap 6: Bestelstatus ophalen en beantwoorden
Voor bestelgerelateerde e-mails koppel je je ordersysteem. Als je bestellingen bijhoudt in Google Sheets, voeg je een zoeknode toe die op e-mailadres zoekt. Voor systemen als Shopify, WooCommerce of een eigen API, gebruik je een HTTP Request node. Vervolgens geef je de besteldata mee aan Claude voor een gepersonaliseerd antwoord: Besteldata die je meegeeft: ordernummer, datum, producten, status, trackingnummer (als beschikbaar), verwachte leverdatum. Claude gebruikt deze data om een antwoord op maat te schrijven. Het resultaat klinkt menselijk en is 100% accuraat omdat de data uit je systeem komt.
Stap 7: Klachtbehandeling en escalatie
Klachten behandel je met extra zorg. De bot stuurt een professioneel eerste antwoord en zorgt tegelijkertijd dat een medewerker op de hoogte is. Stap 1: Claude genereert een empathisch eerste antwoord: Het spijt ons dat u dit heeft meegemaakt. We nemen uw klacht serieus en een van onze medewerkers neemt binnen 1 werkdag contact met u op om dit op te lossen. Stap 2: Een Gmail node stuurt dit antwoord naar de klant. Stap 3: Een tweede Gmail node stuurt een interne melding naar klantenservice@jouwbedrijf.nl met: - De originele e-mail van de klant - De samenvatting van Claude - De urgentieclassificatie - Een link naar de Google Sheets log Zo werken de bot en je medewerkers samen: de bot vangt op en de mens lost op.
Stap 8: Logging en rapportage
Voeg aan alle vier de uitgangen een Google Sheets Write node toe die elke verwerkte e-mail logt. Sla op: - Datum en tijd - Afzender - Onderwerp - Categorie - Urgentie - Antwoord verzonden (ja/nee) - Doorgestuurd naar medewerker (ja/nee) Zet een wekelijks Google Sheets rapport op dat dit dashboard toont: - Totaal aantal e-mails verwerkt - Verdeling per categorie - Percentage automatisch beantwoord - Gemiddelde urgentie Dit geeft je inzicht in wat klanten het meest vragen en waar je de bot nog kunt verbeteren.
Stap 9: Veiligheid en kwaliteitsborging
Voordat je de bot live zet, neem je de volgende stappen: 1. Test met 20-30 echte e-mails uit je archief. Controleer of de categorisering klopt en de antwoorden kloppen. 2. Schakel in de eerste week menselijke controle in: stuur alle bot-antwoorden eerst naar een intern e-mailadres voor goedkeuring, pas daarna naar de klant. 3. Voeg een AVG-clausule toe aan je systeemprompt: Sla geen persoonlijke gegevens op in je antwoorden. Gebruik alleen de informatie die nodig is om de vraag te beantwoorden. 4. Stel een dagelijkse limiet in: als de bot meer dan 200 e-mails per dag verwerkt, stuur dan een melding naar de beheerder. 5. Test maandelijks een steekproef van 10 antwoorden op kwaliteit en nauwkeurigheid.
Veelgemaakte fouten en oplossingen
Fout 1: Bot categoriseert verkeerd Oorzaak: de categorie-beschrijvingen zijn te vaag of overlappen. Oplossing: voeg voorbeelden toe aan de categoriseer-prompt. Geef 2-3 concrete voorbeeldvragen per categorie. Fout 2: Bot antwoordt met onjuiste informatie Oorzaak: de kennisbank is verouderd of bevat fouten. Oplossing: update de kennisbank-spreadsheet maandelijks. Voeg aan de systeemprompt toe: Als je niet zeker bent, geef dan aan dat iemand contact opneemt. Fout 3: Gmail trigger detecteert geen nieuwe e-mails Oorzaak: OAuth-token verlopen of onjuiste labelfilters. Oplossing: vernieuw de Gmail-credential via Credentials in n8n. Controleer of het mailbox-label overeenkomt met de filterinstelling. Fout 4: Antwoord wordt als spam gemarkeerd Oorzaak: de e-mail bevat spamgevoelige taal of de verzendreputatie is laag. Oplossing: stuur antwoorden via het echte klantenservice-adres, niet via een no-reply adres. Vermijd woorden als GRATIS of ACTIE. Fout 5: Claude schrijft te formeel of juist te informeel Oorzaak: de tone-of-voice instructies in de systeemprompt zijn niet specifiek genoeg. Oplossing: voeg concrete voorbeelden toe van de gewenste schrijfstijl in de systeemprompt. Geef 2-3 voorbeeldzinnen mee.
Wat je kunt verwachten
Na een goede implementatie en calibratie kun je het volgende verwachten: - 50-70% van alle klantvragen wordt volledig automatisch afgehandeld zonder menselijke tussenkomst - Eerste reactietijd daalt van uren naar minuten - Medewerkers houden meer tijd over voor complexe vragen die echt menselijke aandacht vragen - Klanttevredenheid stijgt door snellere reactietijden De bot is geen vervanging voor je klantenserviceteam: het is een vermenigvuldiger. Je team kan meer klanten helpen met dezelfde capaciteit.
Nuttige links
n8n Gmail Trigger documentatie: docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger Anthropic Claude API: docs.anthropic.com/en/api AVG en AI-tools voor MKB: autoriteitpersoonsgegevens.nl n8n community forum voor hulp: community.n8n.io