Con una app ibrida abbiamo portato su smartphone il CRM di Iveco. Duemila utenti di cinque paesi, e una gran quantità di dati da gestire ogni giorno. L’integrazione con Dynamics.

Trasformazione digitale vuol dire molte cose. In Iveco significa, fra l’altro, mobile CRM: un modo inedito di intendere i processi a supporto di vendita e assistenza, gestiti in tutta Europa attraverso la rete di concessionari della casa costruttrice. Ma ripensare il processo di CRM significa anche definire una nuova esperienza per l’utente e affrontare una serie di sfide tecnologiche di notevole complessità. A cominciare dal problema della connessione dei dispositivi mobili e della loro dimensione. Come riprodurre l’ambito del CRM tradizionale in un contesto radicalmente diverso? La risposta è semplice: non bisogna riprodurre lo stesso scenario; occorre semmai reinventare il CRM.

È quello che abbiamo cercato di fare per Iveco, partendo da aspettative tecniche davvero impegnative: più di duemila utenti con quattro diversi profili, dislocati in cinque paesi (Italia, Germania, Francia, Spagna e Polonia), oltre 14 milioni di record, fino a 200 MB di dati da caricare ogni cinque minuti e circa 27 GB in meno di 20 minuti. Dal punto di vista dei requisiti di business il quadro non appariva meno complesso. Si trattava di fornire su uno smartphone tutte le funzionalità caratteristiche del CRM già in uso, in un ambiente multilingue: gestione di account, contatti, agende, lead, opportunità e offerte. Fondamentale era poi l’esigenza di operare anche offline, il che ha imposto lo studio di un meccanismo di sincronizzazione/riconciliazione veloce e affidabile. Ma il requisito più interessante, dal nostro punto di vista, era un altro: realizzare un CRM multipiattaforma (iOS e Android) basato su un unico codice software per tutti i dispositivi (smartphone, tablet e desktop).

L’intervento di Spindox ha riguardato quattro moduli architetturali: l’applicazione mobile destinata a girare sui client, la componente di back-end, lo strato di ETL e relativa integrazione con Microsoft Dynamics CRM (la piattaforma preesistente e da non dismettere), l’infrastruttura cloud del sistema.

Mobile app

Il disegno dell’applicazione mobile ha comportato il ripensamento di tutta la user experience e, di conseguenza, lo studio di una nuova interfaccia utente. Da questo punto di vista, i cambiamenti rispetto al front-end di Microsoft Dynamics CRM sono stati radicali. La nuova app si presenta con un look & feel “nativo”, ma è al 100% cross-piattaforma e dunque si esegue con qualsiasi browser. Non solo: a partire da un codice unico, applicando una logica adattiva e responsiva, abbiamo realizzato una soluzione cross form factor, capace di gestire al volo le differenti caratteristiche di smartphone, tablet e desktop.

Iveco car

L’integrazione con il dispositivo è realizzata a livello basso, per cui è possibile utilizzare tutti i componenti del telefono: calendario, contatti, modulo di comunicazione (dati e voce), fotocamera, SMS e email. La gestione dei dati si svolge in modo sicuro, grazie a una chiave di cifratura privata a 256 bit generata in modo casuale. La mobile app realizzata per Iveco può amministrare uno storage locale di oltre 2 GB, operando in modalità offline e gestendo la piena sincronizzazione nei momenti online. Inoltre integra una potente funzionalità di ricerca full text, anch’essa disponibile pure offline.

Tutto il front-end è stato sviluppato in HTM5 e JavaScript applicando il pattern MVC (model-view-controller) e integrando la tecnologia SQLite, responsabile della cifratura del database e della funzionalità di ricerca.

Mobile Back-End

Il modulo di back-end dell’applicazione gestisce il servizio di SSO, tramite tecnologia ADFS di Microsoft, l’integrazione con il database di Dynamics CRM e lo strato persistente dei dati. Quest’ultimo è progettato per gestire in tempo reale query articolate e sincronizzazioni dei client. Il focus è dunque sulla disponibilità, la scalabilità e le prestazioni. La tecnologia scelta è Couchbase, il database NoSQL con cui Spindox sta realizzando alcune delle sue applicazioni web e mobile più complesse.

Il back-end è stato sviluppato con il framework Node.js, secondo un’architettura a microservizi. Per le interfacce sono stati utilizzati i protocolli SOAP e REST. Inoltre è stata impiegata la tecnologia NATS, che gestisce la messaggistica nei sistemi distribuiti. Node.js e NATS sono stati scelti anche per lo sviluppo del modulo deputato all’importazione dei dati dai client.

L’intera architettura tecnologica poggia sul cloud di Microsoft Azure. In particolare l’architettura prevede due server Couchbase in cluster, bilanciati tramite Azure, e l’importatore sopra citato. Spindox ha disegnato un’infrastruttura totalmente automatizzata e programmabile. Tutti i processi di provisioning, configurazione, monitoraggio e rilascio sono gestiti attraverso codice. In particolare l’automazione è stata realizzata con l’impiego del motore open source Ansible.