La popolarità delle soluzioni CRM in SaaS cresce sempre di più e tra questi HubSpot è uno dei più popolari. Il suo fatturato ha raggiunto gli 1,7 miliardi di dollari nel 2022 e sempre più aziende decidono di usare questa soluzione le loro esigenze di un software CRM. Tra le possibilità che molti software SaaS offrono c’è quella di sviluppare integrazioni e HubSpot non fa eccezione. Un vasto set di API e una robusta integrazione di funzionalità di terze parti attraverso le CRM Card e le app rendono possibile estendere e personalizzare l’ambiente per avvicinare sempre di più il suo funzionamento al modo di lavorare dei suoi utilizzatori.
Se c’è un problema che i CRM introducono è quello di presentare delle esperienze di lavoro molto piatte, basate essenzialmente su liste e griglie nelle quali anche l’errore è piuttosto semplice da commettere e frequente. E’ possibile migliorare ulteriormente l’esperienza degli utenti per renderla più intuitiva?
L’architettura delle estensioni per HubSpot
Le integrazioni principali con HubSpot sono due: le API (e le private App) e le CRM card. Le prime consentono di accedere ai dati memorizzati nel proprio account o inserirne di nuovi dall’esterno del software. Le seconde consentono di visualizzare informazioni da applicazioni o servizi di terze parti che siano relative al record attualmente visualizzato ma consentono anche di riorganizzare le informazioni del record o fornire dei metodi di interazione nuovi. HubSpot dà la possibilità di estendere la sua base dati per aggiungere proprietà alle diverse entità gestite ma queste si aggiungono semplicemente al lungo elenco di proprietà standard. L’interazione con questi dati è molto semplice e le CRM card rappresentano un modo molto interessante per aumentare le capacità di interazione della piattaforma.
Diversi clienti hanno sfruttato la possibilità di integrazione tra la piattaforma PaaS di Netcore che consente facilmente di ospitare una o più applicazioni di integrazione con HubSpot. In questo esempio proponiamo però una architettura più complessa, frutto di un caso specifico ospitato sulle nostre piattaforme.
In particolare il cliente necessitava di una soluzione composta da diversi layer che complessivamente dovevano risolvere problemi di centralizzazione delle informazioni, uniformità e standardizzazione dei dati e del miglioramento dell’interazione con la piattaforma HubSpot.
Le esigenze specifiche del cliente erano:
- spostamento dei dati generati da una istanza di Microsoft Business Central on-premise verso la piattaforma HubSpot;
- trasformazione di parte dei dati per uniformarli fra di loro in modo che potessero essere gestiti da diverse filiali nazionali della multinazionale a capo del gruppo in modo univoco ed standard, a prescindere dalla loro origine;
- sincronizzazione periodica di questi dati distribuita su due intervalli giornalieri;
- visualizzazione di dati di sistemi di terze parti attraverso l’uso di CRM card integrate nell’interfaccia di HubSpot;
- miglioramento dell’integrazione e della gestione dei dati attraverso l’uso di interfacce aggiuntive che implementino, soprattutto, regole di business personalizzate.
La soluzione: PaaS di VaiSulWeb, .NET e Blazor
La soluzione proposta è stata disegnata per fornire la massima flessibilità senza rinunciare ad ampie possibilità di personalizzazione ed è descritta nell’immagine seguente:
Un primo layer di integrazione è costituito da un micro-servizio PaaS sviluppato con .NET. Il suo ruolo principale è quello di ospitare un sistema di schedulazione di attività programmate (job) ricorrenti o on-demand che gesticano la migrazione e trasformazione dei dati dalle API REST collegate a Microsoft Business Central, implementino delle funzionalità di servizio e coordinino il funzionamento delle CRM card.
Il suo ruolo è quello di acquisire i dati prelevati dalla API REST messa a disposizione dal cliente, trasformarli secondo alcune regole di business concordate e inviare questi dati ad HubSpot, mantenendo sincronizzate le informazioni che dovranno poi essere usate in diverse parti del mondo e da diversi branch della sede principale. Questo layer è sviluppato con .NET 7 e gestisce diverse decine di migliaia di task di sincronizzazione ogni mese, con punte di 500mila job di sincronizzazione in alcuni mesi, con intervalli di circa 12 ore tra l’esecuzione delle attività programmate e anche la possibilità di avviare task on-demand attraverso una interfaccia di gestione ad hoc. Questo componente è distribuito in un ambiente separato ed integra una istanza Redis come backend. Il flusso di informazioni è univoco: legge dalle API REST del cliente e aggiorna i dati su HubSpot.
Questo micro-servizio consente di ottenere informazioni su ogni singolo job eseguito dalla piattaforma, il suo risultato, l’eventuale errore rilevato in fase di esecuzione, un eventuale errore restituito da HubSpot in fase di esecuzione del job e consente il retry fino ad 8 volte di ogni singolo job che abbia riscontrato un errore.
Le CRM Card
In HubSpot le CRM card sono piccole applicazioni che implementano nuove funzionalità integrabili della UI del CRM. Ogni CRM card viene agganciata ad uno o più tipi di oggetto (ad es. contatti, aziende, deal etc.) e HubSpot visualizzerà delle “card”, delle piccole aree che sono destinate a mostrare informazioni aggiuntive da sistemi esterni, informazioni che possono essere integrate nella visualizzazione di quel particolare elemento.
Sebbene la loro funzionalità principale sia l’integrazione di informazioni esterne, nulla vieta di usare le CRM Card per migliorare il processing della UI di HubSpot stesso, che lascia a desiderare in quanto a praticità.
Le CRM card sono state usate nel nostro caso per creare nuove funzionalità di aggregazione e modifica dei dati per rendere disponibile una gestione più avanzata e completa e consentire agli utenti una gestione più semplice dei dati da trattare. Inoltre, questa modalità consente di implementare business rules che sarebbero difficili o impossibili da implementare con le funzionalità standard di HubSpot.
Sono stati creati diversi ambienti aggiuntivi ognuno per la gestione di un gruppo di CRM card omogenee. Questa organizzazione consente di:
- gestire in modo separato le risorse che le singole CRM card o gruppi di CRM card possono usare, limitando se necessario queste risorse ed i relativi costi;
- in modo speculare, attivare delle funzionalità di scalabilità automatizzata sia verticale che orizzontale per gestire automaticamente picchi di carico che consentano agli utenti di lavorare in modo sempre efficiente;
- effettuare aggiornamenti (anche in Continuous Delivery) di alcune CRM card senza intaccare il funzionamento delle altre.
Miglioramenti alle interfacce utente
L’approccio utilizzato è molto flessibile e consente di lavorare in modo molto efficiente dal lato del backend ma è tempo di migliorare anche l’esperienza dell’utente.
Nulla vieta infatti di fornire agli utenti delle funzionalità che ne aumentino le potenzialità, con scorciatoie che possano essere usate per effettuare modifiche multiple secondo regole di business ben definite e lasciando alle card il compito, ad esempio, di verificare i requisiti per il completamento dell’operazione.
E’ anche interessante fornire agli utenti delle UI più complete che aggreghino delle informazioni da più fonti, anche interne ad HubSpot, e possano quindi rendere le modifiche ai dati più efficaci, consapevoli e semplici.
Per questo obbiettivo e per migliorare la sicurezza e la produttività degli sviluppatori si è scelto di usare la combinazione tra .NET e Blazor, il framework per lo sviluppo di applicazioni di applicazioni Web di nuova generazione ospitato sulla nostra piattaforma PaaS, in ambienti Linux.
Mediante l’uso di Blazor è stato possibile progettare integrazioni con gli ambienti di HubSpot che fornissero una maggiore produttività agli utenti con UI avanzate e più simili a quelle delle tradizionali applicazioni native pur mantenendo un alto livello di semplicità di sviluppo, favorendo il riutilizzo del codice e mantenendo un ambiente di sviluppo coerente ed uniforme tra backend e frontend, usando standard e tecnologie moderne e garantendo la sicurezza di tutte le informazioni scambiate.
La semplicità di utilizzo è passata dall’uso di una interfaccia come questa
all’uso di funzionalità moderne ed intuitive
Inoltre, la capacità di implementare regole di business avanzate e l’aggregazione di dati da fonti diverse hanno consentito di ridurre gli errori degli utenti e quindi ridurre l’inquinamento dei dati dovuto a modifiche che non rispettano i criteri e le regole di business stabilite.
Connessione tra gli ambienti
Per finire, di particolare interesse che l’interconnessione che è possibile attivare tra gli ambienti della piattaforma PaaS. Pur isolando, con i vantaggi già analizzati, le diverse applicazioni all’interno dei loro ambienti è comunque possibile inserire tali ambienti in un gruppo comune ed attivare funzionalità di interconnessione tra di loro.
Nel caso in analisi è stato possibile ad esempio concedere l’accesso all’istanza Redis in esecuzione nell’ambiente di schedulazione delle attività programmate. Le CRM card possono così accedere a Redis ed usare informazioni che vengono preparate attraverso job ricorrenti.
Ad esempio, diversi job hanno come obbiettivo quello di rigenerare periodicamente delle cache che vengono poi usate dalle CRM card, migliorando la velocità complessiva della soluzione, consentendo la condivisione tra le diverse CRM card e riducendo le chiamate sia alle API REST di origine che alle API di HubSpot, queste ultime protette da funzionalità di rate-limiting che produrrebbero degli errori inutili se utilizzate senza un coordinamento generale.
Con l’inter-connessione degli ambienti le diverse applicazioni possono comunicare e condividere i dati in modo sicuro attraverso delle reti isolate accessibili solo dagli ambienti collegati fra di loro, mantenendo quindi un elevato standard di sicurezza e non usando indirizzi pubblici che richiederebbero di esporre questi endpoint sulla rete Internet.
Conclusione
La flessibilità dei servizi di VaiSulWeb consente di progettare soluzioni ad alto valore aggiunto con la tecnologie più moderne ed innovative e superare anche le limitazioni imposte dai propri clienti.
In questo studio di casi abbiamo potuto analizzare una soluzione per mettere in contatto tre ambienti diversi mantenendo una complessità relativamente semplice, riducendo i costi e ottenendo un alto valore aggiunto per il cliente finale.
L’uso di .NET e Blazor, due tecnologie molto innovative, ha consentito di fornire al cliente un incremento notevole di produttività mentre la flessibilità della piattaforma PaaS consente di implementare soluzioni complesse, composte anche da tante parti in movimento, mantenendo una relativa semplicità di gestione e consentendo l’automazione dei processi più importanti: dal deployment agli upgrade alle comunicazioni tra le applicazioni.
0
Leave a Comment