Handleidingen · n8n

AI-gestuurde e-mailcampagne bouwen met Mailchimp, n8n en Claude

AI-gestuurde e-mailcampagnes met Mailchimp, n8n en Claude. Van segment tot verzending voor MKB.

🟡 Gevorderd — beetje technisch ⏱ 90 minuten
Tools: Mailchimpn8nClaudeGmail
Goud-op-zwart illustratie: een AI-pen verbonden met artikel, socialpost, nieuwsbrief en megafoon

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.

Gerelateerd

Nieuwsbrief

Meer handleidingen en tips?

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

Gratis aanmelden →