3. Introduction à Einstein
Analytics
POURQUOI EINSTEIN ANALYTICS ?
Les rapports et tableaux de bord du standard
Salesforce ne sont-ils pas suffisants pour analyser les
données ?
Normalement oui ils le sont. Mais le volume de
données clients ne cesse de croître de manière
exponentielle. Le repérage des tendances, la
compréhension des corrélations ou le teste
d’hypothèses par exploration manuelle deviennent
quasiment impossible avec ces derniers.
C’est donc à ce stade qu’Einstein Analytics devient
nécessaire voir même obligatoire.
3
6. 1. Lexique
Un jeu de données (dataset) est une collection de données associées.
A chaque champ se trouvant dans un jeu de données est appliqué un
des type suivant :
6
DATE
Un champ de type date peut
être représentée par jour,
mois, année, heure, minute,
seconde et autre.
Il est possible de grouper,
filtrer et appliquer des
formules mathématiques sur
les dates.
DIMENSION
Un champ de type dimension
est une valeur qualitative. Il
peut être composé de tout
type de caractère.
Il est possible de grouper,
filtrer mais ce n’est pas
possible d’appliquer des
formules mathématiques
MESURE
Un champ de type mesure
est une valeur quantitative. Il
peut être un nombre ou un
pourcentage.
Il est uniquement possible
d’appliquer des formules
mathématiques
7. 2. Création d’un jeu de
données
Un jeu de données se trouve dans un flux de données (dataflow)
“Un flux de données est un ensemble d'instructions qui spécifient les
données à extraire d'objets Salesforce ou de jeux de données, comment
transformer des jeux de données et quels jeux de données doivent être
disponibles pour les requêtes.”
7
Jeu de données
Flux de données
1,*
1
Il est bon de savoir que le fichier de définition d’un flux de données est
un fichier JSON.
Einstein Analytics offre le choix de modifier le flux de données à travers
une interface graphique ou à travers le JSON.
8. 2.1. Conception d’un flux de
données
Il est primordial de bien réfléchir avant de créer un flux de données. Selon mon humble avis, il faut créer
un flux de données par besoin métier.
Il est possible d'assimiler un flux de données à un ETL (Extract - Transform - Load). En effet l’ETL a pour
but d’extraire les données nécessaires d’une ou de plusieurs sources de données, puis de les transformer
selon les besoins et ensuite de les charger.
8
Besoin métier :
Analyser les
opportunités
gagnées
9. 2.2. Configuration d’un flux de données
-> Création d’un flux de données
Deux façons de créer un flux de données
9
Data
Manager
Création d’un
jeu de
données
10. 2.2. Configuration d’un flux de données
-> Exploration d’un flux de données10
Import/Export du flux
de données en JSON
Nom du flux de
données
Rechercher un
noeud
Noeud (Il existe
différents types de
noeuds)
Permet d’ajouter un
type de noeud (selon
le bouton)
Conseil : Exporter
le JSON avant
toute modification
11. 2.2. Configuration d’un flux de données
-> Sauvegarde d’un flux de données11
Toute modification apportée au
niveau du flux de données (à
travers JSON ou l’interface
graphique) nécessite un
sauvegarde manuelle.
Si la sauvegarde n’a pas eu lieu, les
modifications seront perdues.
12. 2.2. Configuration d’un flux de données
-> Lancement et surveillance d’un flux de données12
Deux façons de lancer un flux de données
1 2
Une fois le flux de données lancé, il est
possible de voir son avancé afin de
savoir si les modifications ont
fonctionné et combien
d’enregistrements les jeux de données
le composant possèdent.
13. 2.2. Configuration d’un flux de données
-> Planification d’un flux de données (1/2)13
Il est possible de planifier les flux de données afin
d’avoir les données disponibles au moment voulu.
La planification ne peut se faire que si le flux de
données a été lancé.
La planification nous permet d’envoyer des notifications afin de savoir si elle
s’est bien passée.
14. 2.2. Configuration d’un flux de données
-> Planification d’un flux de données (2/2)14
La planification peut être faite par :
HEURE SEMAINE MOIS
Selon une date relative
Selon des dates spécifiques
16. 2.3. Création de jeux de données à travers un flux de données
Extract Register
16
Transform
Les différents “noeuds” permettant de créer des jeux de données peuvent être classés en trois catégories
17. 2.3. Création de jeux de données à travers un flux de données
-> Extract (1/3)17
Voici les “noeuds” permettant d’extraire des données de différentes sources
sfdcDigest
Ce noeud permet d’extraire les données de Salesforce.
Fonctionnement :
▹ Sélectionner un objet Salesforce (il se peut que certains objets tel que
LoginHistory ne soient pas disponibles)
▹ Sélectionner les champs utiles pour l’analyses.
▹ Il est possible de rajouter des filtres afin de ne récupérer que les
enregistrements nécessaires. Les filtres peuvent s’écrire en utilisant la
syntaxe JSON ou SOQL pour les filtres complexes.
Syntaxe JSON
18. 2.3. Création de jeux de données à travers un flux de données
-> Extract (2/3)18
Voici les “noeuds” permettant d’extraire des données de différentes sources
digest
Ce noeud permet d’extraire les données répliquées provenant de différentes
sources (Salesforce ou autre).
Fonctionnement :
▹ Fonctionnement égal à celui de sfdcDigest mais ne permet pas de réaliser
des filtres
19. 2.3. Création de jeux de données à travers un flux de données
-> Extract (3/3)19
Voici les “noeuds” permettant d’extraire des données de différentes sources
edgemart
Ce noeud permet d’accéder à un jeu de données existant, peu importe s’il contient
des données Salesforce, externes ou les deux.
Fonctionnement :
▹ Sélectionner un jeu de données existant. Il est possible de sélectionner un
jeu de données se trouvant dans des flux de données différents.
20. 2.3. Création de jeux de données à travers un flux de données
-> Transform (1/4)20
Voici les “noeuds” permettant de transformer les données
extraites.
append
Ce noeud permet de combiner les enregistrements de plusieurs jeux de données.
Précautions :
▹ Les jeux de de données doivent avoir la même structure : ordre des
colonnes, nom et type de champ
▸ Il est possible de combiner des jeux de données avec des structures
différentes en activant cette option au sein du noeud.
▹ La combinaison ne supprime pas les doublons.
21. 2.3. Création de jeux de données à travers un flux de données
-> Transform (2/4)21
Voici les “noeuds” permettant de transformer les données
extraites.
augment
Ce noeud permet de combiner les colonnes de deux jeux de données. Par exemple, supposons avoir
deux jeux de données : “Compte” et “Opportunité”. Il peut être nécessaire d’avoir des informations
supplémentaires sur le compte associé à une opportunité. Ce noeud permet de faire ceci.
Fonctionnement :
▹ Le “Left Source” correspond au jeu de données auquel nous
souhaitons augmenter (ajouter des colonnes) : dans l’exemple, il
s’agit d’ “Opportunity”
▹ Le “Right Source” correspond au jeu de données servant à
augmenter les colonnes : ici, c’est “Account”
▹ Les champs “Key” permettent de joindre les jeux de données via un
ou plusieurs champs (équivalent à la clé étrangère en base de
données) : ici il est possible de joindre les deux tables via le champs
“AccountId” d’ “Opportunité” et “Id” de “Compte”.
▹ Choisir dans “Right Fields” les colonnes à ajouter à la “Left Source”
22. 2.3. Création de jeux de données à travers un flux de données
-> Transform (3/4)22
Voici les “noeuds” permettant de transformer les données
extraites.
dim2mea
Ce noeud permet de créer une mesure basée sur une dimension. En effet, si un
champ numérique est de type texte (soit une dimension), afin d’effectuer des
calculs mathématiques dessus, il est nécessaire qu’il devienne une mesure.
Fonctionnement :
▹ Choisir le noeud sur lequel nous souhaitons créer une mesure basée sur une
dimension
▹ Choisir le champ à transformer en mesure
▹ Nommer le champ transformé
Ce type de noeud ne remplace pas le champ à transformer mais créer un nouveau
champ de type mesure.
23. 2.3. Création de jeux de données à travers un flux de données
-> Transform (4/4)23
Voici les “noeuds” permettant de transformer les données
extraites.
flatten
Ce noeud est utilisé pour la sécurité des données au niveau de l’enregistrement. En effet
sur Einstein Analytics, la sécurité mise sur Salesforce ne s’applique pas. Le flatten permet
d'aplatir les données par rapport à la hiérarchie. Le cas le plus fréquent est d’utiliser la
hiérarchie des rôles de Salesforce afin de mettre en place une sécurité équivalente à celle
de Salesforce.
24. 2.3. Création de jeux de données à travers un flux de données
-> Register24
Voici les “noeuds” permettant de charger les données extraites et transformées.
sfdcRegister
Il s’agit du noeud le plus utilisé pour charger les données dans Einstein Analytics.
L’utilisation de l’un de ce type de noeud est obligatoire afin que les jeux de données
soient disponibles pour les utilisateurs d’Einstein Analytics.
Fonctionnement :
▹ Le lier au noeud source (dernière transformation et contenant toutes les
données nécessaires à l’analyse)
▹ Donner un nom unique
26. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Introduction26
Une lens (perspective) permet de visualiser les données d’un jeu de données. Elle est en générale
utilisée pour élaborer un tableau de bord mais aussi pour extraire sous forme d’Excel les données de ce
jeu de données selon les groupes, les filtres et les calculs mathématiques de ce dernier.
En outre, sur les tableaux de bord, la création d’un graphique est quasiment équivalent à la création
d’une lens.
27. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Création27
Afin de créer une lens, il suffit uniquement d’ouvrir un jeu de données soit à travers une application
soit à travers l’onglet “Dataset”.
A partir d’une
application
A partir de l’onglet
“Datasets”
28. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (1/11)28
Nous allons détailler les différents composants composant une lens dans les diapositives suivantes :
1
4
3
2
29. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (2/11)29
Nous allons détailler les différents composants composant une lens dans les diapositives suivantes :
Bars horizontales :
Permet de faire des calculs
mathématiques sur les mesures
du jeu de données
Bars verticales :
Permet de grouper les données
en s’appuyant sur les champs de
types dimension et date
Trellis :
Permet de grouper d’une autre
manière les données en s’appuyant
sur les champs de types dimension
et date
Limitation :
Permet de limiter la taille des
résultats des requêtes
Filtres :
Permet de filtrer les données du jeu de
données en s’appuyant sur les champs de
types dimension et date
Champs :
Permet de manipuler les champs
30. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (3/11)30
Limitation
En cliquant sur le bouton, Einstein nous propose de mettre un
chiffre servant de limite des résultats de la requête.
31. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (4/11)31
Champs
Plusieurs options sont possibles :
▹ Renommer les champs d’un jeu de données
▹ Editer les valeurs des jeux de données (valeurs des champs “Liste de Sélection”)
▹ Créer des mesures et des dimensions dérivées ou non ⇒ utilisées pour donner un format aux mesures
créées via le SAQL
Toute modification impactera tous les lens et tableaux de bord ayant ce jeu de données
32. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (5/11)32
Ici un exemple des bars verticales, horizontales et du filtre.
Voici le résultat des configurations faites sur la
bar horizontale. On peut faire une infinité de
calcul mathématiques sur cette axe
Ici le résultat du groupement via la bar
verticale et l’option filtre. On peut faire 4
groupements et une infinité de filtres.
33. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (6/11)33
Il est possible de modifier l’ordre de tri.
Pour ce faire, il faut appuyer sur la flèche d’une des mesures
mises dans la bar horizontale puis de choisir l’ordre du tri
comme dans l’image.
34. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (7/11)34
Graphes
Einstein Analytics met à disposition plusieurs types de graphiques
nous permettant d’analyser les données.
Il offre aussi une option “Graphes suggérés”.
35. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (8/11)35
Mise en forme
Le contenu de ce menu peut changer selon les types de graphes
choisis et / ou du widget.
En soit, elle permet principalement de :
▹ Mettre un titre général au graph en réglant la taille de la
police
▹ Régler les différents axes du graph
▹ Afficher la légende
▹ Modifier l’échelle des axes
▹ Modifier le marqueur lorsque l’utilisateur clique sur un
résultat du graphique
▹ Permet d’activer la multiple sélection des données
▹ Formater les données de manière conditionnable
36. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (9/11)36
L’historique
Einstein Analytics permet de parcourir les
historiques de modification et de revenir sur
l’une d’elle.
Pour revenir à une ancienne version, il suffit
uniquement de cliquer dessus.
37. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (10/11)37
Mode graphique
Permet de voir le jeu de données sous une
forme graphique.
Mode tableau
Il existe trois types de tableau :
▹ Tableau simple (permet d’afficher les données
d’un jeu de données en forme de tableau
comme sous Excel)
▹ “Compare Table” : Permet de réaliser des
calculs complexes sur les mesures (on verra un
exemple dans la suite)
▹ Tableau pivot : Permet de générer une
synthèse des données du table brut
(ressemble au croisé dynamique sous Excel)
Mode SAQL
Permet de voir l’ensemble des modifications de
lens sous forme de requête + permet de réaliser
des tâches complexes comme le croisement de
plusieurs jeux de données.
38. 1. Explorer les données via le “standard” Einstein Analytics
-> Lens - Exploration (11/11)38
Modification
Permet d’annuler une modification ou de
revenir dessus.
“Clip to designer”
Permet de copier une lens dans un tableau de
bord ouvert en parallèle.
Sauvegarder
Permet de sauvegarder une lens dans une
application à choisir.
Partager
Permet de partager une lens soit en la
mettant sur chatter soit en la téléchargeant
sous différents formats (image, Excel, CSV).
39. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Introduction39
Un tableau de bord permet de suivre facilement à travers différents graphiques les métriques clés de
notre activités.
A travers un tableau de bord, il est possible d’avoir accès à tous les jeux de données.
Einstein Analytics offre la possibilité d’adapter le tableau de bord par rapport au device afin d’analyser
nos métriques n’importe où.
40. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Création (1/2)40
Voici les étapes permettant de créer un tableau de bord :
Einstein Analytics propose différents templates afin de
faciliter le travail des utilisateurs.
41. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Création (2/2)41
Une fois le tableau de bord créé, Einstein Analytics nous propose de configurer celui-ci.
Il est possible de :
▹ Définir un nombre de colonnes du tableau de bord (utilisé
pour le côté responsive)
▹ Définir la taille de la largeur (pour desktop et mobile)
▹ L’espace entre chaque cellule (issus des colonnes
précédemment définies)
▹ Personnaliser le fond d’écran
42. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Exploration42
Différents
widgets
Menu de
configuration
pouvant
changer
selon
l’endroit où
l’on se
trouve dans
le tableau de
bord
Actions sur le tableau
de bord
Emplacement des
widgets
43. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Widgets (1/2)43
Ces deux widgets permettent de créer des graphes et/ou des tableaux. Ceci revient à créer
des lenses au sein d’un même tableau de bord.
Permet de mettre des filtres globaux sur l’ensemble du tableau de bord.
Permet de créer un containeur de widgets. Il est utilisé pour faire designer le tableau de bord.
Permet de créer des filtres sur un champ date se trouvant dans un jeu de données
Permet de mettre en place un lien (peut servir à rediriger vers un autre tableau de bord)
Permet d’insérer une image
44. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Widgets (2/2)44
Permet d’afficher les données sous forme d’une liste. Il est souvent utilisé en tant que filtre.
Permet d’afficher le résultat d’une mesure sous forme d’un nombre
Permet de choisir un intervalle de valeurs. Il est souvent utilisé pour mettre en place des
filtres.
Permet d’afficher un texte.
Utiliser pour faire des boutons. Il peut être utilisé pour faire des actions sur d’autres widgets.
45. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Actions (1/3)45
Einstein Analytics permet d’adapter les tableaux de bord selon le device utilisé. Il est donc
possible de voir des widgets totalement différents d’un device à un autre.
La liste des actions est différentes selon si nous sommes en mode Vue ou Édition
46. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Actions (2/3)46
Permet de passer en mode Visualisation.
Permet de sauvegarder le tableau de bord.
Permet de mettre des valeurs par défaut sur les différents
filtres
Permet de connecter deux jeux de données en les liant avec
un champ dont les données sont communes. La connexion
ne pourra se faire que par une action sur les champs mappés
(cf. vidéo)
47. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Actions (3/3)47
48. 1. Explorer les données via le “standard” Einstein Analytics
-> Tableau de bord - Le faceting48
Le faceting permet de faire interagir au moins deux widgets. Cette interaction permet
de mettre à jour les résultats des widgets selon certains autres widgets.
Il est possible de décider si le widget peut interagir avec les autres.
49. 2. Aller plus loin avec Einstein Analytics49
Dans cette section, nous verrons les points suivants
▹ Création d’un “Compare Table”
▹ Le binding
▹ Les bases du SAQL
▹ Actions supplémentaires sur les jeux de données
50. 2. Aller plus loin avec Einstein Analytics
-> Création d’un “Compare Table”50
Le “Compare Table” permet plusieurs actions sur les mesures dont :
▹ Trier uniquement une colonne sans impacter les autres colonnes
▹ Cloner des colonnes
▹ Éditer les titres des mesures
▹ Ajouter des filtres différents sur chacune des colonnes
▹ Modifier le format des colonnes
▹ Réaliser des calculs mathématiques complexes en s’appuyant sur les différentes
colonnes du tableau
But de la vidéo : Calculer le
ratio des opportunités
gagnées par rapport à toutes
les opportunités
51. 2. Aller plus loin avec Einstein Analytics
-> Le Binding51
Le Binding est une notion très importante et très utilisée au sein d’Einstein Analytics. Il permet
de faire interagir différents composants d’un tableau de bord.
Il existe deux types de binding :
▹ “Selection binding” : Permet de mettre à jour une step en se basant sur la sélection d’une
autre step
▹ “Result binding” : Permet de mettre à jour une step en se basant sur le résultat d’une
autre step
Afin de mettre en place le principe de binding, il est nécessaire passer par la vue JSON.
Pour passer de la vue “Édition” à la vue JSON et inversement, il suffit d’appuyer sur CTRL + E.
Plusieurs fonctions peuvent être utilisées avec le binding, nous en verrons quelques une.
La syntaxe est : <stepName>.<selection|result>.
Exemple : myStep_1.selection
Tout widget sur lequel se trouve un binding reste modifiable uniquement par la vue JSON
52. 2. Aller plus loin avec Einstein Analytics
-> Le Binding - Fonctions52
Nom de la fonction Syntaxe Définition
cell cell(<stepName>.<selection|result
>, <numberOfCell>, ”<column>”)
Permet de récupérer la valeur de la
cellule numéro “numberOfCell” de la
colonne “column”
column column(<stepName>.<selection|r
esult>, [”<column>”])
Permet de récupérer les valeurs de la
colonne “column”
coalesce coalesce(cell(<stepName>.selecti
on, [”<column>”]),
”<defaultValue>”)
Permet de récupérer la valeur de la
fonction “cell” si une sélection a été faite.
Sinon elle renvoie la valeur par défaut.
Le plus souvent, ces fonctions sont suivies de “.asObject()” ou “.asString()”. Nous verrons leur
utilisation dans une vidéo.
53. 2. Aller plus loin avec Einstein Analytics
-> Le Binding - Vidéo53
L’objectif de la vidéo est de
montrer la manière d’utiliser le
binding de type selection.
Le binding de type result
fonctionne de la même manière.
54. 2. Aller plus loin avec Einstein Analytics
-> Le SAQL54
Le SAQL est le langage de programmation des requêtes. Il existe différentes fonctions sur
celui-ci que vous pouvez découvrir à travers vos différents projets et besoins.
Ici, nous allons uniquement parler de la base de ce langage.
A savoir, le SAQL réalise les calculs par ligne du jeu de données.
Il permet de réaliser des calculs et des jointures entre les jeux de données complexes.
55. 2. Aller plus loin avec Einstein Analytics
-> Le SAQL - Les bases (1/2)55
56. 2. Aller plus loin avec Einstein Analytics
-> Le SAQL - Les bases (2/2)56
Le code SAQL est extrait d’un draft sur le sujet de l’adoption Lightning.
A travers celui-ci on va voir plusieurs notions:
▹ “q”: chaque étape du code doit être stockée dans des variables afin de pouvoir appeler
le résultat de celle-ci plus loin dans le SAQL
▹ “Load” : permet de charger un jeu de données (obligatoire d’en charger au moins 1)
▹ “Group by” : peut avoir différentes utilisations
▸ Ligne 3 du code : est utilisé comme un SELECT en SQL
▸ Ligne 12 du code : joue le rôle d’un GROUP BY en SQL
▸ Ligne 14 du code : est utilisé pour faire une jointure entre deux jeux de données
▹ “Foreach” : permet de réaliser des calculs et de créer de nouvelles mesures. Comme son
nom l’indique, il parcourt l’ensemble du jeu de données et à chaque ligne, il applique
les calculs demandés
Je vous invite à regarder la documentation Salesforce (ici) afin de voir les différentes
fonctions offertes par le SAQL.
57. 2. Aller plus loin avec Einstein Analytics
-> Actions sur les jeux de données (1/4)57
Plusieurs actions sont possibles de faire sur un jeu de données :
▹ Possibilité de rafraîchir les données de celui-ci à la volée :
▹ Gérer la sécurité
58. 2. Aller plus loin avec Einstein Analytics
-> Actions sur les jeux de données (2/4)58
Pour la sécurité, elle se fait au niveau de chaque enregistrement se trouvant dans le jeu de
données. Dans ce cas, nous regardons si le rôle du propriétaire de l’enregistrement est égal au
rôle de l’utilisateur qui a ouvert le jeu de données.
▹ Pouvoir faire des actions (telle que d'ouvrir un enregistrement sur Salesforce)
59. 2. Aller plus loin avec Einstein Analytics
-> Actions sur les jeux de données (3/4)59
1. Sélectionner les
champs du jeu de
données sur lesquelles
une action peut être
faite
2. Sélectionner un champ de
type “Id”. Il permettra de faire
le lien entre l’action faite et
Salesforce
3. Faire apparaître différents
champs. C’est utile dans le
cas où il y a des valeurs en
doublon dans le champ
sélectionné à l’étape 1
4. Sélectionner les actions à
produire.
Zoom sur l’écran de la configuration d’une action sur le jeu de données
60. 2. Aller plus loin avec Einstein Analytics
-> Actions sur les jeux de données (4/4)60
Exemple des actions actives sur le champ “Opportunity Name” du jeu de données
‘Opportunities”
61. Des questions ?
By Ilan Malka
Fondateur d’iMalka, pure player Salesforce
61