Skip to content

Carlo-F/email-data-enricher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Email Data Enricher

Un sistema serverless per estrarre automaticamente i nomi dalle email degli iscritti alla newsletter e arricchire i profili su Brevo.

📋 Descrizione

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.

✨ Funzionalità

  • 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

🛠️ Tecnologie

  • 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

📦 Installazione

# Clona il repository
git clone https://github.com/tuousername/email-data-enricher.git
cd email-data-enricher

# Installa le dipendenze
npm install

⚙️ Configurazione

  1. Crea un file .env nella root del progetto:
BREVO_API_KEY=il_tuo_api_key_di_brevo
STAGE=dev
  1. Prepara il database dei nomi

    Crea una cartella data nella root con un file italian_names.txt contenente un nome italiano per riga.

🚀 Utilizzo

Test Locale

# 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"}'

Script di Test

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

Deployment su AWS

# Deploy sull'ambiente specificato in serverless.yml
npm run deploy

📁 Struttura del Progetto

email-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

📊 Logica di Estrazione

L'estrattore di nomi:

  1. Analizza l'indirizzo email alla ricerca di pattern comuni (nome.cognome, etc.)
  2. Cerca corrispondenze con un database di nomi italiani
  3. Valida i risultati applicando regole di lunghezza (min. 5 caratteri)
  4. 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'

🔄 Integrazione con Brevo

Il sistema si integra con Brevo in due modi:

  1. API diretta: Per aggiornamenti manuali o batch di contatti
  2. Webhooks: Per elaborazione automatica di nuove iscrizioni

Configurazione Webhook Brevo

  1. Accedi alla dashboard Brevo
  2. Vai su Automation > Webhooks
  3. Crea un nuovo webhook
  4. Utilizza l'URL Lambda generato dopo il deployment
  5. Seleziona l'evento "Contact added to list"

⚠️ Limitazioni Note

  • Estrae solo nomi con 5+ caratteri (per evitare falsi positivi)
  • Ottimizzato principalmente per nomi italiani
  • Non estrae nomi da email con pattern molto insoliti

🔮 Sviluppi Futuri

  • 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

📄 Licenza

MIT


Progetto creato per migliorare le performance delle email tramite personalizzazione del campo nome.

About

Extract data from email address and enrich Prospect profile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors