Waarom een AI-receptionist?
Steeds meer bedrijven ontdekken de kracht van AI als eerste aanspreekpunt voor klanten. Op 20 juli 2026 lanceerde Bluehost zelfs een eigen 'AI Front Desk Agent' die 24/7 support-vragen beantwoordt zonder dat er een medewerker bij betrokken is. De trend is duidelijk: klanten verwachten direct antwoord, ook buiten kantooruren. Bedrijven die AI inzetten voor klantenservice besparen gemiddeld 4 uur per week (Bron: Bluevine Small Business AI Trends Report, 2026).
In deze handleiding bouw je stap voor stap een AI-receptionist met n8n en Claude. De workflow ontvangt via een webhook inkomende berichten van klanten, raadpleegt Claude voor een slim antwoord, en stuurt dat antwoord automatisch terug. Als het echt ingewikkeld wordt, escaleert het systeem naar een medewerker.
We gebruiken het fictieve scenario van 'De Haagse Klusbedrijf BV'. Dit MKB-bedrijf met 8 medewerkers ontvangt dagelijks tientallen WhatsApp- en websiteberichten met vragen over prijzen, beschikbaarheid en opdrachten. Buiten kantooruren (17:00 tot 09:00) blijven die berichten onbeantwoord. Dat kost leads. Na het volgen van deze handleiding beantwoordt Claude automatisch alle vragen en plant hij zelfs afspraken in.
Stap 1: Architectuur begrijpen
Voordat je begint is het handig om de structuur van de workflow te begrijpen. De data stroomt als volgt door het systeem:
Kosteninschatting voor normaal gebruik bij een MKB-bedrijf zoals De Haagse Klusbedrijf BV: n8n Cloud Pro kost circa 20 EUR per maand. De Claude API (claude-sonnet-4-6) kost 3 USD per miljoen input-tokens en 15 USD per miljoen output-tokens. Bij 200 gesprekken per maand van gemiddeld 500 woorden kom je op 5 tot 15 EUR per maand uit. Totale kosten: circa 25 tot 35 EUR per maand.
Stap 2: n8n installeren of aanmelden
Je hebt twee opties om n8n te gebruiken. Optie A is het snelst: n8n Cloud. Optie B geeft je meer controle: zelf hosten met Docker.
Optie A: n8n Cloud (aanbevolen voor beginners)
Optie B: Self-hosted met Docker
Als je meer controle wilt of al een VPS hebt, kun je n8n zelf draaien. Je hebt Docker nodig (installatie via https://docs.docker.com/get-docker/).
Na het starten open je n8n via http://localhost:5678 (of jouw server-IP). Maak een account aan en je bent klaar om workflows te bouwen.
Stap 3: Webhook node instellen
De webhook is het startpunt van je workflow: de 'voordeur' waardoor berichten binnenkomen. In n8n maak je een nieuwe workflow aan en voeg je als eerste node de Webhook-node toe.
Je webhook-URL ziet er zo uit: https://mijnbedrijf.app.n8n.cloud/webhook/abc123def456. Test of de webhook werkt met het volgende curl-commando:
Als de test slaagt, zie je in n8n de ontvangen data verschijnen onder 'Input'. Zo weet je precies welke velden beschikbaar zijn voor de rest van de workflow. Sla de webhook-node op door rechts op de node te klikken en 'Save' te kiezen.
Stap 4: Claude API key ophalen
Claude is het AI-brein van je receptionist. Om Claude te gebruiken, heb je een API key nodig van Anthropic. Ga naar https://console.anthropic.com en maak een gratis account aan.
Sla de API key op als credential in n8n. Ga in n8n naar het tandwiel-icoon rechts bovenin, kies 'Credentials', klik op 'Add Credential' en zoek op 'Anthropic'. Plak je API key in het veld en sla op. Meer informatie over de Anthropic API vind je op https://docs.anthropic.com/en/api/getting-started.
Stap 5: System prompt schrijven voor de AI-receptionist
De system prompt is de instructiebrief die je aan Claude geeft. Hier vertel je Claude wie hij is, wat hij wel en niet mag zeggen, en hoe hij moet reageren. Een goede system prompt is het verschil tussen een generieke chatbot en een echte digitale medewerker van jouw bedrijf.
Hier is een uitgebreide voorbeeldprompt voor De Haagse Klusbedrijf BV:
Tips voor een effectieve system prompt: wees specifiek over wat het bedrijf doet en niet doet, geef de AI een naam en persoonlijkheid, definieer wanneer escalatie nodig is, en test de prompt met realistische klantvragen voordat je live gaat.
Stap 6: Claude node toevoegen aan workflow
Nu voeg je de Claude-node toe als tweede stap in de workflow, direct na de Webhook-node. Klik op het plus-icoon onder de Webhook-node en zoek op 'Anthropic'. Kies de node 'Anthropic Claude' en selecteer de actie 'Message a Model'.
De messages array bouw je zo op (gebruik de Expression editor in n8n):
In stap 7 breiden we de messages array uit met gespreksgeschiedenis. Voor nu test je of Claude reageert door op 'Test Step' te klikken. Je ziet het antwoord verschijnen onder 'Output' in de node. Meer informatie over de beschikbare modellen vind je op https://docs.anthropic.com/en/docs/about-claude/models.
Stap 7: Gespreksgeheugen toevoegen
Zonder geheugen begint Claude bij elk bericht opnieuw. Dat voelt onnatuurlijk voor een klant die meerdere berichten stuurt in hetzelfde gesprek. De Window Buffer Memory node in n8n lost dit op.
Voeg voor de Claude-node een Memory node toe: zoek op 'Window Buffer Memory'. De Session ID koppel je aan de webhook-header X-Session-ID. Zo heeft elke klant (of websitesessie) zijn eigen gespreksgeschiedenis.
Na de Claude-node voeg je een tweede Memory node toe om het antwoord op te slaan: kies de actie 'Add to Memory'. Zo groeit de gespreksgeschiedenis automatisch mee. Stel de contextWindowLength in op 10: dan onthoudt het systeem de laatste 10 berichten. Meer bewaart meer context maar kost meer tokens (en dus geld).
Stap 8: Antwoord terugsturen
Na de Claude-node voeg je de 'Respond to Webhook' node toe. Deze stuurt het antwoord van Claude terug naar de chatwidget of WhatsApp-integratie die het bericht stuurde.
Gebruik de volgende JSON-response structuur voor maximale compatibiliteit met chatwidgets:
Stel de HTTP Status Code in op 200 en de Response Format op 'JSON'. Activeer de workflow door rechtsboven op de toggle te klikken zodat deze van 'Inactive' naar 'Active' gaat. Doe een echte test met het curl-commando uit stap 3 en controleer of je het Claude-antwoord terugkrijgt.
Stap 9: Escalatie instellen
Niet elke vraag kan Claude beantwoorden. Als een klant vraagt om een specifieke offerte, of als Claude aangeeft het niet te weten, wil je dat een medewerker een melding krijgt.
Voeg na de Claude-node een IF-node toe. Controleer of het antwoord de escalatie-trigger bevat:
Bij TRUE: voeg een Email-node (Gmail of SMTP) toe die een melding stuurt naar info@haagse-klusbedrijf.nl. Of gebruik de Telegram-node als het team Telegram gebruikt voor intern berichtenverkeer. De notificatie bevat het originele bericht, de naam van de klant en het e-mailadres. Zo kan een medewerker direct contact opnemen.
Stap 10: Koppelen aan website chatwidget
Nu de workflow werkt, koppel je hem aan een chatwidget op de website van De Haagse Klusbedrijf BV. We gebruiken Crisp (crisp.chat) als voorbeeld, maar hetzelfde werkt met Tawk.to of andere tools.
Configureer de CORS-headers in n8n zodat de chatwidget vanuit de browser verbinding kan maken. Voeg in de Webhook-node de volgende response-headers toe:
Test het volledige scenario: open de website, stuur een berichtje via de chatwidget, en controleer of het antwoord van Claude verschijnt. Gemiddelde responstijd ligt op 1 tot 3 seconden. Test ook een escalatie-vraag zoals 'Ik wil een offerte voor een complete badkamerrenovatie' en controleer of de e-mailnotificatie aankomt.
Stap 11: Uitbreiden met Calendly afspraken
Wil je dat klanten direct een afspraak kunnen inplannen voor een offertegesprek? Dan koppel je de Calendly API v2 aan je workflow. Als Claude detecteert dat een klant een afspraak wil, stuur je een Calendly-link mee in het antwoord.
Ga naar https://calendly.com/integrations/api_webhooks om je API key te genereren. Voeg een HTTP Request node toe in n8n direct na de Claude-node (parallel aan de response-stap):
Zorg dat je systeem-prompt Claude instrueert wanneer hij een Calendly-link moet sturen. Voeg toe aan de prompt: 'Als een klant een afspraak wil of om een offerte vraagt, stuur dan de Calendly-link mee: {{ calendlyLink }}.' Vul deze variabele dynamisch in vanuit de HTTP Request node.
Troubleshooting: veelvoorkomende problemen
Probleem 1: Webhook geeft 404 terug
Oorzaak: de workflow staat op 'Inactive' of de webhook-URL is veranderd na het heractiveren. Oplossing: activeer de workflow via de toggle rechtsboven in n8n. Controleer of de URL in jouw chatwidget overeenkomt met de huidige webhook-URL. Bij n8n Cloud verandert de URL niet, maar bij self-hosted kan dit anders zijn na een Docker-herstart. Sla de webhook-URL altijd op in een omgevingsvariabele in je chatwidget-configuratie.
Probleem 2: Claude reageert te traag (timeout)
Oorzaak: de Anthropic API heeft een piekbelasting, of je systeem-prompt is te lang. Oplossing: stel in de chatwidget een timeout in van minimaal 10 seconden. Reduceer de max_tokens van 1024 naar 512 voor snellere antwoorden. Overweeg ook het gebruik van claude-haiku-3-5 voor eenvoudige FAQ-vragen: dat model is 5x sneller en 10x goedkoper, maar minder slim. Je kunt een hybride aanpak gebruiken: haiku voor de eerste check, sonnet alleen bij complexe vragen.
Probleem 3: Gespreksgeheugen werkt niet tussen sessies
Oorzaak: de X-Session-ID header wordt niet meegestuurd door de chatwidget, of de Memory node gebruikt een hardcoded session ID. Oplossing: controleer in n8n onder de Webhook-node of de header 'x-session-id' zichtbaar is in de input-data. Zorg dat de chatwidget de sessie-ID consistent meestuurt (dit is vaak de cookie-waarde of browser-session-ID). Bij Crisp gebruik je $crisp.get('session:identifier') als session ID in je JavaScript.
Probleem 4: CORS-fout bij website integratie
Oorzaak: de browser blokkeert het verzoek vanuit de chatwidget naar de n8n webhook omdat de CORS-headers ontbreken of niet kloppen. Oplossing: voeg de juiste Access-Control-Allow-Origin header toe zoals beschreven in stap 10. Zorg dat je ook de OPTIONS-methode afhandelt voor preflight-verzoeken. Als je n8n via een reverse proxy (Nginx, Traefik) draait, voeg de CORS-headers dan toe op proxy-niveau.
Probleem 5: Kosten lopen onverwacht op
Oorzaak: bots of spambots sturen massaal berichten naar je webhook. Oplossing: voeg rate limiting toe op webhook-niveau. Gebruik een geheime header-token als simpele authenticatie: controleer in de Webhook-node of de header 'X-Webhook-Secret' overeenkomt met jouw secret. Stel een kostenlimiet in op je Anthropic account via console.anthropic.com/settings/limits. Monitor het verbruik dagelijks via de Anthropic dashboard of stel een alert in bij 10 USD verbruik.
Uitbreidingen: nog meer uit je AI-receptionist halen
WhatsApp integratie via Twilio
Wil je dat De Haagse Klusbedrijf BV ook WhatsApp-berichten automatisch beantwoordt? Gebruik de Twilio WhatsApp Business API. Maak een Twilio-account aan op twilio.com, activeer het WhatsApp-kanaal en stel een webhook in die berichten doorstuurt naar jouw n8n workflow. Voeg een Twilio-node toe in n8n om het antwoord terug te sturen via WhatsApp. Kosten: circa 0,005 USD per WhatsApp-bericht via Twilio.
CRM-koppeling met HubSpot of Pipedrive
Elke klant die contact opneemt is een potentiele lead. Voeg na de Webhook-node een HTTP Request node toe die de klantgegevens aanmaakt of bijwerkt in HubSpot via de endpoint https://api.hubapi.com/crm/v3/objects/contacts. Sla de naam, het e-mailadres en het gesprekonderwerp op als contacteigenschappen. Zo heeft het salesteam direct een overzicht van alle inkomende leads en hun vragen.
Meertalige ondersteuning (NL/EN detectie)
Veel websites ontvangen ook Engelstalige bezoekers. Voeg een Code-node toe voor de Claude-node die de taal van het bericht detecteert. Gebruik een simpele heuristiek (bevat het bericht meer Engelse stopwoorden dan Nederlandse?) of maak een aparte Claude-aanroep met de prompt 'Detect language: NL or EN?'. Pas op basis van de gedetecteerde taal de system prompt aan met de juiste taalversie.
Sentiment analyse voor prioritering
Niet elk bericht heeft dezelfde urgentie. Een klant die schrijft 'jullie hebben mijn vloer verpest' heeft een andere prioriteit dan iemand die vraagt naar de openingstijden. Voeg een extra Claude-aanroep toe met de prompt: 'Analyseer het sentiment van dit bericht: POSITIEF, NEUTRAAL, of NEGATIEF. Antwoord met alleen een van deze drie woorden.' Bij NEGATIEF sentiment: stel de escalatie-drempel lager in en stuur altijd een medewerker-notificatie.
Klaar: jouw AI-receptionist staat live
Gefeliciteerd! De Haagse Klusbedrijf BV heeft nu een AI-receptionist die 24/7 klantvragen beantwoordt, gespreksgeschiedenis bijhoudt, afspraken plant via Calendly en bij complexe vragen escaleert naar een medewerker. De totale bouwtijd voor deze workflow is circa 90 minuten. De maandelijkse kosten liggen op 25 tot 35 EUR, een fractie van wat een externe beantwoordingsdienst kost.
Vergeet niet om de workflow regelmatig te testen met realistische klantvragen en de system prompt te verfijnen op basis van echte gesprekken. Meer n8n workflow-inspiratie vind je op https://n8n.io/workflows. Voor Claude-gerelateerde vragen en de nieuwste modellen: https://docs.anthropic.com.