Introduzione
Microsoft Dynamics 365 è una delle soluzioni CRM più diffuse tra le aziende. La suite offre strumenti avanzati per la gestione dei clienti, delle vendite e del marketing. Tuttavia, non sono poche le aziende che si scontrano con il problema di accesso ai dati e della loro integrazione con altri sistemi aziendali.
Si tratta di uno scoglio importante, poiché, per un'azienda, l'integrazione dei dati aziendali è quanto mai cruciale per avere una visione chiara, puntuale e completa delle informazioni che consentono di prendere decisioni di business. Superare questa sfida è fondamentale per poter sfruttare anche le potenzialità delle tecnologie emergenti del mondo IT, quali l’intelligenza artificiale, il cloud o le strategie ibride e la sostenibilità, ambiti peraltro su cui Microsoft sta ampiamente lavorando.
In questo articolo, vedremo una soluzione che consente di superare le criticità d’integrazione di Microsoft Dynamics 365, per avere il pieno controllo dei dati e un'adeguata integrazione per non perdere i vantaggi offerti dalle nuove tecnologie e non attardarsi rispetto alla concorrenza.
Contesto
L'impossibilità di accedere facilmente ai dati presenti in Dynamics 365 ha conseguenze dirette sia sul business che sull’operatività aziendale. Senza un'integrazione fluida, il CRM resta un sistema isolato, che non consente una visione unificata di quanto avviene. Questo rallenta le decisioni strategiche, riduce l'efficacia delle campagne di marketing e limita le opportunità di vendita. Inoltre, la difficoltà nell'analizzare i dati in tempo reale può portare a previsioni errate, scelte operative imprecise e, in definitiva, a una perdita di competitività e di profitto. Il risultato? L’azienda fatica a ottenere un quadro completo e unificato del proprio patrimonio informativo. Gli analisti si trovano costretti a sviluppare soluzioni complesse o a ricorrere a procedure manuali per estrarre e pulire i dati, rallentando i processi decisionali e riducendo l'efficienza operativa, oltre che aumentando le possibilità di errore.
I problemi: mancanza di un metodo per l’esportazione e campi custom
(Fonte immagine: Microsoft)
Uno dei principali motivi che sta alla base del problema è l'assenza di un metodo nativo e intuitivo per esportare automaticamente i dati in un ambiente di analisi o di integrazione. Microsoft offre delle API per interrogare il database di Dynamics 365, ma queste presentano alcuni problemi chiave. Le vediamo brevemente.
1. Struttura delle entità API diversa dall'interfaccia grafica
Quando un utente accede a Dynamics 365 dall'applicazione web o desktop, visualizza un'interfaccia ben organizzata, con schermate intuitive e viste strutturate che collegano clienti, opportunità, ordini e altri dati aziendali. Questa esperienza è semplificata dall'uso di viste personalizzate e dall'integrazione con altri moduli o altri gestionali sotto licenza Microsoft, che armonizzano l'accesso alle informazioni. Tuttavia, quando si tenta di accedere agli stessi dati tramite API per analizzare e trasformare massivamente questi dati, la situazione cambia radicalmente. La struttura presentata via interfaccia non è la stessa disponibile nelle API e non esiste una chiamata API per richiamare direttamente quelle viste a cui l'utente è abituato. Questo crea una discrepanza significativa tra ciò che l'utente vede e ciò che il team IT può effettivamente estrarre, complicando l'integrazione con altri sistemi aziendali.
2. Relazioni tra entità non chiare e documentate
Ricostruire le relazioni tra le entità non è intuitivo poiché la documentazione fornita non è dettagliata; questo rende oneroso il lavoro dell'utente per recuperare tutte le informazioni che aveva nell'interfaccia grafica.
3. Campi custom e con decodifiche separate
Recuperando anche le entità più basilari tramite API, si scopre che molti campi risultano valorizzati in modo diverso da ciò che ci si attende, o addirittura le informazioni non sono presenti. Questo è dovuto alla presenza di campi custom creati in fase di configurazione, non presenti nelle chiamate base e decodificati in altre tabelle del database Microsoft, oppure di campi salvati come sotto-attributi dell'entità, nascosti a una estrazione base.
4. Limitazioni nelle richieste e gestione dei dati
Ogni chiamata API recupera un massimo di 5000 record, limite che non può essere aumentato. Per entità con pochi record questo non è un problema ma quando si ha a che fare con database e quantità di dati più ampie si rischia di avere un dato parziale e incompleto.
Predisporre una reportistica personalizzata e avere una visione d'insieme in tempi rapidi, integrando i propri dati aziendali di produzione con quelli di Dynamics 365, per eseguire analisi avanzate, diventa in questo modo proibitivo. L'impossibilità di integrare facilmente Dynamics 365 impedisce di avere una visione unificata e aggiornata dei propri dati, ostacolando analisi strategiche, automazioni e processi decisionali, rallenta le vendite, limita l'efficacia del marketing e aumenta i costi operativi. Il tutto genera inefficienze, perdita di opportunità di business e difficoltà nel rispondere rapidamente alle esigenze del mercato.
Un obiettivo possibile: il Data Warehouse aziendale
La domanda da porsi è dunque questa: con tutte queste complicazioni, le API di Dynamics sono davvero inutilizzabili? La risposta è «No». Si tratta di trovare la giusta soluzione che risponda a delle esigenze fondamentali. L'obiettivo da perseguire è importare nel Data Warehouse aziendale i dati più rilevanti del CRM, replicando in un database accessibile la stessa struttura tabellare visibile nell'interfaccia grafica di Dynamics 365 e in altri gestionali con licenza. Il processo di caricamento deve essere automatico e giornaliero, in modo da garantire una reportistica aggiornata senza interventi manuali.
Un aspetto fondamentale è ridurre i costi di licenza, evitando spese superflue ove possibile. Inoltre, un valore aggiunto della soluzione è la standardizzazione del flusso di estrazione, adottando una struttura precisa per ogni entità. Questo approccio consente di ottimizzare i tempi di sviluppo, semplificare la gestione del processo e coinvolgere anche gli utenti business, permettendo loro di aggiungere nuove entità al Data Warehouse in autonomia. In questo modo, l'azienda può estendere facilmente l'integrazione senza dover affrontare la complessità tecnica delle API di Dynamics 365.
Soluzione
Per superare le difficoltà di accesso ai dati di Dynamics 365, è stato adottato Apache NiFi, una piattaforma open-source progettata per l'automazione dei flussi di dati. NiFi permette di acquisire, trasformare e distribuire informazioni in modo scalabile, garantendo un'integrazione efficiente tra sistemi diversi, anche quando le API rendono complesso l'accesso ai dati.
Uno dei principali vantaggi di NiFi è la sua interfaccia grafica intuitiva, che consente di progettare flussi di dati senza scrivere codice, semplificando la gestione delle chiamate API di Dynamics 365 e la trasformazione dei dati in un formato utilizzabile. Inoltre, NiFi offre strumenti avanzati per la gestione degli errori, il monitoraggio in tempo reale e la scalabilità, rendendolo ideale per aziende che necessitano di un'integrazione automatizzata e affidabile.
Molte aziende lo hanno già adottato come soluzione per la gestione dei flussi ETL di caricamento del DWH aziendale trovandolo efficace, veloce e versatile. Il flusso basato su Apache NiFi è articolato in due fasi principali:
Estrazione delle Etichette di Decodifica
Nel CRM Dynamics 365, molti campi visibili come nomi intuitivi nell'interfaccia vengono invece restituiti dalle API sotto forma di codici. Per rendere i dati comprensibili e utilizzabili nel Data Warehouse (DWH), è necessario un processo di decodifica. Per ottenere le corrispondenze tra codici e descrizioni, NiFi effettua una chiamata API e organizza le informazioni in una tabella di decodifica. Questa tabella permette di associare i valori leggibili ai dati numerici, facilitando le analisi successive. L'intero processo è stato reso standardizzabile e scalabile: un sistema parametrizzato permette di applicare la stessa logica a più entità di Dynamics 365 senza dover creare ogni volta un nuovo flusso, riducendo il lavoro manuale e garantendo efficienza operativa.
Estrazione e arricchimento delle entità
In questa fase, ogni gruppo di informazioni presente nel CRM viene trattato come una tabella nel Data Warehouse (DWH). Per garantire che i dati siano sempre aggiornati, il sistema cancella quelli esistenti e li sostituisce con la versione più recente, assicurando così un'integrazione sempre allineata con le informazioni del CRM.
Per estrarre i dati, NiFi invia una richiesta alle API di Dynamics 365, recuperando solo i campi effettivamente utili. Questo approccio riduce il volume di dati da elaborare e permette di estrarre anche dettagli aggiuntivi, come le descrizioni associate ai codici, rendendo i dati più leggibili e facilmente utilizzabili per le analisi aziendali.
Dynamics 365 impone un limite di 5.000 record per query. Per superare questa restrizione, il flusso NiFi è stato progettato per gestire automaticamente la paginazione dei risultati, In questo modo, lasciando NiFi ciclare parallelamente su tutte le pagine, vengono recuperati tutti i dati dell'entità senza perdita di informazioni.
Per garantire che i dati archiviati nel DWH siano leggibili e facilmente utilizzabili, ad ogni pagina di risultati estratta viene applicato un lookup sulla tabella di etichette salvata nella fase 1. Questo processo permette di:
- Sostituire i codici con le relative descrizioni testuali, mantenendo coerenza con l'interfaccia grafica di Dynamics 365.
- Migliorare la qualità del dato, evitando che gli utenti debbano effettuare manualmente le conversioni durante la reportistica.
Per garantire la massima flessibilità e riusabilità della soluzione, il flusso è stato progettato per essere completamente parametrizzabile. Le variabili principali includono:
- L'entità da estrarre, per poter eseguire il flusso su diverse entità senza modifiche strutturali.
- L'elenco dei campi da recuperare, per ottimizzare l'estrazione e limitare il volume di dati.
- L'elenco dei campi da arricchire, che necessitano della decodifica con la tabella delle etichette.
- L'elenco delle etichette da utilizzare per il lookup, per garantire che i dati siano coerenti con l'interfaccia del CRM.
Risultati e raccomandazioni
Grazie ai due template preconfigurati, integrare i dati di Dynamics 365 nel Data Warehouse non richiede competenze tecniche avanzate, ma solo la conoscenza delle informazioni da recuperare. Con pochi passaggi – semplici copia-incolla e compilazione delle variabili – è possibile importare rapidamente decine di entità dal CRM, garantendo un processo scalabile e standardizzato.
Il flusso è completamente automatizzato e schedulato ogni notte, permettendo di estrarre i dati aggiornati dal CRM e renderli disponibili per l'analisi nel DWH senza necessità di intervento manuale. La gestione è estremamente agevole: la struttura modulare, basata su template riutilizzabili, riduce la complessità operativa e ottimizza i tempi di sviluppo.
Dal punto di vista tecnico, è importante considerare due aspetti per garantire un'integrazione efficace:
- la preparazione delle strutture dati nel DWH, che devono essere allineate ai campi e alle entità estratte;
- l'eventuale estensione dei timeout delle API di Dynamics, specialmente per query più onerose.
La soluzione implementata con Apache NiFi offre numerosi vantaggi concreti. Li elenchiamo.
- Automazione completa, eliminando attività manuali e riducendo il rischio di errori.
- Scalabilità e flessibilità, con la possibilità di estendere facilmente l'integrazione a nuove entità.
- Migliore accessibilità ai dati, grazie alla trasformazione dei codici in valori leggibili.
- Ottimizzazione dei costi, evitando licenze aggiuntive per utenti che necessitano solo della consultazione dei dati.
L'unico fattore variabile nella rapidità del flusso è il tempo di esecuzione delle chiamate API, che rappresentano la parte più onerosa del processo. Tuttavia, grazie alla gestione intelligente della paginazione e all'ottimizzazione delle query, il sistema garantisce prestazioni efficienti e un'integrazione affidabile dei dati di Dynamics 365.
Grazie ad Apache NiFi, siamo riusciti a trasformare dati complessi e poco accessibili in un formato chiaro e immediatamente utilizzabile, integrandoli senza difficoltà nella reportistica aziendale e rendendoli un valido supporto per le decisioni strategiche.
Ti è piaciuto quanto hai letto? Iscriviti a MISPECIAL, la nostra newsletter, per ricevere altri interessanti contenuti.
Iscriviti a MISPECIAL