Google Sheets: automatizando envio de e-mails

Foto do autor
Sávio Ribeiro 📅 02/10/2024 19:20
⏱️7 minutos de leitura

Tópicos da publicação

O Google Sheets junto ao Apps Script tornam-se ferramentas extremamente poderosas. Você pode comprovar isso com alguma das possibilidades que publicamos na categoria do GAS (sigla para Google Apps Script). Além das planilhas, o e-mail ainda é uma ferramenta muito utilizada nos dias de hoje. Seja para se comunicar com os seus colegas de trabalho ou até mesmo clientes.

Nesse passo a passo, vamos trazer mais um caso que você pode encontrar no mundo dos negócios: automatizar o envio de e-mails diretamente do Google Planilhas. Será super fácil de seguir, mesmo que você seja iniciante no assunto. Além de disponibilizar toda a solução em código para você utilizar ou adaptar, também deixaremos uma planilha 100% pronta para download/cópia.

Caso Prático: automatizar envio de e-mails de clientes com pagamento atrasado

O ideal é que você notifique os seus clientes dias antes do vencimento, como uma forma de contato proativo – algo muito bem visto pelos clientes e pela cultura de sucesso do cliente. Voltando ao tema técnico, nesse exemplo trabalharemos com uma novidade na nossa categoria de Apps Script: condicionais e laços de repetição.

Nesse exemplo prático, teremos a seguinte base de clientes:

base clientes pagamento vencido

Note que temos as seguintes informações por coluna:

  • Coluna A: e-mail do cliente (para onde enviaremos a mensagem)
  • Coluna B: valor total que precisa ser pago
  • Coluna C: data de vencimento do pagamento
  • Coluna D: coluna dinâmica de status, indica se o pagamento está no prazo ou vencido em relação a data do dia atual.

Agora vamos escrever algumas linhas de código que irão poupar boas horas de trabalho!

Escrevendo o código da automação

Abra a sua planilha, no menu superior, clique em Extensões > Apps Script.

A base do nosso script será esse abaixo, observe atentamente o comentário em cada trecho do código.

function enviarEmails() {
  // Acessa a planilha ativa e a página com nome 'pagamentos'
  var planilha = SpreadsheetApp.getActiveSpreadsheet();
  var pagina = planilha.getSheetByName('pagamentos');
  
  // Obtém todos os dados da planilha (conforme são mostrados na planilha)
  var dados = pagina.getRange(2, 1, pagina.getLastRow() - 1, pagina.getMaxColumns()).getDisplayValues();
}

Agora que a função já tem os dados da planilha com a base de clientes, vamos trabalhar um laço de repetição, ou um for como é chamado no JavaScript, que vai percorrer cada linha do nosso conjunto de dados.

Além disso, vamos verificar usando um if, se o status do pagamento está como vencido. Veja abaixo como ficará nossa implementação final, não esqueça de fazer a leitura dos comentários após as barras // no código.

function enviarEmails() {
  // Acessa a planilha ativa e a primeira página
  var planilha = SpreadsheetApp.getActiveSpreadsheet();
  var pagina = planilha.getSheetByName('pagamentos');

  // Obtém todos os dados da planilha
  var dados = pagina.getRange(2, 1, pagina.getLastRow() - 1, pagina.getMaxColumns()).getDisplayValues();

  // Loop pelos dados para enviar os e-mails
  for (var i = 0; i < dados.length; i++) {
    var email = dados[i][0]; // E-mail do cliente
    var valor = dados[i][1] // Valor devido pelo cliente
    var dataVencimento = dados[i][2] // Data de vencimento do pagamento
    var status = dados[i][3] // Status vencido ou no prazo

    // Checando status do pagamento
    // se for igual a vencido, envia o e-mail. Se não, não faz nada.

    if (status == "VENCIDO") {
      // Assunto do e-mail
      var assunto = "📆 Pagamento vencido - octadata.com.br"; // Define o título do e-mail

      // Conteúdo da mensagem
      var mensagem = "Prezado(a) cliente,\n\nInformamos que o seu pagamento no valor de " +
        valor + " está vencido desde " + dataVencimento +
        "\n\nRegularize a sua situação para evitar restrição no acesso. ✅"

      // Concatenando a mensagem final do e-mail
      var corpoEmail = mensagem + "\n\nAtenciosamente,\nTime da Octadata";

      // Enviando o e-mail
      MailApp.sendEmail(email, assunto, corpoEmail);

      console.log('Um e-mail foi enviado para ' + email)
    }
  }
}

Ao executar a função, um e-mail será recebido por todos os clientes que estejam com o status vencido.

email exemplo automacao apps script

Agora que sua automação está pronta, existem algumas possibilidades:

  • Você pode executar manualmente acessando o Apps Script.
  • Você pode criar um botão em Inserir > Desenho > em Transferir Script > e atribuir a função enviarEmails().
    • Assim, toda vez que clicar no botão, a função será executada.
  • Agora, se você pode garantir a atualização dos dados, por exemplo, criando um PROCX que busca a data de vencimento mais atualizada em outra planilha, você pode utilizar os Acionadores para Apps Script para automatizar definitivamente o processo.
    • Por exemplo, na imagem, a função seria executada todos os dias entre 8 a 9h da manhã.

usando acionador automatizar google sheets

Faça uma cópia dessa planilha:

Carregando...

Clique no botão abaixo para acessar o Google Sheets.

Abrir Planilha

Faça uma cópia da Planilha​

Conclusão

Você pode ter visto que automatizar o envio de e-mails com Google Sheets + Apps Script é uma ótima maneira de economizar tempo, melhorar sua produtividade e se tornar ainda mais eficiente. Existem algumas limitações do Google, que dependem do tipo da sua conta. Em média, contas individuais podem enviar entre 100 a 150 e-mails diariamente, enquanto contas do Google Workspace podem ter limites de até 1.500 e-mails por dia.

A partir dessa automação, você pode implementar muitas melhorias, como buscar um anexo com o boleto ou Pix do seu cliente e já enviar no e-mail. Assim como pode criar um relatório que salve quantos e-mails foram enviados no dia.

Esperamos que tenha gostado desse passo a passo. Se ficou com alguma dúvida, venha participar da nossa Comunidata, um grupo 100% gratuito no WhatsApp. No mais, acompanhe nosso blog periodicamente para aprender mais! Até a próxima!

PARTICIPE DO NOSSO GRUPO NO WHATSAPP!
É 100% GRÁTIS!

Tópicos da publicação

PRECISANDO DE UM PROJETO PERSONALIZADO?

Comentários

Compartilhe esse conteúdo

URL compartilhável