Google Scripts est un outil puissant que vous pouvez utiliser pour automatiser les outils de productivité Google tels que Sheets et Docs. La possibilité d'envoyer automatiquement des e-mails en fait un extra outil puissant.
Vous êtes peut-être un employé qui espère envoyer un e-mail mensuel à son patron avec des formules calculées automatiquement dans Google Sheets. Ou peut-être êtes-vous un responsable qui passe beaucoup trop de temps à envoyer des e-mails aux membres de votre équipe avec des informations telles que des données sur les performances ou des mises à jour de statut. La fonction Google Scripts que vous découvrirez 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 comme votre propre assistant personnel, faisant tout le travail pour vous.
La première étape pour que votre script Google envoie des e-mails via Google Sheets consiste à configurer correctement une feuille contenant tous les noms, adresses e-mail et messages à toutes les personnes que vous souhaitez que le script envoie par e-mail.
Dans mon exemple, je pars d'une feuille de calcul que j'ai configurée pour importer automatiquement tous les articles publiés du mois depuis Google Analytics. J'ai créé une feuille "Tous les auteurs" qui répertorie les articles publiés pour chaque auteur, et maintenant je souhaite envoyer à chaque auteur un e-mail avec son décompte.
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 souhaiterez créer un en-tête. Chaque ligne de cette feuille de calcul représentera 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 éléments du message que je vais assembler à l'intérieur du script.
Vous pouvez créer un e-mail de n'importe quelle taille et structure en utilisant des colonnes pour rassembler les informations statiques et dynamiques.
Les informations statiques ne sont que du texte que j'ai tapé dans la cellule. Cela ne changera pas d'un mois à l'autre. C'est juste une partie du message électronique qui reste toujours la même. Cependant, pour les données que vous souhaitez modifier chaque 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 sur lequel vous pouvez cliquer pour exécuter l'envoi d'e-mail Google Script et distribuer les résultats à tout le monde. Vous découvrirez comment personnaliser ce nouvel élément de menu au bas de cet article.
Une fois que vous avez fini de créer votre feuille, elle ressemblera à ceci :
Maintenant que votre feuille pour tous les e-mails individuels est prête, il est enfin temps d'écrire le script !
Pour écrire votre script, vous devez utiliser l'éditeur de script. Vous trouverez l'éditeur de script sous les Outils menu 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 du volet de droite.
Copiez et collez simplement le script ci-dessous dans la zone de script.
fonction sendArticleCountEmails() {
var ss =SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Send-Emails"));
var feuille =SpreadsheetApp.getActiveSheet();
var dataRange =feuille.getRange("A2:F4");
var data =dataRange.getValues();
pour (i dans les données) {
var rowData =data[i] ;
var emailAddress =rowData[1] ;
var destinataire =rowData[0] ;
var message1 =rowData[2] ;
var message2 =rowData[3] ;
var paramètre2 =rowData[4] ;
var message3 =rowData[5] ;
var message ='Cher ' + destinataire + ',
' + message1 + ' ' + message2 + ' ' + paramètre2 + ' ' + message3 ;
var subject ='Votre article compte pour ce mois';
MailApp.sendEmail (adresse e-mail, objet, message) ;
}
}
Ce script peut sembler quelque peu compliqué, mais il ne l'est en réalité pas du tout. Décomposons-le pour que vous sachiez exactement ce que fait chaque ligne.
Pour que cette fonction fonctionne correctement, vous devez vous assurer que la feuille où toutes vos informations de courrier électronique sont stockées est en fait la feuille active. Sinon, tout ce qui vient après ne fonctionnera pas. C'est à cela que servent ces deux lignes :
var ss =SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Send-Emails"));
Ensuite, nous devons extraire toutes les données de cette feuille. Le sheet.GetRange() La méthode extraira les informations de la plage de cellules que vous fournissez entre guillemets. Ensuite, le dataRange.getValues() la méthode extrait en fait les valeurs et les stocke dans un tableau à deux dimensions appelé data .
var feuille =SpreadsheetApp.getActiveSheet();
var dataRange =feuille.getRange("A2:F4");
var data =dataRange.getValues();
Maintenant que nous avons toutes les données stockées dans un tableau, nous pouvons parcourir le tableau en utilisant un for boucle. 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 à l'aide d'un numéro.
var rowData =data[i] ;
var emailAddress =rowData[1] ;
var destinataire =rowData[0] ;
var message1 =rowData[2] ;
var message2 =rowData[3] ;
var paramètre2 =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'e-mail un assez bon format en utilisant le \n caractère, qui est un retour chariot. Voici à quoi ressemble la concaténation du corps de l'e-mail :
var message ='Cher ' + destinataire + ',
' + message1 + ' ' + message2 + ' ' + paramètre2 + ' ' + message3 ;
Le + caractère est la commande de concaténation. Vous mettez du texte statique réel à l'intérieur de guillemets simples. Donc, ce message est reconstitué en mettant le mot « Cher » devant la variable de destinataire (notez que « Cher » a un espace).
Ensuite, vous ajoutez deux retours chariot à la fin. Cela commencera le message réel à l'intérieur du corps deux lignes plus 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 parties du message que vous le souhaitez, il vous suffit d'utiliser plus de colonnes pour créer le message entier en plusieurs parties.
Les deux dernières lignes du code définissent simplement la ligne d'objet de l'e-mail (cela peut également inclure des données de la feuille de calcul si vous le souhaitez), et enfin le sendEmail() méthode.
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 crochets. Allez au bas de ce code et insérez les lignes suivantes :
var feuille de calcul =SpreadsheetApp.getActive();
var élémentsmenu =[
{name :'Envoyer des e-mails', functionName :'sendArticleCountEmails'}
] ;
spreadsheet.addMenu('Envoyer des e-mails', menuItems);
Assurez-vous simplement de taper le nom exact de votre fonction entre guillemets simples pour le functionName paramètre. Cela chargera un élément de menu personnalisé dans votre feuille à chaque ouverture de votre feuille.
Désormais, chaque fois que vous ouvrez votre feuille de calcul tous les mois pour examiner toutes vos données, il vous suffit de cliquer sur l'élément de menu pour envoyer les e-mails. Cela exécutera votre nouvelle fonction et enverra tous ces e-mails pour vous. Un travail qui vous prenait plusieurs heures ne vous demandera plus qu'un simple clic de souris !
Ce n'est qu'un exemple des nombreuses façons dont vous pouvez utiliser Google Scripts pour automatiser toutes sortes de choses qui vous font gagner du temps. Par exemple, vous pouvez utiliser Google Scripts pour générer automatiquement un rapport Google Analytics. La partie difficile est seulement que cela demande un peu de travail au départ, mais chaque minute que vous passez à configurer une automatisation comme celle-ci à l'aide de scripts vous fait gagner de nombreuses heures. Pensez à toutes les autres choses merveilleuses que vous pourriez faire pendant ces heures !
Avez-vous déjà utilisé des scripts Google intelligents pour automatiser votre productivité ? Partagez vos propres exemples dans la section des commentaires ci-dessous !