Tutti i case study
// case-study / memo-hero

Memo Hero

Anagrafica centralizzata, reminder automatici e gestione regali per una struttura ricettiva: Memo Hero traccia compleanni, anniversari di soggiorno e festività e trasforma ogni data in un'azione — email o regalo fisico — con un click.

LaravelInertia.jsReactMySQLRedis
// contesto e sfida

Il problema

La struttura gestiva duemila contatti tra ospiti, partecipanti a conferenze e relazioni professionali, ma ogni anagrafica viveva in un foglio Excel diverso. Tenere traccia di compleanni, anniversari di soggiorno e festività era un lavoro manuale: controllare le date, ricordarsi all'ultimo momento, scrivere auguri di corsa.

Il vero problema non erano i dati, ma il passaggio all'azione: quando scattava un anniversario di soggiorno — "è passato un anno che Paolo Rossi ha soggiornato da noi" — non esisteva un modo semplice per trasformare quella data in un'azione concreta — email o regalo — senza passaggi manuali.

La gestione regali viveva negli stessi fogli Excel frammentati: lo storico c'era ma non era centralizzato né collegato all'anagrafica. Il risultato erano duplicati — lo stesso regalo due volte alla stessa persona — e il panico da "cosa gli avevo preso l'anno scorso?".

I contatti arrivavano da fonti diverse: CRM della struttura, gestionali esterni, fogli Excel. Ogni importazione era manuale, con formattazioni incoerenti e campi che non tornavano. Serviva un sistema che unificasse tutto e rendesse l'import un'operazione semplice, non un progetto.

// soluzione

Come l'ho affrontato

Anagrafica centralizzata con campi dedicati per ogni data significativa — compleanni, anniversari di soggiorno, festività. I contatti vengono importati da Excel e CRM esterni con un parser custom che normalizza formattazioni e campi così i dati finiscono tutti nello stesso posto senza lavoro manuale.

I reminder funzionano con Laravel Notifications e laravel-snooze: lo scheduler controlla le date ogni giorno e notifica automaticamente con anticipo configurabile — un giorno prima, una settimana, come si preferisce. Quando scatta un reminder — "è passato un anno che Tizio ha soggiornato da noi" — l'operatore vede un'attività da completare.

Ogni attività si traduce in un'azione concreta: mailing list personalizzata con template inviato via code Redis e Horizon su Mailgun SMTP oppure registrazione di un regalo fisico con data e destinatario. Le email partono in chunk da 100 per gestire i volumi senza intoppi, con un contatore real-time via WebSocket che mostra all'operatore quanti messaggi ha effettivamente raggiunto l'SMTP.

La gestione regali è integrata nella scheda contatto: storico completo di cosa è stato regalato, a chi e quando. Zero duplicati, zero ripensamenti. Ogni azione — email o regalo — è tracciata e collegata al contatto.

L'interfaccia è costruita con Inertia.js e React: una scelta deliberata per diversificare rispetto a Livewire, con un budget che lo consentiva. Navigazione fluida tipo SPA senza la complessità di due codebase separate. Laravel gestisce la logica, React rende l'esperienza reattiva.

Dashboard con prossimi compleanni, anniversari di soggiorno e attività da completare
// Dashboard: riepilogo delle prossime date significative — compleanni, anniversari, festività — con attività correlate da completare e stato dei reminder attivi.
// architettura

Architettura & Tecnologie

Monolite Laravel con frontend Inertia.js + React: Inertia elimina la necessità di un'API REST separata — Laravel espone le route, React le consuma nativamente. MySQL per persistenza relazionale (anagrafiche, date, storico regali, attività). Redis con Horizon per le code asincrone: invio email in chunk da 100 su Mailgun SMTP, con contatore real-time via WebSocket. I reminder sono gestiti da laravel-snooze con il task scheduler di Laravel — un cron giornaliero controlla le date e genera le attività. L'app è hosted su AWS.

Laravel
Backend, logica applicativa e gestione reminder
Inertia.js
Bridge Laravel-React: navigazione SPA senza API REST separata
React
Interfaccia utente reattiva per anagrafiche, attività e invii
MySQL
Persistenza di anagrafiche, date, storico regali e attività
Redis
Code asincrone per invio email in chunk da 100 e notifiche real-time
// highlights

Caratteristiche principali

Anagrafica centralizzata con import Excel/CRM: parser custom che normalizza dati da fonti diverse in un unico archivio

Reminder automatici con laravel-snooze: compleanni, anniversari di soggiorno, festività — ogni data genera un'attività da completare

Doppia azione per ogni reminder: mailing list personalizzata via Mailgun o registrazione regalo fisico, con storico integrato

Invio email in chunk da 100 con contatore real-time via WebSocket: l'operatore vede quanti messaggi ha raggiunto l'SMTP mentre succede

Storico regali nella scheda contatto: cosa è stato regalato, a chi, quando — zero duplicati, sempre visibile

Ogni data scattata diventa un task assegnato, tracciato e completato — niente passaggi manuali dispersi nei fogli.

Scheda contatto con anagrafica, date significative, storico regali e reminder
// Scheda contatto: anagrafica centralizzata con compleanni e anniversari, storico regali con data e destinatario e reminder configurati — tutto in un'unica vista.
// screenshot

In pratica

Configurazione reminder con anticipo personalizzabile e tipi di data
// Configurazione dei reminder: anticipo personalizzabile per ogni tipo di data — compleanno, anniversario di soggiorno, festività — con notifica automatica quando scatta il termine.
Invio email massive in chunk con selezione template e contatore invii
// Invio email massive: selezione del template personalizzato, filtraggio destinatari per data e tipo di soggiorno, invio in chunk da 100 con contatore dei messaggi inviati.
// risultati

Risultati

Fogli Excel eliminati: duemila contatti tra ospiti, partecipanti e relazioni professionali gestiti in un'unica anagrafica, importati da CRM e gestionali esterni con un'operazione semplice.

Zero compleanni e anniversari dimenticati: il sistema controlla le date ogni giorno e genera attività automaticamente — "è passato un anno che Tizio ha soggiornato da noi" diventa un task assegnato, non un pensiero dimenticato.

Tempo di preparazione auguri ridotto da ore a pochi minuti: l'operatore filtra per data, struttura e tipo di soggiorno, sceglie il template e invia — decine o centinaia di email partono in chunk da 100 senza bloccare nulla.

Visibilità in tempo reale sugli invii: il contatore WebSocket mostra quanti messaggi ha raggiunto l'SMTP mentre l'operatore continua a lavorare. Nessun bisogno di controllare log o dashboard esterne.

Gestione regali finalmente tracciata: ogni regalo è registrato nella scheda contatto con data e destinatario. I duplicati — lo stesso regalo alla stessa persona — sono eliminati alla radice.

Tool dichiarato utile: prima fogli Excel frammentati e import manuali, ora importano da CRM, filtrano per soggiorno e struttura, creano attività in automatico.

Un problema simile al tuo?

Parliamone: costruiamo qualcosa che regga al primo colpo e per gli anni a venire.

Parliamone