Email marketing automatizzato con n8n: guida completa
Come costruire campagne email marketing automatiche con n8n, integrando Mailchimp, Brevo e altri servizi. Segmentazione, trigger comportamentali e campagne drip senza costi eccessivi.

Perché automatizzare l'email marketing con n8n
L'email marketing rimane il canale digitale con il ROI più alto: per ogni euro investito, il ritorno medio è compreso tra 36 e 42 euro. Tuttavia, gestire manualmente liste di contatti, segmenti, campagne e trigger comporta un dispendio di tempo significativo, soprattutto per le PMI italiane che spesso non hanno un team marketing dedicato.
Le piattaforme di email marketing tradizionali (Mailchimp, Brevo, ActiveCampaign) offrono automazioni interne, ma con limiti: piani costosi per volumi medi, logiche rigide, difficoltà di integrazione con sistemi custom. n8n supera questi limiti permettendoti di costruire automazioni email personalizzate al 100%, connesse a qualsiasi fonte dati.
In questa guida vedremo come costruire un sistema di email marketing automatizzato completo con n8n, confrontando l'approccio nativo con l'integrazione di servizi esterni.
Architettura del sistema
Un sistema di email marketing automatizzato con n8n si compone di quattro strati:
- Raccolta dati: webhook, moduli, CRM, e-commerce - ogni punto di contatto con il cliente genera dati
- Elaborazione: segmentazione, scoring, pulizia - n8n trasforma i dati grezzi in liste pronte per l'invio
- Invio: tramite provider SMTP dedicato o API di servizi email
- Analisi: tracciamento aperture, click, conversioni - feedback loop per migliorare le campagne
Approccio 1: invio diretto con SMTP (niente costi ricorrenti)
La soluzione più economica usa un server SMTP dedicato (Postmark, SendGrid, Mailgun) con il nodo Email di n8n.
Configurazione SMTP
Per utilizzare un provider SMTP professionale, configura le credenziali in n8n:
{
"parameters": {
"host": "smtp.postmarkapp.com",
"port": 587,
"secure": false,
"userId": "<POSTMARK_USERNAME>",
"password": "<POSTMARK_PASSWORD>"
},
"type": "n8n-nodes-base.smtp",
"name": "Postmark SMTP"
}
Template email con nodo Code
Per gestire template email riutilizzabili, usa un nodo Code che genera l'HTML:
const data = $input.first().json;
const templateBenvenuto = (nome, azienda) => `
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #f5f5f5; margin: 0; padding: 20px; }
.container { max-width: 600px; margin: 0 auto; background: #ffffff; border-radius: 8px; overflow: hidden; }
.header { background: #1a73e8; padding: 30px; text-align: center; }
.header h1 { color: #ffffff; margin: 0; font-size: 24px; }
.content { padding: 30px; line-height: 1.6; color: #333333; }
.button { display: inline-block; background: #1a73e8; color: #ffffff; padding: 12px 30px; text-decoration: none; border-radius: 6px; margin: 20px 0; }
.footer { background: #f5f5f5; padding: 20px; text-align: center; font-size: 12px; color: #999999; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Benvenuto in ${azienda}</h1>
</div>
<div class="content">
<p>Ciao ${nome},</p>
<p>Grazie per esserti iscritto alla nostra newsletter. Siamo felici di averti con noi.</p>
<p>Per iniziare, ecco alcune risorse che potrebbero esserti utili:</p>
<ul>
<li>La nostra guida completa ai prodotti</li>
<li>I casi studio dei nostri clienti</li>
<li>Le offerte esclusive per i nuovi iscritti</li>
</ul>
<p style="text-align: center;">
<a href="https://tuo-sito.it/offerta-benvenuto" class="button">Scopri l'offerta</a>
</p>
<p>Se hai domande, rispondi a questa email: siamo qui per aiutarti.</p>
<p>A presto,<br>Il team di ${azienda}</p>
</div>
<div class="footer">
<p>${azienda} - Via Roma 123, Milano</p>
<p>
<a href="https://tuo-sito.it/unsubscribe?email=${data.email}">Cancellati dalla newsletter</a>
</p>
</div>
</div>
</body>
</html>`;
return [{
json: {
...data,
html_email: templateBenvenuto(data.nome || 'Amico', data.azienda || 'Tua Azienda'),
subject: `Benvenuto, ${data.nome || 'Amico'}! Ecco la tua offerta esclusiva`
}
}];
Invio con tracciamento
Per tracciare le aperture e i click, puoi aggiungere un pixel di tracciamento e link con parametri UTM al template:
// Aggiungi pixel di tracciamento
const trackingPixel = `<img src="https://tuo-sito.it/api/track/open?email=${encodeURIComponent(email)}&campaign=${campaignId}" width="1" height="1" alt="" />`;
// Aggiungi UTM ai link
const addUTM = (url, campaign) => {
const sep = url.includes('?') ? '&' : '?';
return `${url}${sep}utm_source=newsletter&utm_medium=email&utm_campaign=${campaign}`;
};
Nota sulla deliverability: per una deliverability elevata, usa sempre un provider SMTP dedicato (Postmark, SendGrid) anziché il SMTP del tuo server. I provider dedicati gestiscono la reputazione IP, il DKIM, il SPF e il DMARC automaticamente.
Approccio 2: integrazione con Mailchimp
Se preferisci usare Mailchimp come motore di invio e sfruttare le sue funzionalità di template editor e analytics, n8n puo' gestire la logica di automazione mentre Mailchimp si occupa dell'invio effettivo.
Creazione campagna via API
{
"parameters": {
"method": "POST",
"url": "https://<DC>.api.mailchimp.com/3.0/campaigns",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "apikey <MAILCHIMP_API_KEY>"
}
]
},
"sendBody": true,
"contentType": "json",
"body": "={{ JSON.stringify({ type: 'regular', recipients: { list_id: '<LIST_ID>' }, settings: { subject_line: 'Nuovi prodotti disponibili - Settimana 13', from_name: 'Tuo Negozio', reply_to: '[email protected]', title: 'Newsletter Prodotti ' + new Date().toISOString().split('T')[0] } }) }}"
},
"type": "n8n-nodes-base.httpRequest",
"name": "Crea Campagna Mailchimp"
}
Aggiornamento segmento con tag dinamici
Invece di creare segmenti manualmente in Mailchimp, usa n8n per aggiornare i tag dei contatti in base al comportamento:
{
"parameters": {
"method": "POST",
"url": "=https://<DC>.api.mailchimp.com/3.0/lists/<LIST_ID>/members/{{ md5($json.email.toLowerCase()) }}/tags",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "apikey <MAILCHIMP_API_KEY>"
}
]
},
"sendBody": true,
"contentType": "json",
"body": "={{ JSON.stringify({ tags: [{ name: $json.tag, status: 'active' }] }) }}"
},
"type": "n8n-nodes-base.httpRequest",
"name": "Aggiungi Tag Contatto"
}
Approccio 3: integrazione con Brevo (ex Sendinblue)
Brevo è popolare tra le aziende italiane per il rapporto qualità-prezzo. L'integrazione con n8n segue lo stesso pattern delle altre API REST.
Invio email transazionale con Brevo
{
"parameters": {
"method": "POST",
"url": "https://api.brevo.com/v3/smtp/email",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "api-key",
"value": "<BREVO_API_KEY>"
}
]
},
"sendBody": true,
"contentType": "json",
"body": "={{ JSON.stringify({ sender: { name: 'Tuo Negozio', email: '[email protected]' }, to: [{ email: $json.email, name: $json.nome }], subject: $json.subject, htmlContent: $json.html_email, headers: { 'X-Mailin-custom': 'campaign-' + $json.campaign_id } }) }}"
},
"type": "n8n-nodes-base.httpRequest",
"name": "Invia con Brevo"
}
Segmentazione automatica avanzata
La segmentazione è la chiave per campagne email efficaci. Con n8n puoi creare segmenti dinamici basati su dati comportamentali, demografici e transazionali.
Workflow di segmentazione
Schedule Trigger (ogni notte alle 2:00)
-> PostgreSQL (leggi tutti i contatti con attività recente)
-> Code (calcola segmento per ogni contatto)
-> PostgreSQL (aggiorna tabella segmenti)
-> IF (segmenti cambiati?)
-> true: Slack (notifica al team marketing)
Logica di segmentazione
const items = $input.all();
const now = new Date();
const trentaGiorniFa = new Date(now - 30 * 24 * 60 * 60 * 1000);
const sessantaGiorniFa = new Date(now - 60 * 24 * 60 * 60 * 1000);
const novantaGiorniFa = new Date(now - 90 * 24 * 60 * 60 * 1000);
const segmentati = items.map(item => {
const c = item.json;
const ultimaAcquisto = c.ultima_acquisto ? new Date(c.ultima_acquisto) : null;
const ultimaApertura = c.ultima_apertura_email ? new Date(c.ultima_apertura_email) : null;
const totaleSpeso = parseFloat(c.totale_speso || 0);
const numOrdini = parseInt(c.numero_ordini || 0);
let segmento = 'freddo';
let punteggio = 0;
// Segmentazione RFM (Recency, Frequency, Monetary)
if (ultimaAcquisto && ultimaAcquisto > trentaGiorniFa) {
punteggio += 3;
} else if (ultimaAcquisto && ultimaAcquisto > sessantaGiorniFa) {
punteggio += 2;
} else if (ultimaAcquisto) {
punteggio += 1;
}
if (numOrdini >= 5) punteggio += 3;
else if (numOrdini >= 2) punteggio += 2;
else if (numOrdini >= 1) punteggio += 1;
if (totaleSpeso >= 500) punteggio += 3;
else if (totaleSpeso >= 200) punteggio += 2;
else if (totaleSpeso >= 50) punteggio += 1;
if (ultimaApertura && ultimaApertura > trentaGiorniFa) punteggio += 2;
// Assegnazione segmento
if (punteggio >= 8) segmento = 'vip';
else if (punteggio >= 5) segmento = 'attivo';
else if (punteggio >= 3) segmento = 'potenziale';
else if (punteggio >= 1) segmento = 'a_rischio';
else segmento = 'freddo';
return {
json: {
contact_id: c.id,
email: c.email,
segmento_precedente: c.segmento,
segmento_nuovo: segmento,
punteggio_rfm: punteggio,
totale_speso: totaleSpeso,
numero_ordini: numOrdini
}
};
});
return segmentati;
Campagne drip automatiche
Le campagne drip (a goccia) sono sequenze di email inviate automaticamente nel tempo, basate su trigger specifici. Ecco come costruire una sequenza di onboarding in n8n.
Sequenza di benvenuto (5 email in 14 giorni)
Webhook (nuova iscrizione newsletter)
-> PostgreSQL (salva contatto + data iscrizione)
-> Wait (0 giorni - immediato)
-> Email 1: Benvenuto + guida introduttiva
-> Wait (2 giorni)
-> IF (ha aperto l'email 1?)
-> true: Email 2: Approfondimento prodotto
-> false: Email 2B: Versione più breve + oggetto più accattivante
-> Wait (3 giorni)
-> IF (ha cliccato un link?)
-> true: Email 3: Offerta personalizzata basata sugli interessi
-> false: Email 3B: Testimonianze e casi studio
-> Wait (4 giorni)
-> Email 4: Risorse gratuite (ebook, webinar)
-> Wait (5 giorni)
-> Email 5: Offerta finale + invito all'azione
Implementazione del nodo Wait per il drip
{
"parameters": {
"amount": 2,
"unit": "days"
},
"type": "n8n-nodes-base.wait",
"name": "Attendi 2 giorni"
}
Nota importante: il nodo Wait in n8n funziona solo se il workflow è attivo (toggled on). Se l'istanza n8n viene riavviata, i workflow in attesa potrebbero riprendere o perdere lo stato. Per la produzione, valuta l'uso del database come scheduler: salva la data di invio programmata e usa un Schedule Trigger per verificare le email da inviare.
Trigger comportamentali
Gli eventi comportamentali sono i trigger più potenti per l'email marketing: reagiscono alle azioni reali dell'utente.
Carrello abbandonato
Webhook (evento carrello abbandonato da e-commerce)
-> PostgreSQL (controlla se esiste già una notifica recente)
-> IF (nessuna notifica nelle ultime 24 ore)
-> true: Code (genera email con prodotti nel carrello)
-> SMTP (invia email di recupero)
-> PostgreSQL ( registra notifica inviata)
-> Wait (24 ore)
-> IF (carrello ancora abbandonato?)
-> true: SMTP (seconda email con sconto extra)
Email di ri-engagement per contatti inattivi
Schedule Trigger (ogni lunedì alle 9:00)
-> PostgreSQL (contatti senza apertura email da 60+ giorni)
-> Loop Over Items
-> Code (genera email personalizzata con "ti manchiamo")
-> SMTP (invia email ri-engagement)
-> IF (risposta entro 7 giorni?)
-> true: aggiorna segmento a "riattivato"
-> false: sposta in lista "inattivi - non contattare"
Confronto con piattaforme dedicate
Tabella comparativa
| Caratteristica | n8n + SMTP | Mailchimp | Brevo | ActiveCampaign |
|---|---|---|---|---|
| Costo per 10.000 email/mese | ~20 EUR (SMTP) | ~75 EUR | ~39 EUR | ~49 EUR |
| Segmentazione avanzata | Completa (custom) | Base/Avanzata | Base/Avanzata | Avanzata |
| Automazioni complesse | Illimitate | 1500 contatti (free) | 300 workflow (piano Business) | Illimitate (Enterprise) |
| Integrazioni esterne | Qualsiasi API | 300+ native | 150+ native | 900+ native |
| Template editor | HTML custom | Drag-and-drop | Drag-and-drop | Drag-and-drop |
| Analytics avanzate | Custom (da costruire) | Buone | Buone | Eccellenti |
| Deliverability | Dipende dal provider | Alta | Alta | Alta |
| Curva di apprendimento | Media | Bassa | Bassa | Media |
Quando scegliere n8n per l'email marketing
n8n è la scelta migliore quando:
- Hai integrazioni custom (CRM proprietario, ERP, database legacy)
- Le logiche di automazione sono complesse e non rientrano nei template predefiniti
- Vuoi evitare il vendor lock-in e mantenere il pieno controllo
- Hai competenze tecniche in casa (anche un solo sviluppatore)
- Il budget è limitato ma il volume di email è significativo
Quando preferire una piattaforma dedicata
Una piattaforma dedicata è più adatta quando:
- Il team marketing è non tecnico e ha bisogno di un'interfaccia visuale
- La creazione di template è un'attività frequente e il drag-and-drop è essenziale
- Non hai risorse tecniche per mantenere le automazioni
- Le integrazioni native della piattaforma coprono tutti i tuoi strumenti
Best practice per la deliverability
Indipendentemente dall'approccio scelto, segui queste regole per massimizzare la percentuale di email che arrivano nella casella "In arrivo" dei destinatari:
- Autenticazione SPF, DKIM, DMARC: configura correttamente i record DNS del tuo dominio
- Double opt-in: chiedi conferma dopo la registrazione per evitare spam trap
- Lista pulita: rimuovi regolarmente gli indirizzi inattivi (soft bounce, non aperti da 90+ giorni)
- Frequency capping: non inviare più di 2-3 email a settimana per lista
- Oggetto rilevante: l'oggetto deve corrispondere al contenuto dell'email
- Unsubscribe chiaro: il link di cancellazione deve essere visibile in ogni email
- Test A/B: testa sempre oggetto, mittente e call-to-action prima dell'invio massivo
Conformità GDPR
In Italia, il trattamento dei dati per l'email marketing deve rispettare il GDPR. Con n8n puoi implementare facilmente la conformità:
- Consenso esplicito: salva la data e l'IP di accettazione per ogni iscritto
- Diritto di cancellazione: implementa un webhook
/unsubscribeche rimuova il contatto da tutte le liste - Diritto di accesso: crea un endpoint che restituisca tutti i dati associati a un'email
- Data retention: automatizza la cancellazione dei dati dopo 24 mesi di inattività
Conclusione
n8n offre un livello di personalizzazione e flessibilità per l'email marketing che le piattaforme dedicate non possono eguagliare. Sebbene richieda un investimento iniziale maggiore in termini di configurazione, il risparmio a lungo termine e il controllo totale sulle automazioni ripagano ampiamente lo sforzo.
Il consiglio pratico è iniziare con un approccio ibrido: usa n8n per le automazioni complesse e i trigger comportamentali, e affida a un provider email dedicato l'invio effettivo e le analytics. Questa combinazione offre il meglio di entrambi i mondi.
Marco Ferri
Automation Architect
Specialista in workflow automation e integrazioni enterprise. Oltre 15 anni di esperienza in architetture IT per PMI italiane.
Articoli correlati

Cos'è n8n e perché dovresti usarlo nel 2026
Scopri cos'è n8n, la piattaforma di workflow automation open source che sta rivoluzionando il modo i...
Leggi di più
Automazione per PMI italiane: guida strategica e roadmap in 30 giorni
Quali processi automatizzare per primi nella tua azienda? Una guida pratica con dati sul mercato ita...
Leggi di più
n8n e CRM: la guida completa per automazione vendite e lead management
Scopri come usare n8n come alternativa flessibile e conveniente a Zapier per la gestione CRM: sincro...
Leggi di più