Un sistema serverless per estrarre automaticamente i nomi dalle email degli iscritti alla newsletter e arricchire i profili su Brevo.
Email Data Enricher analizza gli indirizzi email degli iscritti alla tua newsletter, identifica i nomi propri contenuti negli indirizzi (es. "federica.mullo@gmail.com" → "Federica") e li utilizza per popolare automaticamente il campo FIRSTNAME nei contatti Brevo. Questo consente di personalizzare le comunicazioni email senza richiedere ai tuoi iscritti di compilare campi aggiuntivi durante la registrazione.
- Estrazione intelligente dei nomi: Riconosce nomi propri italiani all'interno degli indirizzi email
- Aggiornamento condizionale: Aggiorna solo i contatti che non hanno già il campo FIRSTNAME popolato
- Webhook per nuove iscrizioni: Si integra con i webhook di Brevo per arricchire automaticamente i nuovi iscritti
- Elevata precisione: Evita falsi positivi escludendo nomi troppo corti (< 5 caratteri)
- Facile da estendere: Predisposto per l'integrazione con servizi NLP per migliorare ulteriormente l'estrazione
- Node.js (v20+)
- Serverless Framework per deployment su AWS Lambda
- API Brevo per gestione contatti newsletter
- Database di nomi italiani per il riconoscimento dei nomi
# Clona il repository
git clone https://github.com/tuousername/email-data-enricher.git
cd email-data-enricher
# Installa le dipendenze
npm install- Crea un file
.envnella root del progetto:
BREVO_API_KEY=il_tuo_api_key_di_brevo
STAGE=dev
-
Prepara il database dei nomi
Crea una cartella
datanella root con un fileitalian_names.txtcontenente un nome italiano per riga.
# Avvia il server Serverless in locale
npm start
# In un altro terminale, testa l'estrazione
curl -X POST http://localhost:3000/dev/webhook \
-H "Content-Type: application/json" \
-d '{"email": "federica.mullo@gmail.com"}'Il progetto include diversi script di test utili:
# Testa l'estrazione da una lista di email
node test-emails.js
# Testa l'aggiornamento di un contatto Brevo
node test-brevo-update.js
# Simula la ricezione di un webhook
node test-webhook.js# Deploy sull'ambiente specificato in serverless.yml
npm run deployemail-data-enricher/
├── src/
│ ├── data/
│ │ └── italian_names.txt # Database di nomi italiani
│ ├── handlers/ # Handler Lambda
│ │ └── webhook.js # Gestisce i webhook Brevo
│ ├── services/ # Servizi esterni
│ │ └── brevo.js # Interazione con API Brevo
│ └── utils/ # Utility
│ ├── databases.js # Gestione database nomi
│ └── extractor.js # Estrattore nomi da email
├── tests/ # Test automatizzati
│ ├── extractor.test.js # Test per l'estrattore
│ └── samples.js # Email di esempio per i test
├── .env # Variabili d'ambiente (non versionato)
├── package.json # Dipendenze e script
├── serverless.yml # Configurazione Serverless Framework
└── README.md # Documentazione
L'estrattore di nomi:
- Analizza l'indirizzo email alla ricerca di pattern comuni (nome.cognome, etc.)
- Cerca corrispondenze con un database di nomi italiani
- Valida i risultati applicando regole di lunghezza (min. 5 caratteri)
- Verifica casi speciali mappati direttamente (per maggiore precisione)
// Esempio di utilizzo
const { extractFirstName } = require("./src/utils/extractor");
const firstName = extractFirstName("federica.mullo@gmail.com");
console.log(firstName); // Output: 'Federica'Il sistema si integra con Brevo in due modi:
- API diretta: Per aggiornamenti manuali o batch di contatti
- Webhooks: Per elaborazione automatica di nuove iscrizioni
- Accedi alla dashboard Brevo
- Vai su Automation > Webhooks
- Crea un nuovo webhook
- Utilizza l'URL Lambda generato dopo il deployment
- Seleziona l'evento "Contact added to list"
- Estrae solo nomi con 5+ caratteri (per evitare falsi positivi)
- Ottimizzato principalmente per nomi italiani
- Non estrae nomi da email con pattern molto insoliti
- Integrazione con servizi NLP per migliorare l'estrazione dei nomi corti
- Supporto per database di nomi di altre nazionalità
- Dashboard di monitoraggio per l'efficacia dell'estrazione
- Batch processing per arricchire liste esistenti
MIT
Progetto creato per migliorare le performance delle email tramite personalizzazione del campo nome.