Implementació d'un sistema de notificació per correu electrònic d'aprovació en dos passos a Google Sheets

Implementació d'un sistema de notificació per correu electrònic d'aprovació en dos passos a Google Sheets
Google Sheets

Automatització de les notificacions d'aprovació en fluxos de treball de fulls de càlcul

En els entorns empresarials de ritme ràpid actual, l'eficiència dels processos d'aprovació pot afectar significativament els fluxos de treball operatius. Moltes organitzacions confien en Fulls de càlcul de Google per gestionar tasques com les sol·licituds d'aprovació a causa de la seva flexibilitat i accessibilitat. Un repte comú sorgeix a l'hora d'implementar un sistema automatitzat per a aquests processos, sobretot quan implica un mecanisme d'aprovació en dos passos. Aquest sistema requereix l'enviament d'un correu electrònic automatitzat al departament d'informàtica un cop s'atorguen tant les aprovacions preliminars com les finals, amb la condició que l'estat de la sol·licitud passi a "aprovat".

Tanmateix, automatitzar aquest procés mitjançant Google Apps Script presenta un repte peculiar. L'activador "onEdit" integrat, crucial per iniciar l'enviament del correu electrònic, no s'activa per als canvis fets amb programació, només per als fets mitjançant la interacció directa de l'usuari. Aquesta limitació suposa un obstacle important en els casos en què l'actualització d'estat de "pendent" a "aprovat" es realitza mitjançant un script. Aquesta introducció estableix les bases per explorar solucions per integrar perfectament les notificacions de correu electrònic automatitzades dins d'un flux de treball d'aprovació basat en Fulls de càlcul de Google, garantint una comunicació oportuna i l'eficiència dels processos.

Comandament Descripció
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals") Accedeix al full de càlcul actiu i recupera un full anomenat "Aprovacions".
getDataRange() Obté totes les dades del full com un interval.
getValues() Retorna els valors de les cel·les de l'interval com a matriu bidimensional.
MailApp.sendEmail(email, subject, body) Envia un correu electrònic amb el destinatari, l'assumpte i el cos especificats.
sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent") Estableix el valor d'una cel·la específica a "enviat", indicant que s'ha enviat un correu electrònic.
google.script.run Crida una funció de Google Apps Script des d'una aplicació web.
withSuccessHandler(function()) Especifica una funció que s'ha d'executar si la crida a google.script.run té èxit.
withFailureHandler(function(err)) Especifica una funció que s'ha d'executar si la crida a google.script.run falla, passant l'error com a argument.
updateStatusInSheet(approvalId, status) Una funció personalitzada de Google Apps Script (no es mostra al fragment de codi) que actualitzaria l'estat d'una sol·licitud d'aprovació al full de càlcul.

Desxifrar el mecanisme de correu electrònic automatitzat

El sistema d'activació de correu electrònic automatitzat que vaig dissenyar per a Fulls de càlcul de Google té com a objectiu principal agilitzar el procés d'aprovació dins de les organitzacions, especialment en els casos que requereixen el consentiment de diversos aprovadors abans de continuar. La primera part de la solució, creada a Google Apps Script, interactua directament amb els fulls de càlcul de Google on es registren els estats d'aprovació. L'script comprova a tot el full "Aprovacions" les files on tant l'aprovador 1 com l'aprovador 2 hagin marcat la seva aprovació com a "aprovada". Això és crucial perquè el guió està pensat per actuar només quan es concedeixen ambdues aprovacions, reflectint una sol·licitud totalment autoritzada. Per aconseguir-ho, l'script itera cada fila, examinant les columnes específiques designades per a la decisió de cada aprovador i l'estat general de la sol·licitud. Quan una fila compleix els criteris (tots dos aprovadors han aprovat i l'estat es defineix com a "aprovat"), l'script activa un correu electrònic al departament de TI. Aquesta notificació per correu electrònic s'envia mitjançant el servei MailApp, una part de Google Apps Script que facilita l'enviament de correu electrònic directament des de l'script. Assegura que el departament informàtic s'informa ràpidament sobre la sol·licitud aprovada, permetent una actuació ràpida.

El mecanisme per actualitzar l'estat d'aprovació a través d'una aplicació web serveix com a contrapartida frontal del sistema de correu electrònic automatitzat. Aquest component és especialment significatiu perquè l'activador "onEdit" a Fulls de càlcul de Google només respon a les edicions manuals, no als canvis programàtics. Per evitar aquesta limitació, una interfície web senzilla permet als usuaris actualitzar l'estat d'una sol·licitud d'aprovació. En interaccionar, com ara fer clic a un botó per marcar una sol·licitud com a "aprovada", l'aplicació web crida a una funció de Google Apps Script mitjançant l'ordre `google.script.run`. Aquesta ordre és potent perquè permet que l'script realitzi accions al Full de Google basant-se en les entrades rebudes de la interfície web, imitant eficaçment les edicions manuals. Aleshores, l'script pot procedir a comprovar si hi ha canvis i enviar correus electrònics tal com s'ha dissenyat, superant la bretxa creada per les limitacions de l'activador "onEdit". Aquesta solució de dos components garanteix que el procés d'aprovació sigui eficient i adaptable, adaptant-se a la necessitat d'intervencions tant manuals com automàtiques en el flux de treball.

Racionalització de les notificacions per correu electrònic per a les etapes d'aprovació en aplicacions de fulls de càlcul

Google Apps Script per al processament de 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");
      }
    }
  }
}

Actualització automàtica de l'estat d'aprovació mitjançant l'aplicació web

HTML i JavaScript per a la interacció frontal

<!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>

Millorar l'eficiència del flux de treball mitjançant l'automatització de fulls de càlcul

El concepte d'automatitzar les notificacions per correu electrònic a Fulls de càlcul de Google com a part d'un procés d'aprovació de dos passos introdueix un mètode sofisticat per racionalitzar els fluxos de treball de l'organització. Tradicionalment, les intervencions manuals en les seqüències d'aprovació han estat un element bàsic, que requereixen accions humanes per impulsar els processos. No obstant això, aprofitant Google Apps Script, orientem cap a un model on aquestes intervencions es minimitzin, la qual cosa condueix a una millora de l'eficiència i a la reducció d'errors. Aquest canvi no només accelera el procés global d'aprovació, sinó que també garanteix que les notificacions s'enviïn en el moment correcte, concretament quan ambdues parts d'aprovació han sancionat una sol·licitud, marcada per la transició de l'estat a "aprovat".

Aquest enfocament subratlla la importància de les actualitzacions d'estat gestionades per programació dins del full de càlcul, un mètode que evita les limitacions de l'activador "onEdit". Mitjançant l'ús d'un script personalitzat que escolta els canvis d'estat i envia notificacions per correu electrònic en conseqüència, les organitzacions poden evitar el coll d'ampolla manual, automatitzant així un component crític del seu flux de treball operatiu. Aquest eix metodològic no només perfecciona el procés d'aprovació, sinó que també introdueix un nivell d'escalabilitat i adaptabilitat abans inassolible mitjançant processos manuals, obrint la porta a un sistema de gestió de flux de treball més dinàmic i sensible.

Preguntes freqüents sobre l'automatització de fulls de càlcul

  1. Pregunta: El procés d'automatització pot funcionar per a qualsevol document de Fulls de càlcul de Google?
  2. Resposta: Sí, l'automatització es pot aplicar a qualsevol document de Fulls de càlcul de Google, sempre que l'script estigui configurat correctament per a l'estructura d'aquest document específic.
  3. Pregunta: Es requereix coneixements de codificació per implementar aquests scripts?
  4. Resposta: Els coneixements bàsics de codificació en JavaScript són beneficis per personalitzar i implementar els scripts a Google Apps Script.
  5. Pregunta: El disparador de correu electrònic automatitzat pot gestionar diverses sol·licituds d'aprovació simultàniament?
  6. Resposta: Sí, l'script pot gestionar diverses sol·licituds iterant les files de dades i comprovant l'estat d'aprovació de cada sol·licitud.
  7. Pregunta: Què tan segur és el procés automatitzat?
  8. Resposta: El procés és tan segur com qualsevol operació de Google Sheets i Google Apps Script, utilitzant els protocols de seguretat estàndard de Google per protegir les dades.
  9. Pregunta: Pot l'script enviar notificacions a diverses adreces de correu electrònic?
  10. Resposta: Sí, l'script es pot modificar per enviar notificacions a diverses adreces de correu electrònic ajustant el paràmetre del destinatari a la funció MailApp.sendEmail.

Resum de coneixements i passos a seguir

L'exploració dels activadors de correu electrònic automatitzats dins de Fulls de càlcul de Google per a un procés d'aprovació en dos passos revela coneixements crítics sobre les limitacions i les possibles solucions per racionalitzar aquests fluxos de treball. La incapacitat de l'activador predeterminat d'onEdit per reconèixer els canvis programàtics requereix enfocaments d'scripts creatius per garantir que les notificacions s'enviïn només quan les aprovacions es confirmin completament. Aquest escenari subratlla la importància de les solucions personalitzades de Google Apps Script per superar les llacunes en les funcionalitats natives de Google Sheets, permetent el desenvolupament de processos d'aprovació més dinàmics i sensibles. Mitjançant l'aprofitament de Google Apps Script per crear activadors i funcions especialitzats, les organitzacions poden millorar la seva eficiència operativa i el seu flux de comunicació, assegurant-se que les parts interessades clau s'informaran ràpidament de la finalització de les etapes d'aprovació. La discussió posa de manifest la necessitat d'adaptabilitat davant les limitacions de la plataforma, fomentant un enfocament proactiu per resoldre problemes dins dels sistemes automatitzats.