Implementando um sistema de notificação por e-mail de aprovação em duas etapas no Planilhas Google

Implementando um sistema de notificação por e-mail de aprovação em duas etapas no Planilhas Google
Google Sheets

Automatizando notificações de aprovação em fluxos de trabalho de planilhas

Nos atuais ambientes de negócios acelerados, a eficiência dos processos de aprovação pode impactar significativamente os fluxos de trabalho operacionais. Muitas organizações contam com o Planilhas Google para gerenciar tarefas como solicitações de aprovação devido à sua flexibilidade e acessibilidade. Um desafio comum surge ao implementar um sistema automatizado para estes processos, especialmente quando envolve um mecanismo de aprovação em duas etapas. Este sistema exige o envio de um e-mail automático ao departamento de TI assim que as aprovações preliminares e finais forem concedidas, sob a condição de que o status da solicitação mude para "aprovado".

No entanto, automatizar esse processo por meio do Google Apps Script apresenta um desafio peculiar. O gatilho "onEdit" integrado, crucial para iniciar o envio de e-mail, não é ativado para alterações feitas programaticamente - apenas para aquelas feitas por meio da interação direta do usuário. Esta limitação representa um obstáculo significativo nos casos em que a atualização do status de “pendente” para “aprovado” é realizada por um script. Esta introdução estabelece as bases para explorar soluções para integrar perfeitamente notificações automatizadas por e-mail em um fluxo de trabalho de aprovação baseado no Planilhas Google, garantindo comunicação oportuna e eficiência do processo.

Comando Descrição
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals") Acessa a planilha ativa e recupera uma planilha denominada "Aprovações".
getDataRange() Obtém todos os dados da planilha como um intervalo.
getValues() Retorna os valores das células do intervalo como uma matriz bidimensional.
MailApp.sendEmail(email, subject, body) Envia um email com o destinatário, assunto e corpo especificados.
sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent") Define o valor de uma célula específica como "enviado", indicando que um email foi enviado.
google.script.run Chama uma função do Google Apps Script de um aplicativo da Web.
withSuccessHandler(function()) Especifica uma função a ser executada se a chamada google.script.run for bem-sucedida.
withFailureHandler(function(err)) Especifica uma função a ser executada se a chamada google.script.run falhar, passando o erro como argumento.
updateStatusInSheet(approvalId, status) Uma função personalizada do Google Apps Script (não mostrada no snippet de código) que atualizaria o status de uma solicitação de aprovação na planilha.

Decifrando o mecanismo automatizado de e-mail

O sistema automatizado de acionamento de e-mail que desenvolvi para o Planilhas Google tem como objetivo principal agilizar o processo de aprovação dentro das organizações, especialmente para casos que exigem consentimento de vários aprovadores antes de prosseguir. A primeira parte da solução, elaborada em Google Apps Script, interage diretamente com o Planilhas Google onde são registrados os status de aprovação. O script verifica toda a planilha "Aprovações" em busca de linhas onde tanto o aprovador 1 quanto o aprovador 2 marcaram sua aprovação como "aprovada". Isto é crucial porque o script pretende agir somente quando ambas as aprovações forem concedidas, refletindo uma solicitação totalmente autorizada. Para conseguir isso, o script percorre cada linha, examinando as colunas específicas designadas para a decisão de cada aprovador e o status geral da solicitação. Quando uma linha atende aos critérios (ambos os aprovadores foram aprovados e o status é definido como "aprovado"), o script aciona um email para o departamento de TI. Essa notificação por e-mail é enviada usando o serviço MailApp, uma parte do Google Apps Script que facilita o envio de e-mails diretamente do script. Garante que o departamento de TI seja prontamente informado sobre a solicitação aprovada, permitindo uma atuação ágil.

O mecanismo para atualizar o status de aprovação por meio de um aplicativo da web serve como contraparte frontend do sistema de e-mail automatizado. Este componente é especialmente significativo porque o gatilho “onEdit” no Planilhas Google responde apenas a edições manuais, não a alterações programáticas. Para contornar essa limitação, uma interface web simples permite aos usuários atualizar o status de uma solicitação de aprovação. Após a interação, como clicar em um botão para marcar uma solicitação como "aprovada", o aplicativo da web chama uma função do Google Apps Script por meio do comando `google.script.run`. Este comando é poderoso porque permite que o script execute ações na Planilha Google com base nas entradas recebidas da interface da web, imitando efetivamente as edições manuais. O script pode então verificar se há alterações e enviar e-mails conforme planejado, preenchendo a lacuna criada pelas limitações do gatilho "onEdit". Esta solução de componente duplo garante que o processo de aprovação seja eficiente e adaptável, acomodando a necessidade de intervenções manuais e automatizadas no fluxo de trabalho.

Simplificando notificações por e-mail para etapas de aprovação em aplicativos de planilha

Script do Google Apps para processamento de back-end

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");
      }
    }
  }
}

Atualizando automaticamente o status de aprovação por meio do aplicativo Web

HTML e JavaScript para interação 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>

Aprimorando a eficiência do fluxo de trabalho por meio da automação de planilhas

O conceito de automatizar notificações por e-mail no Planilhas Google como parte de um processo de aprovação em duas etapas apresenta um método sofisticado para agilizar os fluxos de trabalho organizacionais. Tradicionalmente, as intervenções manuais nas sequências de aprovação têm sido essenciais, exigindo ações humanas para impulsionar os processos. No entanto, ao aproveitar o Google Apps Script, orientamos-nos para um modelo onde tais intervenções são minimizadas, levando a uma maior eficiência e redução de erros. Essa mudança não apenas acelera o processo geral de aprovação, mas também garante que as notificações sejam enviadas no momento correto, especificamente quando ambas as partes da aprovação sancionaram uma solicitação, marcada pela transição do status para “aprovado”.

Essa abordagem ressalta a importância das atualizações de status gerenciadas programaticamente na planilha, um método que contorna as limitações do gatilho "onEdit". Ao empregar um script personalizado que detecta alterações de status e envia notificações por email de acordo, as organizações podem contornar o gargalo manual, automatizando assim um componente crítico de seu fluxo de trabalho operacional. Este pivô metodológico não apenas refina o processo de aprovação, mas também introduz um nível de escalabilidade e adaptabilidade anteriormente inatingível através de processos manuais, abrindo a porta para um sistema de gestão de fluxo de trabalho mais dinâmico e ágil.

Perguntas frequentes sobre automação de planilhas

  1. Pergunta: O processo de automação pode funcionar para qualquer documento do Planilhas Google?
  2. Responder: Sim, a automação pode ser aplicada a qualquer documento do Planilhas Google, desde que o script esteja configurado corretamente para a estrutura específica desse documento.
  3. Pergunta: É necessário conhecimento de codificação para implementar esses scripts?
  4. Responder: O conhecimento básico de codificação em JavaScript é benéfico para personalizar e implementar scripts no Google Apps Script.
  5. Pergunta: O gatilho automático de e-mail pode lidar com diversas solicitações de aprovação simultaneamente?
  6. Responder: Sim, o script pode lidar com várias solicitações iterando linhas de dados e verificando o status de aprovação de cada solicitação.
  7. Pergunta: Quão seguro é o processo automatizado?
  8. Responder: O processo é tão seguro quanto qualquer operação do Planilhas Google e do Google Apps Script, utilizando os protocolos de segurança padrão do Google para proteger os dados.
  9. Pergunta: O script pode enviar notificações para vários endereços de e-mail?
  10. Responder: Sim, o script pode ser modificado para enviar notificações para vários endereços de e-mail ajustando o parâmetro destinatário na função MailApp.sendEmail.

Resumindo insights e etapas futuras

A exploração de gatilhos automatizados de e-mail no Planilhas Google para um processo de aprovação em duas etapas revela insights críticos sobre as limitações e soluções potenciais para agilizar esses fluxos de trabalho. A incapacidade do gatilho onEdit padrão de reconhecer alterações programáticas exige abordagens de script criativas para garantir que as notificações sejam enviadas somente quando as aprovações forem totalmente confirmadas. Este cenário ressalta a importância de soluções customizadas do Google Apps Script para preencher lacunas nas funcionalidades nativas do Planilhas Google, permitindo o desenvolvimento de processos de aprovação mais dinâmicos e responsivos. Ao aproveitar o Google Apps Script para criar gatilhos e funções especializadas, as organizações podem melhorar a eficiência operacional e o fluxo de comunicação, garantindo que as principais partes interessadas sejam prontamente informadas após a conclusão das etapas de aprovação. A discussão destaca a necessidade de adaptabilidade face às limitações da plataforma, incentivando uma abordagem proativa à resolução de problemas em sistemas automatizados.