
Un club del 1973, digitalizzato dall’interno.
Nuoto, fitness, ghiaccio e oltre cinquant’anni di storia a Roma Nord. Athlon è il posto dove il metodo Ready2Digital è nato: ogni strumento è stato prima un problema vissuto al banco, poi un software.
La sfida
Iscrizioni su carta, richieste sparse fra reception, telefono e WhatsApp, un gestionale che non parlava con nient’altro. Ogni nuovo canale aggiungeva un pezzo d’informazione che nessuno ricomponeva: nessuno poteva dire con certezza chi fosse un’opportunità e chi un cliente già sistemato.
L’approccio
Il gestionale è rimasto. Lo copiamo, sincronizzato, in un database nostro e sopra costruiamo tutto il resto: sito, CRM, app, automazioni leggono la stessa fonte e dicono la stessa cosa sulla stessa persona. Sul gestionale si scrive solo quando serve davvero: prenotare, pagare, iscrivere.
L’ecosistema
Sito, CRM e app: un solo sistema.
Tre programmi diversi per tre persone diverse — chi cerca il club, chi ci lavora, chi è socio — ma un solo database. Un dato entra da una parte e si vede subito dalle altre; il gestionale resta, collegato.
01Una richiesta dal sito arriva nel CRM, già deduplicata e assegnata.
02Il CRM la vede come opportunità, con la storia della persona.
03Una prenotazione dall’app va dritta al gestionale.
04Contratti, pagamenti e accessi del gestionale si copiano nel database.
05Un avviso dal CRM arriva nell’app come notifica.
Dal vivo
Schermate reali.
Il sito, l’app e gli strumenti così come li usano clienti e staff oggi. Tocca una schermata per ingrandirla.
Ogni canale è un punto.
Il CRM li collega in una persona sola.
Dietro il login
Athlon Club 4.0
Quello che si vede solo da dentro — il CRM, l’app da socio — ricostruito e animato con dati di esempio anonimi.
Abbonamenti e ricavi, in diretta
Attivi per tipo, nuovi e rinnovati contro gli scaduti, i ricavi mese per mese e gli incassi che arrivano mentre guardi. Tutto dallo stesso database che usano l’app e il sito.
Ricavi mensili (€)
Abbonamenti attivi per tipo
- Open49%
- Fitness22%
- Nuoto17%
- Junior12%
Ultimi incassi
- GGiulia R.Rinnovo Open annuale€ 590,00
L’agente AI prenota la lezione
Dentro l’app il socio scrive come scriverebbe a una persona. L’agente capisce, propone il posto giusto e prenota: nessun menu da imparare.
Vorrei fare acquagym domani sera
L’agente AI aggiunge la carta
«Devo cambiare la carta»: l’agente porta al punto giusto, la carta si salva con il gestionale e le prossime quote passano da lì. Senza telefonate al desk.
Devo cambiare la carta per le quote
L’agente AI prepara la telefonata
Prima che l’operatore chiami, l’agente legge la scheda e prepara il terreno: cosa ha fatto la persona, perché chiamarla, con quale frase partire. La telefonata parte già informata.
- OggiVisita al sitoPagina «Nuoto adulti», 2 volte
- IeriWhatsApp«Avete corsi la sera?» · risposto dall’agente
- 3 ggGuest Pass scaduto7 giorni · 4 ingressi · 2 lezioni di nuoto
- 10 ggModulo provaInteresse: nuoto, sala pesi
AI Prepara la telefonata
Obiettivo
Apertura suggerita
Il cruscotto della direzione
Lead, prove, contratti e incassi letti dallo stesso database dell’app e del sito. La direzione guarda un numero solo, ed è lo stesso che vede il desk.
Lead per settimana
Funnel
L’app del socio
Prenota le lezioni, paga, entra col badge nel wallet e segue il suo Athlon Health Score. Una web app oggi, la stessa base di codice per App Store e Google Play.
Ciao Giulia
Athlon Club
La tua prossima lezione
Acquagym
Domani · 18:30 · Vasca 2
Pagamenti falliti, risolti
Quando un addebito non passa, parte l’email giusta con il link per pagare o per cambiare carta. Il desk vede solo quello che resta da fare.
| Socio | Quota | Importo | Stato |
|---|---|---|---|
| MM. R. | Quota ottobre | € 69,00 | Non riuscito |
| LL. B. | Quota ottobre | € 89,00 | Non riuscito |
| FF. C. | Corso nuoto | € 120,00 | Non riuscito |
| AA. G. | Quota ottobre | € 69,00 | Non riuscito |
| SS. P. | Carta scaduta | € 79,00 | Non riuscito |
WhatsApp, con un agente AI
Risponde con le informazioni del sito, porta al modulo giusto e passa la conversazione al desk quando serve una persona. Lo storico resta nella scheda del cliente.
Il totem in sede
La vendita assistita sul pannello del club: si sceglie l’abbonamento, si continua sul telefono con un QR, si firma e si paga. L’operatore segue, non digita.
Continua sul telefono
Cosa abbiamo costruito
- 01Sito con assistente AI: ogni richiesta arriva nel CRM, già deduplicata
- 02CRM con ruoli, permessi, timbrature, ticket e registro operatori
- 03App clienti iOS e Android: prenotazioni, pagamenti, Junior, badge nel wallet
- 04Athlon Health System con Apple Salute e Health Connect
- 05WhatsApp Cloud API con agente AI e casella condivisa del desk
- 06Pagamenti con carta e SEPA, billing run, pagamenti falliti con link per pagare
- 07Totem in sede per la vendita assistita e il check-in
- 08Newsletter tracciate, notifiche push, registro giornaliero per la direzione
Tecnologie
Come è fatto
Sotto il cofano.
Tre applicazioni, un database solo. Il sito, il CRM dello staff e l’app dei soci sono progetti separati, ognuno con la tecnologia giusta per chi lo usa, ma leggono e scrivono sullo stesso Postgres su Supabase. Il gestionale PerfectGym viene copiato lì dentro e tenuto aggiornato: le pagine leggono dalla copia, al gestionale si scrive solo per prenotare, pagare, iscrivere.
L’architettura, a strati
I pezzi, uno per uno
Astro
Il sito pubblico
Pagine HTML generate in anticipo e CSS per componente: arrivano già pronte, si indicizzano bene e si aprono subito. Il JavaScript c’è solo dove serve davvero, come i moduli e l’assistente.
Next.js + React
Il CRM dello staff
Le pagine si compongono sul server con i dati già dentro; React gestisce le parti interattive. Un middleware controlla sessione e permessi a ogni richiesta, i ruoli decidono quali sezioni si vedono. Ospitato su Vercel.
Expo + React Native
L’app dei soci
Un solo codice TypeScript per iOS, Android e web. Con Expo Router ogni file è una schermata e anche un deep link. Moduli nativi per HealthKit, Health Connect, notifiche, fotocamera e file; build e aggiornamenti con EAS.
Supabase · Postgres
Il cuore
Database, autenticazione, file e regole di accesso riga per riga. Lo schema vive in 483 migrazioni versionate: ogni modifica è codice, si rivede e si ripete. Le letture importanti sono funzioni SQL: CRM e app chiamano la stessa, quindi dicono la stessa cosa.
Edge Functions
La logica e i collegamenti
77 funzioni TypeScript vicine al database. L’app parla con loro, mai direttamente con il gestionale: prenotare, pagare, sincronizzare, ricevere i webhook di pagamenti e WhatsApp.
La copia del gestionale
Veloce e indipendente
Webhook di PerfectGym e sincronizzazioni programmate copiano contratti, pagamenti, prenotazioni e accessi. Una lettura costa millisecondi e funziona anche quando il gestionale è lento o fermo.
Automazioni
Quello che succede da solo
23 job nel database e 11 su Vercel: promemoria delle prenotazioni ogni 5 minuti, avvisi del certificato in scadenza, email dopo le prime visite, stato dei soci, cruscotti aggiornati, pagamenti falliti.
AI
Assistente e WhatsApp
L’assistente dell’app e l’agente WhatsApp usano un modello Claude, con le informazioni del club come contesto. Non inventano: rimandano al modulo giusto o passano a una persona.
In numeri
