Google Scripts est un outil puissant que vous pouvez utiliser pour automatiser les outils de productivité Google Comment créer un rapport de feuille de calcul Google automatisé à partir de données Google Analytics Comment créer un rapport de feuille de calcul Google automatisé à partir des données Google Analytics La possibilité d'envoyer automatiquement des emails en fait un outil très puissant.
Peut-être que vous êtes un employé qui espère envoyer un courriel mensuel à votre patron avec des formules calculées automatiquement dans Google Sheets Visualisez vos données et faites vos feuilles de calcul User Friendly avec un tableau de bord Excel Visualisez vos données et faites vos feuilles de calcul convivial avec un tableau de bord Excel Parfois, un simple format de feuille de calcul ne vous engage pas assez pour rendre vos données accessibles. Un tableau de bord vous permet de présenter vos données les plus importantes dans un format facile à digérer. Lire la suite . Ou peut-être que vous êtes un manager qui passe beaucoup trop de temps à envoyer des courriels à des membres de votre équipe avec des données de performance ou des mises à jour de statut. La fonction Google Scripts que vous apprendrez dans cet article vous aidera à accomplir ces tâches et bien plus encore.
Avec juste un petit effort une fois, vous n'aurez plus jamais à envoyer manuellement des données. Laissez Google Scripts agir en tant que votre assistant personnel, faisant tout le travail pour vous.
Configuration de votre feuille pour envoyer un e-mail
La première étape pour que Google Script envoie des e-mails via Google Sheets consiste à configurer correctement une feuille contenant tous les noms, adresses e-mail et messages de toutes les personnes que vous souhaitez envoyer par e-mail.
Dans mon exemple, je commence avec une feuille de calcul que j'ai configurée pour importer automatiquement tous les articles publiés pour le mois à partir de Google Analytics Créer un tableau de bord Google Analytics avec Google Core Reporting API Créer un tableau de bord Google Analytics avec Google API Core Reporting Souhaitez-vous simplement publier un site et l'exécuter à l'aveugle, ou souhaitez-vous un tableau de bord complet et fonctionnel qui vous indique ce qui se passe sur le site à tout moment? Lire la suite . J'ai créé une feuille "Tous les auteurs" qui compile les articles publiés pour chaque auteur, et maintenant je veux envoyer un e-mail à chaque auteur.
Pour commencer, créez votre feuille d'e-mail spéciale en ajoutant une nouvelle feuille dans votre feuille de calcul actuelle et appelez-la quelque chose comme "Envoyer des e-mails".
Dans cette nouvelle feuille Send-Emails, vous voudrez créer un en-tête. Chaque ligne de cette feuille de calcul représente un e-mail individuel qui sera envoyé. Donc, dans cet exemple, j'ai créé une feuille pour le nom du destinataire, son adresse e-mail et des parties du message que je vais assembler dans le script.
Vous pouvez créer un e-mail de n'importe quelle taille et structure en utilisant des colonnes pour assembler des informations statiques et dynamiques.
L'information statique est juste le texte que j'ai tapé dans la cellule. Cela ne changera pas de mois en mois. C'est juste une partie du message qui reste toujours le même. Toutefois, pour les données que vous souhaitez modifier tous les mois, vous pouvez insérer des fonctions qui importeront les données pertinentes de n'importe quelle autre feuille de votre feuille de calcul.
L'idée ici est que chaque fois que vous ouvrez la feuille pour examiner votre rapport automatisé, vous aurez un élément de menu que vous pouvez cliquer pour exécuter l'e-mail d'envoi de Google Script et distribuer les résultats à tout le monde. Vous verrez comment personnaliser ce nouvel élément de menu au bas de cet article.
Une fois que vous avez fini de créer votre feuille, cela ressemble à ceci:
Maintenant que votre feuille pour tous les emails individuels est prête, il est enfin temps d'écrire le script!
Rédaction du script de courrier électronique automatisé
Pour écrire votre script, vous devez utiliser l'éditeur de script. Vous trouverez l'éditeur de script dans le menu Outils en sélectionnant Éditeur de script .
L'éditeur de script ressemblera à quelque chose comme ci-dessous. Vous devrez créer une nouvelle fonction en haut de la fenêtre sur la droite.
Il suffit de copier et coller le script ci-dessous dans la zone de script.
function sendArticleCountEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails")); var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); for (i in data) { var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; var message = 'Dear ' + recipient + ', \n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; var subject = 'Your article count for this month'; MailApp.sendEmail(emailAddress, subject, message); } }
Ce script peut sembler quelque peu compliqué, mais ce n'est pas du tout le cas. Brisons-le pour que vous sachiez exactement ce que chaque ligne est en train de faire.
Briser le code
Pour que cette fonction fonctionne correctement, vous devez vous assurer que la feuille où toutes vos informations de courrier électronique sont stockées est réellement la feuille active. Sinon, tout ce qui vient après ne fonctionnera pas. Voilà ce que ces deux lignes sont pour:
var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails"));
Ensuite, nous devons extraire toutes les données de cette feuille. La méthode sheet.GetRange () extrait les informations de la plage de cellules que vous fournissez entre guillemets. Ensuite, la méthode dataRange.getValues () extrait les valeurs et les stocke dans un tableau bidimensionnel appelé data .
var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues();
Maintenant que nous avons toutes les données stockées dans un tableau, nous pouvons faire une boucle dans le tableau en utilisant une boucle for . Chaque élément du tableau est une ligne qui contient un tableau unidimensionnel d'éléments de colonne. Vous pouvez référencer chaque colonne en utilisant un nombre.
var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5];
Comme vous pouvez le voir ci-dessus, j'ai extrait les éléments de la colonne dans un tableau unidimensionnel appelé rowData . Ensuite, je référence la deuxième colonne (pour obtenir l'adresse e-mail) en référençant rowData [1], le deuxième élément du tableau (le premier élément d'un tableau est toujours zéro).
L'étape suivante de cette fonction consiste à rassembler tous les segments des messages qui composent le corps de l'e-mail. La bonne chose ici est que vous pouvez réellement donner au contenu de l'email un très bon format en utilisant le caractère \ n, qui est un retour chariot. Voici à quoi ressemble la concaténation du corps de l'e-mail:
var message = 'Dear ' + recipient + ', \n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;
Le caractère + est la commande de concaténation 16 Formules Excel qui vous aideront à résoudre des problèmes de la vie réelle 16 Formules Excel qui vous aideront à résoudre des problèmes de la vie réelle Le bon outil est la moitié du travail. Excel peut résoudre les calculs et traiter les données plus rapidement que vous ne pouvez trouver votre calculatrice. Nous vous montrons les principales formules Excel et démontrons comment les utiliser. Lire la suite . Vous mettez du texte statique réel à l'intérieur de guillemets simples. Donc, ce message est reconstitué en plaçant le mot "Cher" devant la variable destinataire (l'annonce "Cher" a un espace).
Ensuite, vous ajoutez deux retours chariot à la fin. Cela va commencer le message réel à l'intérieur du corps deux lignes vers le bas. Ensuite, vous ajoutez le premier segment de message, un espace, le deuxième segment de message, un espace, la variable qui sera insérée dans le message chaque mois, et enfin la dernière partie du message.
Vous pouvez avoir autant de morceaux du message que vous voulez, vous devez simplement utiliser plus de colonnes pour créer le message entier en morceaux.
Les deux dernières lignes du code définissent simplement la ligne d'objet de l'e-mail (cela peut également inclure les données de la feuille de calcul si vous le souhaitez), et enfin la méthode sendEmail () .
Comment déclencher votre script
De retour dans la fenêtre de l'éditeur de script, recherchez simplement la fonction "onOpen". Si la fonction est là, vous verrez probablement un tas de code à l'intérieur des parenthèses. Allez au bas de ce code et insérez les lignes suivantes:
var spreadsheet = SpreadsheetApp.getActive(); var menuItems = [ {name: 'Send Emails', functionName: 'sendArticleCountEmails'} ]; spreadsheet.addMenu('Send Emails', menuItems);
Assurez-vous de taper le nom exact de votre fonction entre guillemets simples pour le paramètre functionName . Cela va charger un élément de menu personnalisé dans votre feuille chaque fois que votre feuille s'ouvre.
Maintenant, chaque fois que vous ouvrez votre feuille de calcul sur une base mensuelle pour examiner toutes vos données, tout ce que vous avez à faire est de cliquer sur l'élément de menu pour envoyer les courriels. Cela va exécuter votre nouvelle fonction et envoyer tous ces e-mails pour vous. Un travail qui vous prenait plusieurs heures ne nécessitera plus qu'un seul clic de la souris!
Google Scripts peut vous aider à gagner du temps
Ceci est juste un exemple des nombreuses façons dont vous pouvez utiliser Google Scripts pour automatiser toutes sortes de choses 4 Scripts Google qui rendent Google Feuilles beaucoup plus puissant 4 Scripts Google qui rendent Google Feuilles beaucoup plus puissant Google Sheets est super hors de la boîte, mais il peut être encore plus puissant si vous utilisez Google Scripts pour améliorer ses capacités. Lire la suite qui vous fait gagner du temps. La partie difficile est seulement que cela prend un peu de travail à l'avance, mais chaque minute que vous passez à configurer une telle automatisation à l'aide de scripts est de nombreuses heures d'enregistrement. Pensez à toutes les autres choses merveilleuses que vous pourriez faire avec ces heures!
Avez-vous déjà utilisé Google Scripts pour automatiser votre productivité? Partagez vos propres exemples dans la section des commentaires ci-dessous!