Il filone completo (Stream → DLO → DMO) per mappare il CRM al Customer 360 Model e abilitare l’analisi live.
1. Perché Data Cloud e Next?
Se state leggendo questo articolo, la vostra prima domanda potrebbe essere: “Perché devo fare tutto questo giro in Data Cloud per usare Tableau Next, quando ho Tableau Desktop che è un software maturo e completo?”
Domanda lecita. E la risposta non ha nulla a che vedere con un confronto di funzionalità (dove Desktop oggi vincerebbe a mani basse).
Il “perché” è strategico ed è tutto interno all’ecosistema Salesforce. Non stiamo valutando un tool di visualizzazione, stiamo sbloccando un nuovo modo di accedere ai dati.
I motivi sono tre:
- Lo “Zero-ETL”: il vecchio mondo prevedeva un estratto (
.hyper) che, per definizione, è una fotografia: nel momento in cui la scatti, è già vecchia. Il flusso che stiamo costruendo permette a Tableau Next di fare query dirette (live) su Data Cloud. Quando un venditore chiude un’opportunità in Sales Cloud, Data Cloud la riceve in Near-Real-Time e la tua dashboard si aggiorna. - L’analisi “In-Context”: Tableau Next non è pensato (non ancora) per l’analista che deve incrociare 40 tabelle. È pensato per l’utente business che vive in Salesforce. La dashboard di Next è un componente nativo dentro la pagina Lightning di un Account. L’analisi non è più una destinazione separata (“apro Tableau”), ma è parte integrante del flusso di lavoro.
- L’armonizzazione: questo è il punto cruciale. In Salesforce CRM hai la tabella
Account. Ma se hai anche un gestionale (SAP) o un e-commerce (Magento)? Anche lì hai dei “clienti”. Come vedremo, usando il Customer 360 Data Model, noi non mappiamo i dati su una tabella, ma su un concetto. Domani potrai mappare anche i clienti di SAP sullo stesso DMOAccount, e Tableau Next vedrà un’unica vista del cliente (dati anagrafici dal CRM, fatturato da SAP) senza sforzo.
2. Step 1: IL NASTRO TRASPORTATORE (Data Stream – DSO)
Il Data Stream è il processo di ingestione. È il connettore attivo che dice a Data Cloud: “Ehi, vai a prendere i dati dall’oggetto ‘X’ nel sitema ‘Y’ e portali qui. Fallo ogni ora. O fallo una volta al giorno all’ora tal dei tali”.
Accedi a Data Cloud attraverso l’App Launcher.
In alto trovi 3 tab: Data Streams, Data Lake Objects, Data Model.
Accedi alla tab Data Streams (d’ora in poi abbreviato in DSO) e scegli New in alto a destra.
Apparirà una finestra per scegliere il connettore, tra una lista di servizi supportati. Scegli il primo in elenco, Salesforce CRM.
La prima opzione che dovremo scegliere è se vogliamo lavorare con i Bundles (pacchetti di tabelle pre-selezionate per analizzare uno specifico ambito di Salesforce) o selezionare manualmente le tabelle che vogliamo utilizzare.
Selezioniamo View Objects per accedere all’elenco delle tabelle disponibili.
Usando il box di ricerca sulla destra, cerchiamo e selezioniamo le tabelle Account e Opportunity
Clicca su Next e apparirà la pagina con i dettagli dello stream, da cui dovremo scegliere la categoria di dato e le colonne che vogliamo importare. Eventualmente possiamo creare anche dei Formula Field.
La scelta dell’object category è molto importante per la successiva fase di mappatura dei dati. Il modello dati presente in Salesforce, chiamato Customer360 Data Model, è enorme e contiene modelli per qualsiasi cosa, click sulle email, visite web, resi clienti, casi supporto, opportunità, etc…
La categoria assegnata al tuo DSO funziona come suggerimento al sistema per mostrarti i data model esistenti più adatti al tuo dato. Quindi se selezionamo, ad esempio, “Profile”, ci verranno proposti per primi tutti quei modelli che sono stati catalogati come Profile nel Customer360.
Se scegliamo a caso, sarà un po’ più complessa la fase di mappatura successiva e potrebbero anche esserci delle ripercussioni di come gli agenti AI intepretano i dati.
- Profile: è il nostro “chi”, descrive chi è un’entità (persona, azienda..) che agisce, che compra, che apre casi, che partecipa a campagne marketing. I dati sono attributi che possono cambiare nel tempo (es: numero di telefono di un contatto)
- Engagement: è il “cosa” è stato fatto, in un momento preciso. Richiede un campo data e i dati si accumulano all’infinito, senza mai cambiare (es: emailopen, webvisit…)
- Other: è “il resto”, va usato per tutto ciò che non è un attore (profile) e nemmeno un’azione immutabile (engagement). Tabelle come salesorder, opportunity, cases appartengono tutte ad Other perché mutano nel tempo, cambiano gli status, non sono immutabili. Tabelle che descrivono i prodotti fanno parte di other.
Sulla sinistra hai l’elenco delle 2 tabelle importate, puoi passare da una all’altra selezionandole da li.
Seleziona la categoria “Profile” per Account.
Seleziona la categoria “Other” per le Opportunity.
Nella parte bassa della finestra possiamo scegliere quali campi importare. I campi sono suddivisi in 3 tab: standard, custom e formula fields.
Data Cloud è un servizio che si paga a consumo. Consumo di query generate per streammare il dato e per interrogarlo e anche consumo di spazio utilizzato. Importare tutto il dataset non è una best practice.
La regola in Data Cloud è: “If in doubt, leave it out.”
È facilissimo tornare sul Data Stream tra un mese e aggiungere quel campo che ti sei reso conto ti serve. È molto più costoso (e complicato) ripulire lo storage da dati inutili che ti porti dietro da mesi.
Per la tabella Account scegliamo solo:
- Account Name
- Industry
- Account ID (questo è sempre preselezionato e non si può togliere, è la chiave primaria della tabella)
Per la tabella Opportunity scegliamo solo:
- Amount
- Close date
- Stage
- Opportunity ID (questo è sempre preselezionato e non si può togliere, è la chiave primaria della tabella)
- Account ID (è la foreign key della tabella, che ci permette di assegnare gli account)
Come ultimo step, dobbiamo scegliere la frequenza e tipologia di update dei dati.
Come potete vedere, per i dati Salesforce non abbiamo la possibilità di scegliere nulla.
Questo perché a differenza di altre fonti esterne (come S3 o FTP) dove devi schedulare un vero e proprio refresh batch, il connettore Salesforce è un connettore privilegiato, che usa la tecnologia NRT (near real time).
In questo caso non è Data Cloud che all’ora prestabilita si attiva per richiedere i dati alla fonte originaria; ma è Salesforce stesso che ogni volta che viene aggiornato un dato, pochi secondi dopo lo pusha nello stream di dati (CDC: change data capture).
Clicchiamo ora sul pulsante blu Deploy e automaticamente passeremo al secondo step: la creazione del DLO, del data lake object, che avviene in automatico per il semplice fatto di aver creato un DSO.
3. Step 2: IL MAGAZZINO (Data Lake Object – DLO)
Questo è un passaggio automatico. Non appena hai avviato il Data Stream, Data Cloud crea un Data Lake Object (DLO) per ogni oggetto importato.
È il magazzino dei dati grezzi. Una copia 1:1 dei dati sorgente, stoccati nel Data Lake (basato su tecnologia S3).
Serve come staging area. Non è (quasi) mai l’oggetto che esporrai a Tableau Next, perché è “sporco” e non ha relazioni semantiche.
4. Step 3: IL CERVELLO (Data Model Object – DMO)
Questo è il cuore del lavoro e il concetto chiave di Data Cloud. Non costruiremo un modello da zero, ma useremo lo standard.
Perché usiamo il modello standard? Perché Data Cloud è una piattaforma di armonizzazione. Per armonizzare serve un linguaggio comune (un modello “canonico”).
Questo linguaggio è il Customer 360 Data Model (C360DM), organizzato in aree tematiche (Party, Sales, Engagement…).
Rimaniamo nella tab Data Lake Objects
Apri il DLO Account e sulla destra troverai il menù per iniziare il mapping del modello.
A sinistra hai i campi che lo stream ha salvato nel nostro data lake object. A destra puoi attivare la scelta del modello:
Qui possiamo scegliere 2 differenti opzioni:
- usare uno dei modelli standard messi a disposizione da Salesforce
- creare da zero un modello custom
All’interno del Customer360 model abbiamo le informazioni già tutte tracciate. Quali sono le relazioni tra le tabelle, la granularità tra di esse, cosa significano i campi all’interno. Usare un modello già esistente ci permette di sfruttare tutto il lavoro già fatto da Salesforce.
Se invece vogliamo creare un modello custom, dovremmo poi personalizzare tutto quanto.
Cerchiamo Account nel box di ricerca e assegnamo il modello al nostro DLO, usando il pulsante +.
Ora a sinistra abbiamo sempre i nostri field, a destra quelli del modello scelto.
In questo caso il sistema è già riuscito a mappare da solo l’account id e name. Dobbiamo assegnare noi il mapping a Industry.
- Clicca su Industry a sinistra
- Espandi gli unmapped fields a destra
- Cerca Primary Industry
- Cliccaci sopra
- Apparirà il filo che connette i due campi
Salva il DMO con il pulsante Save&Close in alto a destra.
Ora ripetiamo gli stessi step per mappare anche il DLO Opportunity, usando il modello standard chiamato Opportunity.
Salva il DMO con il pulsante Save&Close in alto a destra.
Non abbiamo mappato tutti i fields, ma solo quelli che sono necessari per la nostra analisi, e successivamente in Tableau Next avremo a disposizione solo i campi mappati.
Il campo Amount è stato mappato come Total Amount, da ora in poi lo useremo rinominato in questo modo.
Ora spostiamoci nella tab Data Models e attiviamo la visualizzazione modalità Graph.
Grazie alle informazioni già presenti nel Customer360 model, di cui abbiamo usato i due modelli standard Account e Opportunity, il sistema già sa come relazionare queste tabelle tra di loro e non dobbiamo fare altro che usare il DMO che abbiamo creato.



























