Importer les données d'une boîte mail Gmail dans Power BI

29 août 2023

Aujourd'hui, les données sont le carburant des entreprises. Pour prendre des décisions éclairées, les entreprises ont besoin d'analyser un volume considérable d'informations. L'une de ces informations précieuses peut provenir d'un endroit apparemment inattendu : votre boîte de réception Gmail. Dans cet article, nous allons voir comment utiliser Google Apps Script pour extraire des données de Gmail et comment les importer ensuite dans Power BI.

1. Extraction des Données avec Google Apps Script

Avant de pouvoir analyser les données dans Power BI, nous devons d'abord les extraire. C'est là qu'intervient Google Apps Script. En effet, nous allons utiliser cette fonctionnalité pour exporter nos données sous la forme d'un tableau dans feuille de calcul Google Sheets.

Tout d'abord nous allons créer un nouveau document Google Sheet dans Google Drive. En lançant le document nous le renommons et nous nous dirigeons dans la section Extensions puis nous cliquons sur Apps Script pour ouvrir l'éditeur de script.

Maintenant que nous nous trouvons dans l'éditeur nous pouvons renommer notre script et nous allons copier ce programme :

Attention les extraits entre les ⚠ sont à remplacer par des valeurs qui sont propre à votre document Google Sheets.

 

// Fonction pour extraire les emails de la boîte de réception Gmail.
function getGmailEmails() {
// Obtient tous les threads (conversations) de la boîte de réception Gmail.
var threads = GmailApp.getInboxThreads();

// Boucle à travers chaque thread.
for (var i = 0; i < threads.length; i++) {
// Récupère tous les messages de chaque thread.
var messages = threads[i].getMessages();
// Obtient le nombre de messages dans ce thread.
var msgCount = threads[i].getMessageCount();

// Boucle à travers chaque message du thread.
for (var j = 0; j < messages.length; j++) {
message = messages[j];

// Vérifie si le message est dans la boîte de réception.
if (message.isInInbox()) {
// Si c'est le cas, extraire les détails de ce message.
extractDetails(message, msgCount);
}
}
}
}

// Fonction pour extraire les détails du message et les ajouter à une feuille de calcul Google Sheets.
function extractDetails(message, msgCount) {
// ID de la feuille de calcul cible.
var spreadSheetId = '⚠   l'ID du document Google Sheet se trouvant dans l'URL entre le d/ et /edit   ⚠';
// Nom de la feuille dans le classeur.
var sheetname = "⚠   le nom de la feuille sur laquelle seront inscrites les informations  ⚠";
// Ouvre la feuille de calcul en utilisant son ID.
var ss = SpreadsheetApp.openById(spreadSheetId);
// Obtient le fuseau horaire de la feuille de calcul active.
var timezone = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
// Récupère la feuille par son nom.
var sheet = ss.getSheetByName(sheetname);

// Formatte la date du message selon le format "dd-MM-yyyy".
var dateTime = Utilities.formatDate(message.getDate(), timezone, "dd-MM-yyyy");
// Récupère les diverses informations du message.
var subjectText = message.getSubject();
var fromSend = message.getFrom();
var toSend = message.getTo();
var bodyContent = message.getPlainBody();

// Ajoute une nouvelle ligne à la feuille de calcul avec les informations extraites.
sheet.appendRow([dateTime, msgCount, fromSend, toSend, subjectText, bodyContent]);
}

// Fonction qui s'exécute automatiquement à l'ouverture de la feuille de calcul.
function onOpen(e) {
// Ajoute un nouveau bouton à l'interface de la feuille de calcul.
SpreadsheetApp.getUi()
.createMenu('Click to Fetch ')
.addItem('Get Email', 'getGmailEmails') // Ajoute une option pour extraire les emails.
.addToUi();
}

 

Le programme parcourt automatiquement toutes les conversations de la boîte de réception Gmail et récupère chaque message individuel. Pour chaque message dans la boîte de réception, il extrait des détails spécifiques tels que la date, le sujet, l'expéditeur, le destinataire et le contenu du message. Ces informations sont ensuite ajoutées à une feuille spécifique d'un classeur Google Sheets. Par ailleurs, lorsque vous ouvrez la feuille de calcul, une option s'affiche dans l'interface utilisateur, vous permettant d'initier ce processus d'extraction des emails pour les ajouter à la feuille.

Maintenant que notre code est implémenté, nous devons l'enregistrer, en cliquant sur l'icône de la cassette, et l'exécuter pour l'appliquer à notre feuille de calcul, en cliquant sur le bouton play.

Une fenêtre d'avertissement devrait s'ouvrir pour vous prévenir qu'il n'est pas sure de donner accès aux informations d'une boite mail Gmail à un script. Pour contourner cette sécurité et donner accès à vos informations au script, nous pouvons trouver en bas de la page un bouton pour continuer la démarche. Après avoir cliqué sur celui-ci, il faudra s'identifier au compte Google auquel est rattaché la boite de réception Gmail que nous souhaitons exporter.

Enfin pour finaliser l'exportation, il faut retourner dans la feuille de calcul et appuyer sur le bouton Click to Fecth qui a été créé par l'exécution de notre programme pour faire apparaitre toutes les données dans le tableau.

2. De Google Sheets à Power BI

Une fois que les données sont dans Google Sheets, l'étape suivante consiste à les importer dans Power BI.

Dans Power BI Desktop il faut aller dans Obtenir les données puis choisir le connecteur Google Sheets.

Pour importer la feuille de calcul vous devrez maintenant copier l'URL de votre document Google Sheets.

Pour finir, il faudra se connecter au compte Google auquel appartient le document Google Sheets pour finaliser l'importation.

Une fois les données importées, vous pouvez commencer à utiliser toutes les fonctionnalités de Power BI pour analyser vos emails : réaliser des graphiques, des tableaux de bord, des analyses de tendances, etc.

3. Points à Considérer

  • Sécurité : Assurez-vous de ne jamais partager votre feuille contenant des données sensibles. Même si vous utilisez le lien pour l'importation, n'oubliez pas que quiconque possède ce lien peut accéder aux données. De même pour votre jeu de données.
  • Volume de données : Si vous avez des milliers d'emails, le script peut prendre du temps pour extraire toutes les informations. De plus, Power BI aura peut être des difficultés à traiter toutes les informations. Assurez-vous de surveiller la taille de vos données.
  • Automatisation : Si vous souhaitez que ce processus soit automatisé, envisagez d'utiliser des déclencheurs dans Google Apps Script pour exécuter le script à des intervalles réguliers.

Pour conclure, l'utilisation de Google Apps Script pour extraire des données de Gmail est une solution puissante pour tirer parti des informations cachées dans vos emails. Une fois ces données dans Power BI, les possibilités d'analyse et de visualisation sont presque infinies. En combinant ces deux outils, vous pouvez obtenir des insights précieux pour votre entreprise ou vos projets personnels.

Merci d'avoir lu cet article, vous pouvez retrouver nos vidéos explicatives sur Power BI sur notre chaîne YouTube ou en cliquant ici, nous abordons aussi ces pratiques durant nos formations Power BI.

Articles en relation

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram