Como automatizar envio de e-mails usando Google Sheets + Apps Script
Utilizando o Google Apps Script você consegue realizar funções incríveis, nesse artigo mostraremos como enviar e-mails de forma automática para uma lista de pessoas da planilha.
- O que faremos?
- Criando a planilha
- Primeiros passos com Apps Script
- Looping nas linhas
- Envio dos e-mails
- Confirmação de envio
- 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.
Agora, basta criar uma planilha com as colunas e linhas necessárias, a nossa ficou assim:
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.
Você verá uma tela, com uma função em branco, o primeiro passo é declarar uma variável relacionando a planilha que está sendo utilizada.
function myFunction() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Página1") }
Repare que o nome da planilha fica no canto inferior:
Agora, vamos declarar no código em quais colunas estão nossas informações.
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:
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.
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:
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:
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.