Asterpanel è un software per controllare le code di un centralino virtuale basato su Asterisk.
Le due funzionalità principali sono il pannello real-time e la reportistica. Ho scritto il prodotto da zero lavorando per Voice@work, partendo da un'esigenza di business molto concreta: fornire uno strumento moderno per gestire le code di un call center inbound.
Il software è stato usato da aziende italiane importanti nei settori assicurativo e automotive. Ho smesso di lavorarci a luglio 2021.
Pannello real-time
La schermata di controllo real-time mostra le informazioni principali sulle code: quante persone sono in attesa, quali chiamate sono in corso, quali operatori sono disponibili e quali sono in pausa.
Restando nella stessa schermata, un utente con privilegi adeguati può mettere in pausa un operatore o modificare le code a cui è assegnato.
La vista prevede sostanzialmente due ruoli: un profilo master, in grado di controllare tutto e intervenire dove necessario, e un utente singolo, che vede le informazioni di base e può mettersi in pausa.
Reportistica
Asterpanel raccoglie i dati sull'operatività del centralino e li trasforma in report utili per capire quali code funzionano, dove si accumulano attese e quali aspetti del processo possono essere migliorati.
L'obiettivo della reportistica è dare ai responsabili del call center una base concreta per migliorare la gestione delle telefonate in ingresso.
Profili di visualizzazione
Una funzionalità comoda per gli utenti è la creazione di profili di visualizzazione.
Un centralino può avere decine di code, relative a vendite, reclami, assistenza e altri reparti. Il responsabile vendite, però, potrebbe voler vedere solo le code del proprio dipartimento. Per questo Asterpanel permette di scegliere quali code e quali utenti monitorare, sia nel pannello real-time sia nella reportistica.
Multi-tenant
Il software è multi-tenant: può collegarsi a più centralini contemporaneamente, anche da remoto.
Nella parte superiore dell'interfaccia è disponibile un menu per scegliere il centralino da visualizzare. Questo permette a un'azienda con più centralini di passare rapidamente da uno all'altro e, allo stesso tempo, consente un risparmio sui costi di infrastruttura.
Sfide tecniche
La parte più difficile è stata il modello dei dati. Durante lo sviluppo mi sono trovato a riscrivere parti importanti del software per correggere decisioni iniziali che non reggevano bene la complessità reale del dominio.
Anche l'interpretazione dei dati provenienti dall'AMI di Asterisk è stata impegnativa: la documentazione era limitata e in più occasioni ho dovuto leggere direttamente il codice sorgente di Asterisk.
Per gli aggiornamenti real-time sul browser ho usato WebSocket, implementati lato server con Django Channels. Nel 2020/2021, però, quella scelta si è rivelata meno solida di quanto sembrasse all'inizio e mi ha creato diversi problemi operativi.
Da quel progetto mi sono portato a casa due lezioni: progettare meglio il modello dati prima di andare troppo avanti, e scegliere con più cautela dipendenze non ancora mature quando il prodotto deve reggere un uso commerciale.