E-mail versturen vanuit n8n
Stuur e-mails vanuit n8n-workflows via de Wesender REST API, zonder code, met een HTTP Request-node.
Vereisten
- Wesender-account met geverifieerd verzenddomein
- API-sleutel (WESENDER_API_KEY)
- n8n Cloud of zelfgehoste n8n instantie
Stap 1: Stel de API-credential in n8n in
Ga naar Settings > Credentials in n8n. Maak een nieuwe 'Header Auth' credential aan met de naam 'Wesender API'. Zet de Header Name op 'Authorization' en de Value op 'Bearer JOUW_API_SLEUTEL'.
// Credential-instellingen (Header Auth)
Name: Wesender API
Header Name: Authorization
Header Value: Bearer ws_jouw_sleutel Stap 2: Voeg een HTTP Request-node toe
Voeg een HTTP Request-node toe aan je workflow. Kies 'POST' als methode en vul de Wesender API-URL in. Koppel de Wesender API-credential.
// HTTP Request-node instellingen
Method: POST
URL: https://api.wesender.nl/v1/emails
Authentication: Predefined Credential (Wesender API)
Body Content Type: JSON Stap 3: Stel de body in met dynamische velden
Gebruik n8n-expressies om waarden uit vorige nodes te gebruiken. Zo stuur je gepersonaliseerde e-mails op basis van data uit je workflow.
{
"from": "workflow@jouwdomein.nl",
"to": "={{ $json.email }}",
"subject": "={{ $json.titel }}",
"html": "=<p>{{ $json.inhoud }}</p>"
} Stap 4: Verwerk bezorgingsevents via een Webhook-node
Voeg een Webhook-node toe in n8n en stel het endpoint in als Wesender-webhook in het dashboard. n8n ontvangt dan een POST bij elk bezorgingsevent.
// Webhook-node instellingen
HTTP Method: POST
Path: /wesender-events
Respond: Immediately (200 OK)
// Event-data in $json:
// { "type": "delivered", "email_id": "...", "to": "...", "timestamp": "..." } Volledig voorbeeld
Hier is de volledige implementatie in wesender-n8n-flow.json:
{
"name": "Wesender e-mail workflow",
"nodes": [
{
"name": "Trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [240, 300]
},
{
"name": "Stel data in",
"type": "n8n-nodes-base.set",
"position": [460, 300],
"parameters": {
"values": {
"string": [
{ "name": "email", "value": "ontvanger@jouwdomein.nl" },
{ "name": "titel", "value": "Update van je workflow" },
{ "name": "inhoud", "value": "De pijplijn is afgerond." }
]
}
}
},
{
"name": "Verstuur via Wesender",
"type": "n8n-nodes-base.httpRequest",
"position": [680, 300],
"parameters": {
"method": "POST",
"url": "https://api.wesender.nl/v1/emails",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpHeaderAuth",
"jsonBody": true,
"body": {
"from": "workflow@jouwdomein.nl",
"to": "={{ $json.email }}",
"subject": "={{ $json.titel }}",
"html": "=<p>{{ $json.inhoud }}</p>"
},
"options": {
"response": { "response": { "responseFormat": "json" } }
}
},
"credentials": {
"httpHeaderAuth": { "name": "Wesender API" }
}
}
]
} Bezorgstatussen via webhooks
n8n kan bezorg-, bounce- en klachtsignalen ontvangen via webhooks. Configureer een webhook-endpoint in je n8n-workflow dat POST-verzoeken van Wesender accepteert. Zie Webhooks instellen voor de volledige configuratiestappen en het payload-formaat.
Veelgestelde vragen
Kan ik ook HTML-templates met n8n-variabelen gebruiken?
Ja. Bouw de HTML-inhoud op in een Code-node of Function-node vóór de HTTP Request-node. Gebruik n8n-expressies (={{ }}) om waarden dynamisch in te vullen. Geef de ingevulde HTML door als de html-parameter in de body.
Hoe verwerk ik bounces in mijn n8n-flow?
Voeg een Webhook-node toe als ontvangstpunt voor Wesender-events. Stel het webhook-URL in als delivery-webhook in het Wesender-dashboard. Gebruik een IF-node om events met type 'bounced' of 'complained' door te sturen naar een aparte tak in je workflow.
Werkt dit ook met n8n Cloud?
Ja. De HTTP Request-node en Webhook-node zijn beschikbaar in zowel n8n Cloud als zelfgehoste instanties. De enige vereiste is dat het Wesender-webhook-endpoint bereikbaar is vanuit het internet, wat bij n8n Cloud standaard het geval is.