Pular para o conteúdo principal
Digite para buscar artigos...
↵ buscaresc fechar14 artigos
Como automatizar envio de e-mails usando Google Sheets + Apps Script
Apps Script

Como automatizar envio de e-mails usando Google Sheets + Apps Script

Existe uma função poderosa no Google Apps Script que te permite enviar e-mails de forma automatizada, buscando dados diretamente da sua planilha!

Guilherme Tavano
Nesta Página
  1. O que faremos?
  2. Criando a planilha
  3. Primeiros passos com Apps Script
  4. Looping nas linhas
  5. Envio dos e-mails
  6. Confirmação de envio
  7. Conclusão

O que faremos?

O objetivo é entender como conectar o Google Apps Script com o Google Sheets, pegar os dados da planilha e depois enviar e-mails com base nesses dados.

Para isso, vamos criar uma lista de funcionários em uma planilha com Nome, E-mail e a Tarefa do Dia. O script irá passar por cada um dos funcionários, enviando uma mensagem de bom dia e sua respectiva tarefa.

Lembrando que, esse é apenas um exemplo para mostrar as funções disponíveis, use sua criatividade para automatizar suas principais tarefas com Apps Script.

Criando a planilha

Acessaremos o site do Google Sheets para criar uma planilha em branco.

Captura de tela da opção de criar planilha em branco na página do Google Sheets

Agora, basta criar uma planilha com as colunas e linhas necessárias, a nossa ficou assim:

Planilha com coluna de Nome, E-mail, Tarefa do dia, Modelo de mensagem, mensagem e validação de envio

A ideia é percorrer cada uma dessas linhas e enviar um e-mail para cada pessoa, com sua tarefa respectiva.

Primeiros passos com Apps Script

Para inicializar o Apps Script, acesse Extensões > Apps Script.

Opções da aba de extensões do Google Sheets

Você verá uma tela, com uma função em branco, o primeiro passo é declarar uma variável relacionando a planilha que está sendo utilizada.

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
}

Repare que o nome da planilha fica no canto inferior:

Captura de tela com nome da página da planilha

Agora, vamos declarar no código em quais colunas estão nossas informações.

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
  var emailColumn = 2
  var messageColumn = 5
  var checkColumn = 6
}

Looping nas linhas

Para realizar um looping pelas linhas da planilha, vamos utilizar o "for", da seguinte maneira:

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
  var emailColumn = 2
  var messageColumn = 5
  var checkColumn = 6
  var numRows = sheet.getLastRow()

  for(var i = 2; i <= numRows; i++){
  
  }
}

Repare que adicionamos uma variável para pegar a última linha da planilha e utilizamos no "for", outro ponto importante é, começamos nosso index com 2 para não pegar os dados do cabeçalho da planilha.

Agora, utilizaremos a função "getRange()" e getDisplayValue(), para de fato pegar os dados da planillha.

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
  var emailColumn = 2
  var messageColumn = 5
  var checkColumn = 6
  var numRows = sheet.getLastRow()

  for(var i = 2; i <= numRows; i++){
  var email = sheet.getRange(i, emailColumn).getDisplayValue()
  var message = sheet.getRange(i, messageColumn).getDisplayValue()
  }
}

Envio dos e-mails

Para realizar o envio dos e-mails, precisaremos montar um objeto com as informações:

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
  var emailColumn = 2
  var messageColumn = 5
  var checkColumn = 6
  var numRows = sheet.getLastRow()

  for(var i = 2; i <= numRows; i++){
    var email = sheet.getRange(i, emailColumn).getDisplayValue()
    var message = sheet.getRange(i, messageColumn).getDisplayValue()

    var content = {
      name: "Tavano Blog Company",
      to: email,
      subject: "Assunto - Tarefa do dia",
      htmlBody: message
    }
    MailApp.sendEmail(content);
  }
}

Após termos montado a estrutura da mensagem, utilizamos a função sendEmail, dentro do serviço de MailApp do Apps Script.

Confirmação de envio

Agora, colocaremos a função dentro de um "try catch" e adicionaremos o check na coluna 6 para cada e-mail enviado:

javascript
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1")
  var emailColumn = 2
  var messageColumn = 5
  var checkColumn = 6
  var numRows = sheet.getLastRow()

  for(var i = 2; i <= numRows; i++){
    var email = sheet.getRange(i, emailColumn).getDisplayValue()
    var message = sheet.getRange(i, messageColumn).getDisplayValue()

    var content = {
      name: "Tavano Blog Company",
      to: email,
      subject: "Assunto - Tarefa do dia",
      htmlBody: message
    }
    try{
      MailApp.sendEmail(content);
      sheet.getRange(i, checkColumn).check()
    }catch{
      console.log("E-mail não enviado")
    }
  }
}

Conclusão

Conseguimos entender o poder e a flexibilidade de utilizarmos Google Apps Script, agora basta você adaptar com as tarefas repetitivas do dia a dia e desfrutar do poder de automação da ferramenta.

Sobre o Autor

GT
Guilherme TavanoVer todos os posts →