Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
No Result
View All Result
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
No Result
View All Result
Home Business Productivité

Le suivi des e-mails s’ouvre avec Gmail, Sheets et Apps Script

14 mai 2020
in Productivité
Reading Time: 20 mins read
Le suivi des e-mails s’ouvre avec Gmail, Sheets et Apps Script

Table des matières

Le suivi des e-mails s’ouvre avec Gmail, Sheets et Apps Script

Nous utiliserons Google Sheets pour envoyer des brouillons de courriels et garder une trace des ouvertures de courriels, alors commencez par créer une nouvelle feuille Google et configurez trois onglets: (1) Brouillons, (2) Résumé, (3) Journaux, pour ressembler à ceci :

Configurer trois onglets

Pour le Journaux , configurez les colonnes suivantes:

Colonnes de l’onglet Journaux

Pour le Sommaire onglet, nous utiliserons des formules pour récupérer et résumer les informations Journaux feuille, qui enregistrera chaque ping unique du pixel de suivi.

Dans la cellule A1, nous utiliserons la formule UNIQUE () pour obtenir la combinaison unique des lignes Subject et To:=UNIQUE(Logs!B1:C).

Ensuite, dans la cellule C2, nous utiliserons une fonction MAXIFS pour trouver la dernière date et heure auxquelles le pixel de suivi Sujet / À correspondant a été envoyé: =MAXIFS(Logs!$A$2:$A,Logs!$B$2:$B,A2,Logs!$C$2:$C,B2). Vous devrez peut-être formater la cellule au format Date / Heure lors de l’ouverture du premier e-mail.

Enfin, dans la cellule D2, nous utiliserons une fonction COUNTIF pour compter toutes les fois où le pixel de suivi Subject / To correspondant a été envoyé: =COUNTIFS(Logs!$B$2:$B,A2,Logs!$C$2:$C,B2) .

Ces deux fonctions devront être déplacées vers le bas lorsque de nouveaux e-mails seront enregistrés Journaux languette.

Colonnes de l’onglet Résumé

Pour le Brouillons , configurez les colonnes suivantes:

Colonnes de l’onglet Brouillons

Dans l’onglet Brouillons, nous allons également créer deux boutons qui nous aideront à récupérer nos brouillons Gmail et qui nous aideront à envoyer ces brouillons par e-mail. Pour ce faire, nous devons insérer un dessin:

Insérer un dessin

Créez une forme pour l’envoi:

Créer un bouton d’envoi

Répétez les mêmes étapes pour créer un autre dessin qui servira de bouton Actualiser:

Créer un bouton d’actualisation

Assurez-vous qu’il s’agit de deux dessins distincts et placez-les près de la dernière colonne du Brouillons languette:

Les boutons d’action

Pour donner à ces deux boutons la fonctionnalité de récupération de brouillons et d’envoi d’e-mails, nous utiliserons Script Google Apps, qui est une plate-forme de codage basée sur JavaScript qui est conçue pour alimenter la suite Google d’une manière similaire à Visual Basic pour Application met sous tension Microsoft Office.

Pour accéder à l’éditeur de scripts Google Apps, nous allons ouvrir l’éditeur de scripts dans le menu supérieur de Google Sheets:

Accédez à l’éditeur de script

Un nouvel onglet s’ouvrira avec un éditeur de code vide où nous écrirons toutes les fonctions dont nous avons besoin pour faire de la feuille de calcul notre centre de contrôle.

L’éditeur de script Google Apps

La première fonction que nous allons créer est celle qui récupérera vos brouillons de Gmail (n’hésitez pas à supprimer la valeur par défaut myFunction code):

function getDrafts(){

// Store a reference to the current spreadsheet that the script is tied to
var spreadSheet = SpreadsheetApp.getActive()
// Store a reference to the Drafts tab
var draftSheet = spreadSheet.getSheetByName("Drafts")
//Reset the Send? column by clearing it all, including the data validation (checkbox)
draftSheet.getDataRange().clear().clearDataValidations()
//Retrieve from Gmail the full list of drafts in the Drafts folder
var drafts = GmailApp.getDrafts()
//Set up the array that will output the information back to the sheet and include the headers as the first row
var draftsOutput = [["Subject","To","ID","Send ?"]]

//Loop throuhg all the drafts return from Gmail
for (var i = 0; i//Store the current draft for ease and clarity
var draft = drafts[i]
//Add the Subject, To line, unique ID, and a false value to uncheck the checkbox to the output array
draftsOutput.push([draft.getMessage().getSubject(),draft.getMessage().getTo(), draft.getId(),false])
}

//Using the array’s length and breadth, pass the array of drafts to the Drafts sheet
draftSheet.getRange(1, 1,draftsOutput.length,draftsOutput[0].length).setValues(draftsOutput)
//Create a new data validation in the form of checkboxes in the last coulumn of the sheet (the "Send ?" column)
draftSheet.getRange(2,draftsOutput[0].length,draftsOutput.length).setDataValidation(SpreadsheetApp.newDataValidation()
.setAllowInvalid(true)
.requireCheckbox()
.build());

}

Assurez-vous d’enregistrer votre script et de le nommer de manière appropriée, puis utilisez la liste déroulante pour sélectionner la fonction getDrafts (si ce n’est déjà fait) et le bouton de lecture pour exécuter la fonction.

Exécution de getDrafts

Vous devrez passer par un processus d’autorisation afin que le script puisse accéder à votre Gmail, car nous allons l’utiliser pour récupérer et envoyer des e-mails.

Une autorisation est requise pour laisser le script s’exécuter
Choisissez le compte Google approprié

Ici, vous pouvez rencontrer une fenêtre effrayante qui vous dira que « Cette application n’a pas encore été vérifiée par Google. Ne procédez que si vous connaissez et faites confiance au développeur. » Allez-y et choisissez le Avancée possibilité de continuer avec l’autorisation. La raison de cet avertissement est que Google ne sait pas ce que l’application essaie de faire et si vous n’êtes pas un développeur enregistré, il ne vous fera même pas confiance avec vos propres données.

ArticlesA lire

La bonne façon de mesurer la productivité – Le démarrage

La bonne façon de mesurer la productivité – Le démarrage

Effort en aval: faire plus en faisant moins – Mind Cafe

Effort en aval: faire plus en faisant moins – Mind Cafe

Faire rejeter beaucoup votre écriture est incroyablement bon pour vous

Faire rejeter beaucoup votre écriture est incroyablement bon pour vous

Vos matinées ne deviendront pas plus faciles (mais que se passerait-il si elles l’étaient?)

Vos matinées ne deviendront pas plus faciles (mais que se passerait-il si elles l’étaient?)

Cliquez sur Avancé pour révéler l’option permettant d’autoriser l’exécution du script
Cliquez sur Go To Email Tracker Tool (dangereux) pour terminer l’autorisation
Autoriser l’accès pour terminer le processus d’autorisation et exécuter le script

Une fois la fonction terminée, vous verrez ce qui suit dans l’onglet Brouillons (en fonction de ce qui se trouve dans votre Dossier Brouillons):

Brouillons importés de mon dossier Brouillons

Ensuite, nous lierons la fonction au bouton Actualiser en cliquant dessus, puis sur les trois points en haut à droite de celle-ci afin d’ouvrir un menu qui nous permettra de lui attribuer un script.

Attribuer un menu de script

Dans la fenêtre pop-up qui s’ouvre, nous allons mettre getDrafts comme script à exécuter chaque fois que nous cliquons sur Rafraîchir.

Attribuer getDrafts

Allez-y et cliquez sur Actualiser pour voir qu’il fonctionne.

Le script geDrafts est en cours d’exécution

Ensuite, nous allons revenir à la fenêtre de l’éditeur de script où nous avions le getDrafts et en dessous, nous allons créer une autre fonction qui générera une URL unique pour chaque e-mail qui déclenchera l’application web webhook que nous créerons dans Deuxième étape. La description de ce que fait chaque ligne est commentée (//) comme la première fonction que nous avons construite.

function getTrackingGIF(email, subject) {
// Create a url based on the Email Tracker Webhook web app's URL and attaching two URL paramaters
// that will pass the Subject and the To line of the email to the web app. Replace [WEBAPP URL] below with the URL of your web app
var imgURL = "[WEBAPP URL]"
// encode the Subject to assure that it will be passed properly as a part of a URL
+ "?esubject=" + encodeURIComponent(subject.replace(/'/g, ""))
// encode the To line to assure that it will be passed properly as a part of a URL
+ "&eto=" + encodeURIComponent(email);

//Return an HTML tag for a 1x1 pixel image with the image source as the web app's URL
return "";

}

Plus tard, nous remplacerons l’URL entre crochets [] (y compris les crochets eux-mêmes) avec l’URL de l’application Web que nous allons créer. Avec le getTrackingGIF , nous créons une balise HTML qui sera ajoutée à un e-mail que nous avons déjà rédigé dans Gmail.

Comme les commentaires sont simples, nous allons passer à la fonction d’envoi qui ira après getTrackingGIF. le envoyer un mail une fonction récupérera le brouillon spécifique que nous souhaitons envoyer, joindra la balise de suivi HTML et enverra le brouillon.

function sendMail(draftId) { 
// Retrieve a reference to the specific draft by the unique ID, draftId
var draft = GmailApp.getDraft(draftId)
// Store the Message object of the draft
var message = draft.getMessage()
// Store the actual contents of the drafts, or the body of the message
var body = message.getBody();

// Add the HTML code ofr the tracking image by calling the getTrackingGIF function
// and passing the draft's To line and Subject line
body += getTrackingGIF(message.getTo(), message.getSubject());

// Update the draft with the new body while making sure that all other info remains the same
draft.update(message.getTo(), message.getSubject(), body, {
htmlBody: body,
cc: message.getCc(),
bcc: message.getBcc(),
attachments: message.getAttachments()})

// Send the draft
draft.send()
// Refresh the updated Drafts folder to show the draft was sent
getDrafts()
}

La fonction effectue les opérations suivantes:

  1. Récupère le brouillon à l’aide de l’ID unique que nous lui transmettrons (plus de détails dans la fonction suivante);
  2. Envoie la ligne À et la ligne Objet au getTrackingGIF fonction pour obtenir la balise HTML personnalisée;
  3. Ajoute la balise HTML au corps de l’e-mail;
  4. Met à jour le projet avec le nouvel organisme tout en s’assurant que tous les autres aspects du projet restent les mêmes; et
  5. Enfin, il envoie le projet et actualise la liste des projets sur le Brouillons feuille en appelant le getDrafts une fonction.

La dernière fonction que nous devons créer est celle qui sera exécutée une fois que nous aurons cliqué sur Envoyer afin que nous puissions envoyer plusieurs brouillons en même temps.

function sendButton() {
// Store a reference to the current spreadsheet that the script is tied to
var spreadSheet = SpreadsheetApp.getActive()
// Store a reference to the Drafts tab
var draftSheet = spreadSheet.getSheetByName("Drafts")
// Store all the information in the Range of cells that has data within the Drafts tab
var draftRange = draftSheet.getDataRange().getValues()

// Loop through all the rows in the Drafts tab
for (var i=0; i// check if any row has a check mark (is true) in the Send? column,
// and pass the unique id of the draft to the sendMail function to send it if true
if (draftRange[i][3]==true) sendMail(draftRange[i][2])
}

//Reset the Send? column by clearing its content
draftSheet.getRange(2,4,draftRange.length-1).clearContent()

}

le bouton d’envoi une fonction:

  1. Récupère le tableau des ébauches du Brouillons feuille;
  2. Parcourt chaque ligne pour vérifier si nous avons coché la case pour l’envoi de ce brouillon;
  3. S’il est coché, l’ID du brouillon est envoyé au envoyer un mail une fonction; et enfin,
  4. Efface la colonne de la case à cocher

Enfin, nous attribuons le bouton Envoyer le bouton d’envoi fonction – de la même manière que nous avons attribué getDrafts au bouton Actualiser – il sera donc déclenché lorsque le bouton Envoyer sera cliqué.

Avant de continuer, n’oubliez pas d’enregistrer (Ctrl / Cmd + S) le fichier.

ShareTweetPin

Related Posts

La bonne façon de mesurer la productivité – Le démarrage
Productivité

La bonne façon de mesurer la productivité – Le démarrage

La bonne façon de mesurer la productivité - Le démarrage

Effort en aval: faire plus en faisant moins – Mind Cafe
Productivité

Effort en aval: faire plus en faisant moins – Mind Cafe

Effort en aval: faire plus en faisant moins - Mind Cafe Et s'il était possible de faire plus, simplement en...

Faire rejeter beaucoup votre écriture est incroyablement bon pour vous
Productivité

Faire rejeter beaucoup votre écriture est incroyablement bon pour vous

Faire rejeter beaucoup votre écriture est incroyablement bon pour vous Je parle à de nombreux écrivains chaque semaine et presque...

Vos matinées ne deviendront pas plus faciles (mais que se passerait-il si elles l’étaient?)
Productivité

Vos matinées ne deviendront pas plus faciles (mais que se passerait-il si elles l’étaient?)

Vos matinées ne deviendront pas plus faciles (mais que se passerait-il si elles l'étaient?) TLe soleil est enfin levé et...

Next Post
Business : Le fossé économique de Peloton est-il défendable? – Amit Rawal

Business : Le fossé économique de Peloton est-il défendable? - Amit Rawal

Segmentation de la clientèle pour le piratage de croissance – Piyanka Jain

Segmentation de la clientèle pour le piratage de croissance - Piyanka Jain

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Accueil
  • Questions & Réponses
  • Science
  • Astuces
  • Business
  • Cryptomonnaie
  • Design
  • Marketing
  • Programmation
  • Politique de confidentialité
  • A propos
  • Contact

© 2018-2020 SupportIVY - Premium Magazine.

No Result
View All Result
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt