Implémentation d'un système de notification par courrier électronique d'approbation en deux étapes dans Google Sheets

Implémentation d'un système de notification par courrier électronique d'approbation en deux étapes dans Google Sheets
Google Sheets

Automatisation des notifications d'approbation dans les flux de travail de feuilles de calcul

Dans les environnements commerciaux en évolution rapide d'aujourd'hui, l'efficacité des processus d'approbation peut avoir un impact significatif sur les flux de travail opérationnels. De nombreuses organisations s'appuient sur Google Sheets pour gérer des tâches telles que les demandes d'approbation en raison de sa flexibilité et de son accessibilité. Un défi courant se pose lors de la mise en œuvre d’un système automatisé pour ces processus, en particulier lorsqu’il implique un mécanisme d’approbation en deux étapes. Ce système nécessite l'envoi d'un e-mail automatisé au service informatique une fois les approbations préliminaires et finales accordées, à condition que le statut de la demande passe à « approuvée ».

Cependant, l'automatisation de ce processus via Google Apps Script présente un défi particulier. Le déclencheur "onEdit" intégré, crucial pour lancer l'envoi d'e-mails, ne s'active pas pour les modifications apportées par programme, mais uniquement pour celles effectuées via une interaction directe de l'utilisateur. Cette limitation pose un obstacle important dans les cas où la mise à jour du statut de « en attente » à « approuvé » est effectuée par un script. Cette introduction jette les bases de l'exploration de solutions permettant d'intégrer de manière transparente les notifications automatisées par e-mail dans un flux de travail d'approbation basé sur Google Sheets, garantissant ainsi une communication rapide et l'efficacité des processus.

Commande Description
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals") Accède à la feuille de calcul active et récupère une feuille nommée « Approbations ».
getDataRange() Obtient toutes les données de la feuille sous forme de plage.
getValues() Renvoie les valeurs des cellules de la plage sous forme de tableau à deux dimensions.
MailApp.sendEmail(email, subject, body) Envoie un e-mail avec le destinataire, l'objet et le corps spécifiés.
sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent") Définit la valeur d'une cellule spécifique sur « envoyé », indiquant qu'un e-mail a été envoyé.
google.script.run Appelle une fonction Google Apps Script à partir d'une application Web.
withSuccessHandler(function()) Spécifie une fonction à exécuter si l'appel google.script.run réussit.
withFailureHandler(function(err)) Spécifie une fonction à exécuter si l'appel google.script.run échoue, en transmettant l'erreur comme argument.
updateStatusInSheet(approvalId, status) Une fonction Google Apps Script personnalisée (non affichée dans l'extrait de code) qui mettrait à jour l'état d'une demande d'approbation dans la feuille de calcul.

Décrypter le mécanisme de courrier électronique automatisé

Le système de déclenchement automatisé des e-mails que j'ai conçu pour Google Sheets vise principalement à rationaliser le processus d'approbation au sein des organisations, en particulier pour les cas nécessitant le consentement de plusieurs approbateurs avant de continuer. La première partie de la solution, conçue dans Google Apps Script, interagit directement avec Google Sheets où les statuts d'approbation sont enregistrés. Le script vérifie dans l'intégralité de la feuille « Approbations » les lignes dans lesquelles l'approbateur 1 et l'approbateur 2 ont marqué leur approbation comme « approuvée ». Ceci est crucial car le script est destiné à agir uniquement lorsque les deux approbations sont accordées, reflétant une demande pleinement autorisée. Pour y parvenir, le script parcourt chaque ligne, en examinant les colonnes spécifiques désignées pour la décision de chaque approbateur et le statut global de la demande. Lorsqu'une ligne répond aux critères (les deux approbateurs ont approuvé et le statut est défini sur « approuvé »), le script déclenche l'envoi d'un e-mail au service informatique. Cette notification par e-mail est envoyée à l'aide du service MailApp, une partie de Google Apps Script qui facilite l'envoi d'e-mails directement à partir du script. Il garantit que le service informatique est rapidement informé de la demande approuvée, permettant ainsi une action rapide.

Le mécanisme de mise à jour du statut d'approbation via une application Web sert de contrepartie frontale au système de messagerie automatisé. Ce composant est particulièrement important car le déclencheur « onEdit » dans Google Sheets ne répond qu'aux modifications manuelles, et non aux modifications programmées. Pour contourner cette limitation, une simple interface Web permet aux utilisateurs de mettre à jour le statut d'une demande d'approbation. Lors d'une interaction, par exemple en cliquant sur un bouton pour marquer une demande comme « approuvée », l'application Web appelle une fonction Google Apps Script via la commande « google.script.run ». Cette commande est puissante car elle permet au script d'effectuer des actions dans Google Sheet en fonction des entrées reçues de l'interface Web, imitant efficacement les modifications manuelles. Le script peut ensuite vérifier les modifications et envoyer des e-mails comme prévu, comblant ainsi le vide créé par les limitations du déclencheur « onEdit ». Cette solution à deux composants garantit que le processus d'approbation est à la fois efficace et adaptable, répondant au besoin d'interventions manuelles et automatisées dans le flux de travail.

Rationalisation des notifications par e-mail pour les étapes d'approbation dans les applications de feuilles de calcul

Script Google Apps pour le traitement backend

function checkApprovalsAndSendEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals");
  var range = sheet.getDataRange();
  var values = range.getValues();
  var emailSentColumn = 5; // Assuming the fifth column tracks email sending status
  var approver1Column = 2; // Column for approver 1's status
  var approver2Column = 3; // Column for approver 2's status
  var statusColumn = 4; // Column for the overall status
  for (var i = 1; i < values.length; i++) {
    var row = values[i];
    if (row[statusColumn] == "approved" && row[emailSentColumn] != "sent") {
      if (row[approver1Column] == "approved" && row[approver2Column] == "approved") {
        var email = "it@domain.com";
        var subject = "Approval Request Completed";
        var body = "The approval request for " + row[0] + " has been fully approved.";
        MailApp.sendEmail(email, subject, body);
        sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent");
      }
    }
  }
}

Mise à jour automatique du statut d'approbation via l'application Web

HTML et JavaScript pour l'interaction front-end

<!DOCTYPE html>
<html>
<head>
<title>Approval Status Updater</title>
</head>
<body>
<script>
function updateApprovalStatus(approvalId, status) {
  google.script.run
    .withSuccessHandler(function() {
      alert('Status updated successfully.');
    })
    .withFailureHandler(function(err) {
      alert('Failed to update status: ' + err.message);
    })
    .updateStatusInSheet(approvalId, status);
}
</script>
<input type="button" value="Update Status" onclick="updateApprovalStatus('123', 'approved');" />
</body>
</html>

Améliorer l'efficacité du flux de travail grâce à l'automatisation des feuilles de calcul

Le concept d'automatisation des notifications par e-mail dans Google Sheets dans le cadre d'un processus d'approbation en deux étapes introduit une méthode sophistiquée pour rationaliser les flux de travail organisationnels. Traditionnellement, les interventions manuelles dans les séquences d’approbation constituent un élément essentiel, nécessitant des actions humaines pour faire avancer les processus. Cependant, en tirant parti de Google Apps Script, nous nous tournons vers un modèle dans lequel ces interventions sont minimisées, ce qui conduit à une efficacité accrue et à une réduction des erreurs. Ce changement accélère non seulement le processus d'approbation global, mais garantit également que les notifications sont envoyées au bon moment, en particulier lorsque les deux parties approuvantes ont sanctionné une demande, marquée par la transition du statut vers « approuvée ».

Cette approche souligne l'importance des mises à jour de statut gérées par programme au sein de la feuille de calcul, une méthode qui contourne les limitations du déclencheur « onEdit ». En employant un script personnalisé qui écoute les changements de statut et envoie des notifications par courrier électronique en conséquence, les organisations peuvent contourner le goulot d'étranglement manuel, automatisant ainsi un composant essentiel de leur flux de travail opérationnel. Ce pivot méthodologique affine non seulement le processus d'approbation, mais introduit également un niveau d'évolutivité et d'adaptabilité auparavant inaccessible grâce aux processus manuels, ouvrant la porte à un système de gestion des flux de travail plus dynamique et plus réactif.

Foire aux questions sur l'automatisation des feuilles de calcul

  1. Question: Le processus d’automatisation peut-il fonctionner pour n’importe quel document Google Sheets ?
  2. Répondre: Oui, l'automatisation peut être appliquée à n'importe quel document Google Sheets, à condition que le script soit correctement configuré pour la structure spécifique de ce document.
  3. Question: Des connaissances en codage sont-elles nécessaires pour mettre en œuvre ces scripts ?
  4. Répondre: Des connaissances de base en codage JavaScript sont utiles pour personnaliser et mettre en œuvre les scripts dans Google Apps Script.
  5. Question: Le déclencheur automatisé d’e-mails peut-il gérer plusieurs demandes d’approbation simultanément ?
  6. Répondre: Oui, le script peut gérer plusieurs demandes en parcourant les lignes de données et en vérifiant l'état d'approbation de chaque demande.
  7. Question: Dans quelle mesure le processus automatisé est-il sécurisé ?
  8. Répondre: Le processus est aussi sécurisé que n'importe quelle opération Google Sheets et Google Apps Script, utilisant les protocoles de sécurité standard de Google pour protéger les données.
  9. Question: Le script peut-il envoyer des notifications à plusieurs adresses e-mail ?
  10. Répondre: Oui, le script peut être modifié pour envoyer des notifications à plusieurs adresses e-mail en ajustant le paramètre du destinataire dans la fonction MailApp.sendEmail.

Résumer les idées et les étapes à suivre

L'exploration des déclencheurs d'e-mails automatisés dans Google Sheets pour un processus d'approbation en deux étapes révèle des informations essentielles sur les limites et les solutions potentielles pour rationaliser ces flux de travail. L'incapacité du déclencheur onEdit par défaut à reconnaître les modifications programmatiques nécessite des approches de script créatives pour garantir que les notifications ne sont envoyées que lorsque les approbations sont entièrement confirmées. Ce scénario souligne l'importance des solutions Google Apps Script personnalisées pour combler les lacunes des fonctionnalités natives de Google Sheets, permettant ainsi le développement de processus d'approbation plus dynamiques et plus réactifs. En tirant parti de Google Apps Script pour créer des déclencheurs et des fonctions spécialisées, les organisations peuvent améliorer leur efficacité opérationnelle et leur flux de communication, garantissant ainsi que les principales parties prenantes sont rapidement informées de l'achèvement des étapes d'approbation. La discussion met en évidence la nécessité d'une adaptabilité face aux limitations de la plate-forme, encourageant une approche proactive de la résolution de problèmes au sein des systèmes automatisés.