Een slimme e-mailcampagne reageert op wat abonnees doen, niet op wat jij denkt dat ze willen. In deze handleiding bouw je een systeem dat Mailchimp-events oppikt, het gedrag analyseert met Claude en vervolgens automatisch gepersonaliseerde campagnes verstuurt via n8n. Geen handmatig segmenteren meer, geen generieke nieuwsbrieven die niemand leest.
Stap 1: Architectuur en accounts
Je hebt vier componenten nodig die samenwerken. Zorg dat je accounts en API-sleutels klaar hebt voordat je begint.
Mailchimp: maak een Mailchimp-account aan (of gebruik een bestaand account) en ga naar Account > Extras > API keys. Genereer een nieuwe sleutel en sla deze op. Noteer ook je Audience ID (list ID) via Audience > Settings > Audience name and defaults.
n8n: installeer n8n lokaal via npm install -g n8n of gebruik n8n Cloud. Start n8n en open http://localhost:5678. Maak een nieuw workflow aan en houd het scherm open.
Claude API: registreer op console.anthropic.com, maak een API key aan onder Settings > API Keys. Kies model claude-3-5-sonnet-20241022 voor de beste balans tussen kwaliteit en snelheid.
Gmail (optioneel): voor het versturen van transactionele notificaties koppel je Gmail via OAuth in n8n. Ga naar Credentials > New > Gmail OAuth2.
Stap 2: Mailchimp webhook instellen
Mailchimp kan events sturen naar een externe URL wanneer een abonnee iets doet: aanmelden, afmelden, klikken op een link of een aankoop doen.
Ga in Mailchimp naar Audience > Manage Audience > Settings > Webhooks. Klik op 'Create New Webhook'. Vul de callback URL in die n8n je geeft (zie stap 3). Selecteer de events die je wilt tracken:
- subscribe: nieuwe abonnee
- unsubscribe: afmelding
- profile: profielwijziging
- cleaned: bounced e-mailadres
- campaign: campagne-interacties
Sla de webhook op. Mailchimp stuurt nu een POST-verzoek naar je n8n-workflow bij elk geselecteerd event.
Stap 3: n8n webhook ontvangen en data parsen
In n8n voeg je een Webhook-node toe als startpunt van je workflow.
{
"node": "Webhook",
"parameters": {
"httpMethod": "POST",
"path": "mailchimp-events",
"responseMode": "onReceived",
"responseData": "firstEntryJson"
}
}
Activeer de webhook in n8n door op 'Listen for Test Event' te klikken. Trigger een test-event in Mailchimp (of stuur handmatig een POST via Postman). Je ziet de binnenkomende data:
{
"type": "subscribe",
"fired_at": "2026-08-04 10:15:00",
"data": {
"id": "abc123",
"email": "jan@voorbeeld.nl",
"email_type": "html",
"merges": {
"EMAIL": "jan@voorbeeld.nl",
"FNAME": "Jan",
"LNAME": "de Vries",
"INTERESTS": "B2B,Marketing,Automation"
},
"ip_opt": "192.168.1.1",
"web_id": "654321"
}
}
Voeg een Set-node toe om de relevante velden te extraheren: e-mailadres, naam, interesses en het event-type. Dit gebruik je in de volgende stap als input voor Claude.
Stap 4: Claude subscriber profiel analyseren
Nu stuur je de subscriber-data naar Claude om een profiel te maken. Claude analyseert de beschikbare informatie en bepaalt welk segment het beste past.
POST https://api.anthropic.com/v1/messages
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 500,
"messages": [
{
"role": "user",
"content": "Analyseer dit subscriber profiel en geef een JSON terug met: segment (starter/gevorderd/expert), interesses (max 3 tags), toon (formeel/informeel), en aanbevolen campagnetype (welkom/educatief/product/retentie). Subscriber data: {{ $json.data.merges | toJsonString }}"
}
]
}
In n8n gebruik je de HTTP Request-node om dit verzoek te versturen. Stel de Authorization header in als 'x-api-key: jouw-claude-api-key'.
Claude geeft een gestructureerd antwoord terug zoals:
{
"segment": "gevorderd",
"interesses": ["Marketing Automation", "B2B", "AI Tools"],
"toon": "professioneel maar toegankelijk",
"campagnetype": "educatief",
"redenering": "Subscriber heeft interesse in automation en B2B, wat wijst op een marketingprofessional die waarde hecht aan efficiency"
}
Stap 5: Segmentlogica bouwen in n8n
Op basis van Claude's analyse splits je de workflow in meerdere paden. Gebruik een SWITCH-node met de waarde van het 'campagnetype' veld.
{
"node": "Switch",
"parameters": {
"dataType": "string",
"value1": "={{ $json.campagnetype }}",
"rules": {
"rules": [
{"value2": "welkom", "output": 0},
{"value2": "educatief", "output": 1},
{"value2": "product", "output": 2},
{"value2": "retentie", "output": 3}
]
}
}
}
Elk pad in de SWITCH-node leidt naar een aparte Claude-aanroep met een specifieke instructie voor dat campagnetype. Zo krijg je maximale personalisatie zonder ingewikkelde conditielogica.
Stap 6: Claude gepersonaliseerde e-mailtekst schrijven
In elke tak van de SWITCH stuur je een specifieke prompt naar Claude om de e-mailtekst te genereren.
POST https://api.anthropic.com/v1/messages
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1000,
"system": "Je bent een e-mailcopywriter voor een B2B SaaS-bedrijf dat marketing automation tools verkoopt. Schrijf in professioneel maar toegankelijk Nederlands. Geen em dashes. Geen hype. Focus op concrete waarde.",
"messages": [
{
"role": "user",
"content": "Schrijf een educatieve welkomstmail voor {{ $json.naam }}. Interesses: {{ $json.interesses }}. Segment: {{ $json.segment }}. De mail moet een onderwerpregel, preheader, intro (2 zinnen), 3 concrete tips en een CTA bevatten. Geef als JSON terug."
}
]
}
Claude genereert een volledige e-mailtekst die je direct in Mailchimp kunt gebruiken. Het resultaat ziet er zo uit:
{
"onderwerpregel": "3 manieren om je marketing te automatiseren (zonder technische kennis)",
"preheader": "Ontdek hoe andere MKB'ers 5 uur per week besparen",
"intro": "Welkom bij onze community van marketing professionals, Jan. Je ontvangt deze mail omdat je interesse hebt in automation en AI tools.",
"tips": [
"Tip 1: Begin met het automatiseren van je welkomstmails - een 48% hogere open rate gemiddeld",
"Tip 2: Gebruik segmentatie op basis van gedrag, niet alleen demografische data",
"Tip 3: Koppel je CRM aan je e-mailtool voor echte personalisatie"
],
"cta": "Bekijk onze gratis automation checklist",
"cta_url": "https://voorbeeld.nl/checklist"
}
Stap 7: Mailchimp campagne aanmaken via API
Met de gegenereerde tekst maak je nu automatisch een campagne aan in Mailchimp via de API.
POST https://us1.api.mailchimp.com/3.0/campaigns
Authorization: Basic base64(anystring:JOUW_API_KEY)
Content-Type: application/json
{
"type": "regular",
"recipients": {
"list_id": "JOUW_AUDIENCE_ID",
"segment_opts": {
"conditions": [
{
"condition_type": "EmailAddress",
"field": "email",
"op": "is",
"value": "{{ $json.email }}"
}
]
}
},
"settings": {
"subject_line": "{{ $json.mailContent.onderwerpregel }}",
"preview_text": "{{ $json.mailContent.preheader }}",
"title": "Auto campagne {{ $now.toISOString() }}",
"from_name": "Workflows.nl Team",
"reply_to": "hallo@workflows.nl"
}
}
De API geeft een campagne-ID terug. Dit ID gebruik je in stap 8 om de content toe te voegen en de campagne te versturen.
Voeg vervolgens de HTML-content toe via het campaigns/{campaign_id}/content endpoint. Bouw de HTML op basis van Claude's JSON-output met een eenvoudige template.
Stap 8: Campagne schedulen of direct versturen
Je hebt twee opties: direct versturen of plannen op een optimaal tijdstip.
# Direct versturen
POST https://us1.api.mailchimp.com/3.0/campaigns/{campaign_id}/actions/send
Authorization: Basic base64(anystring:JOUW_API_KEY)
# Plannen (bv. morgen 09:00)
POST https://us1.api.mailchimp.com/3.0/campaigns/{campaign_id}/actions/schedule
{
"schedule_time": "2026-08-05T09:00:00+02:00"
}
Voor welkomstmails: direct versturen zodra iemand zich aanmeldt. Voor educatieve campagnes: plan op dinsdag of donderdag tussen 09:00 en 11:00 voor de hoogste open rates in B2B.
Gebruik een IF-node in n8n om het campagnetype te checken en stuur naar het juiste Mailchimp-endpoint.
Stap 9: Resultaten terugkoppelen via Claude
Sluit de loop door campagne-resultaten terug te koppelen. Maak een aparte n8n-workflow die dagelijks de stats ophaalt.
GET https://us1.api.mailchimp.com/3.0/reports/{campaign_id}
Authorization: Basic base64(anystring:JOUW_API_KEY)
# Response bevat:
{
"emails_sent": 1,
"opens": {"open_rate": 0.67, "unique_opens": 1},
"clicks": {"click_rate": 0.33, "unique_clicks": 1},
"unsubscribes": {"last_5_days": 0}
}
Stuur deze statistieken naar Claude met de vraag om inzichten en aanbevelingen te genereren. Claude analyseert patronen over meerdere campagnes en adviseert over onderwerpregel-varianten, optimale verzendtijden en segmenten die beter presteren.
Troubleshooting
Mailchimp rate limits: de API staat 10 requests per seconde toe. Als je veel abonnees tegelijk verwerkt, voeg dan een Wait-node toe in n8n (minimaal 100ms tussen requests). Bij een 429-fout implementeer je exponential backoff: wacht 1s, dan 2s, dan 4s.
Claude hallucinations in copy: geef Claude altijd een duidelijke output-structuur (JSON) en valideer verplichte velden voor je de campagne aanmaakt. Voeg een IF-node toe die controleert of 'onderwerpregel' en 'intro' aanwezig zijn. Is dat niet zo, gebruik dan een fallback-template.
n8n timeouts: Claude-aanroepen kunnen 5-15 seconden duren. Stel de timeout van je HTTP Request-node in op minimaal 30 seconden. Gebruik bij voorkeur n8n Cloud of een server met stabiele verbinding voor productiegebruik.
Uitbreidingen
A/B testing: maak twee Claude-prompts met verschillende toonzetting (formeel vs. informeel) en stuur elk naar 50% van het segment. Na 24 uur haal je de open rates op en geef je Claude de winnaar door voor toekomstige campagnes.
Triggered sequences: bouw een Drip-campaign waarbij elke open of klik een nieuwe n8n-workflow triggert. Iemand klikt op 'automation checklist'? Dan krijgt hij 3 dagen later automatisch een mail over n8n.
CRM sync: koppel HubSpot of Pipedrive aan n8n. Elke keer dat Claude een 'product'-segment bepaalt, maak je automatisch een deal aan in je CRM zodat je sales-team kan opvolgen.