BlueBearsIT vous présente les différentes solutions permettant de charger les données de Salesforce dans Power Bi. Si vous n’êtes pas familier avec le CRM Salesforce ou Power Bi, vous pouvez consulter nos articles « Power BI au service de vos indicateurs vos performances commerciales! » et « Iaas, Paas, Saas : Définitions et différences !»
Chargement de données
Comme vu dans notre article « Comment se connecter à ses données : Importation ou Direct Query ? » il existe deux manières de charger les données dans Power Bi :
- Importation des données
De cette manière toutes les données utilisées par le dataset sont chargées en une seule fois.
- Direct Query
Ici, la source de données est interrogée à chaque fois que l’on interagit avec Power BI.
Importation
Salesforce Object / Reports
Pour l’importation il suffit d’utiliser les connecteurs Salesforce Object et Reports présents dans Power BI. Ces deux connecteurs présentent des différences :
– Salesforce Object:
- Peut charger toutes les tables de données de Salesforce.
– Salesforce Report :
- Charge les données utiliser par un rapport Salesforce défini.
- Est limité à 2 000 lignes.
- Importe des objets et champs personnalisés.
Le chargement des données se fait de la même manière avec ces deux connecteurs.
Tout d’abord il faut se rendre dans l’onglet « Obtenir les données » de Power Bi. Il suffit ensuite de chercher « Salesforce » pour trouver nos connecteurs :
Dans cet exemple je sélectionne « Objets Salesforce », la méthode de connexion est la même pour « Rapports Salesforce ».
Il faut ensuite renseigner votre URL Salesforce, en cochant « Production » vous utilisez l’URL par défaut (https://www.salesforce.com). Si votre URL est personnalisé, renseigné le alors dans le champ « Custom ».
La case « Include relantionship columns » doit être cochée si vous souhaitez voir les colonnes liées à d’autres tables par des clefs étrangères.
L’étape suivante est la connexion à votre compte Salesforce en cliquant sur « Sign in », si vous vous connectez pour la première fois il vous sera demandé de procéder à une vérification. Il faudra alors saisir un code envoyé sur votre adresse mail. Une fois authentifié, vous devrez autoriser l’accès aux data Salesforce sur Power Bi.
Enfin, il ne reste qu’à sélectionner les données à importer dans le navigateur.
Tableaux de bord :
Rapports :
Les problèmes pouvant être rencontrés :
- Reports Salesforce : Ne charge que les 2000 premières lignes.
- Il existe une limite à l’importation de données, assurez-vous de ne récupérer que ce dont vous avez besoins.
- L’importation peut être bloquée par Salesforce. Le paramètre « Lock sessions to the IP address from which they originated » doit être désactiver dans Salesforce.
- L’accès à l’API Salesforce doit être autorisé. Dans Salesforce allez dans « profile settings » et cochez la case « API Enabled ».
- Les URL lightning ne sont pas supportés.
- Les comptes d’essais n’ont pas accès à l’API.
- Un jeton d’authentification valide est nécessaire pour l’actualisation. Salesforce imposant une limite de 5 jetons d’authentification par application, vérifiez qu’au maximum 5 jeux de données Salesforce sont importés.
Direct Query
Contrairement à l’importation, la Direct Query ne possède pas de connecteur à Salesforce. Ainsi, il est nécessaire d’utiliser d’autre méthodes, comme par exemple, celles ci-dessous.
ETL / Pipeline
La première manière de charger les données de Salesforce en temps réel est d’utiliser une base de données intermédiaire entre Salesforce et PowerBi. En effet, il est possible de charger des données en temps réel si ces dernières viennent de base de données PostgreSQL ou MSSQL par exemple.
Ainsi, il suffit de transférer les données de Salesforce vers une autre base de données compatible avec le Direct Query. Pour ce faire, vous pouvez utiliser un pipeline ou un ETL.
Cependant, afin d’avoir un accès en temps réel les données de Salesforce et votre base de données intermédiaire doivent être synchronisées. Voici un guide utilisant le Data Pipeline « Hevo » pour mettre en place une telle solution : https://hevodata.com/blog/salesforce-to-postgresql/
Cette méthode permet donc un accès en temps réel aux données mais présente des inconvénients :
- Difficile à mettre en place. Nécessite une connaissance approfondie des API et leurs implémentations.
- Les données sont constamment mises à jour, nécessitant un pré-calcul afin d’alléger les traitements.
Azure Active Directory
La seconde solution pour accéder aux données de Salesforce en temps réel est de passer par un Active Directory Azure. Cette méthode utilise l’API REST de Power BI afin de mettre à jour le Dataset en temps réel. Pour plus d’information sur la mise en place de cette solution, cliquez ici.
Les inconvénients de cette méthode sont les mêmes que pour la précédente. Ici, il faut une bonne connaissance des API et du développement en C#. De plus, les données étant charger en temps réel, elles doivent êtres les plus légères possible. Enfin, il est nécessaire de souscrire à l’Active Directory Azure.
Driver ODBC
La troisième méthode utilise les driver ODBC pour charger les données en temps réel. Ces driver ODBC permettent d’utiliser des sources de données non native à Power Bi.
Il existe plusieurs driver ODBC pour Salesforce sur le marché, voici un tutoriel expliquant comment charger en temps réel les données de Salesforce en utilisant le driver ODBC de Progress : ici.
L’inconvénient de cette méthode est la non-gratuité des driver ODBS sur le marché. En contrepartie, cette méthode est assez simple comparé aux deux précédentes.