Avançando o artigo de “Automatizando o Envio de E-mails Pelo Google Spreadsheet” utilizando o Google Apps Script publicado no Blog da Taller em 2017, dessa vez vamos incrementá-lo com um checkbox que definirá para quais clientes o e-mail de alerta será enviado e precisaremos, desta vez, do básico em HTML.
Mas calma! Se você também não domina a linguagem vamos apresentar uma ferramenta que ajudará na formatação dos e-mails.
Recapitulando as Aplicabilidades:
Controle de assinaturas
Se você tem uma empresa que vende assinaturas, poderá fazer gestão dos dias que faltam para a renovação de seu cliente e enviar um e-mail de alerta avisando sobre a continuação automática ou da necessidade de um novo contrato, por exemplo.
Controle de recebíveis
Se configurarmos a planilha do modo que contenha os dias restantes até o vencimento de uma venda, esta irá remeter o e-mail para o endereço desejado. Ou seja, servirá como lembrete para as suas “contas a receber”.
Controle Interno
Enviará um e-mail para sua equipe com um alerta, assim que for identificado que um projeto está próximo do seu prazo de entrega ou atrasado.
Além, de que também pode ser adaptado para várias outras áreas da empresa ou, inclusive, para uso pessoal.
Criando a Spreadsheet
Em primeiro lugar, crie sua spreadsheet com os dados para finalidade que pretenda usar.
Caso queira formatar para controle de recebíveis, basta nomear as colunas da planilha com a data de vencimento e os dias que restam até ele. Neste caso, o alerta poderá ser enviado poucos dias antes da data de vencimento ou até mesmo quando já estiver em atraso. Mas, apesar de indesejado, sabemos que no mundo real não é incomum que ocorra inadimplência.
Aqui vamos seguir o exemplo padrão de assinaturas, conforme exemplo abaixo:
*Dados de ilustração
Essa será a aba “Clientes” que deve conter os dados de cada um e os dias que restam para encerrar a assinatura.
O checkbox nos permitirá escolher para quais pessoas ou empresas serão enviados o alerta através do e-mail. Uma vez que o checkbox estiver selecionado, rodará no código e do contrário não.
Em seguida, teremos uma segunda aba nomeada “Config” que apresentará o Subject, que nada mais é do que o assunto do e-mail e o “Name”, que é o nome de quem enviou.
O botão em destaque na imagem acima servirá de atalho para rodar o código direto da spreadsheet, sem a necessidade de acessar o ambiente do Google Apps Script.
Não lembra como desenha-lo? Não se preocupe, segue exemplificado abaixo:
No Menu da Spreadsheet vá em “Inserir” e entre na opção “Desenho”:
Há várias opções de formas que podem representar o botão, escolha a que for mais conveniente:
E agora podemos abrir o ambiente de codificação.
Indo no “Menu” novamente, escolha a opção “<> Editor de script”:
Hora do Código:
Parte 1
Nomearemos a função de modo sugestivo, “sendEmail”, e depois iremos vincular o código com as colunas da spreadsheet correspondente, exemplo:
coluna A = [0];
coluna B = [1];
Atenção para o início da contagem no zero.
De acordo com a planilha do nosso exemplo, a coluna 0 será o nome, a coluna 1 o sobrenome, a coluna 2 o e-mail e a coluna 3 será a assinatura. Esta última nos auxiliará no alerta para o envio do e-mail.
function sendEmail() { var nome = 0; var sobrenome = 1; var email = 2; var assinatura = 3; |
Parte 2
As abas “Clientes” e “Config” serão ativadas, assim como o template em HTML que será usado no e-mail.
As variáveis “subject” e “name” serão a célula “B1” e “B2” da aba Config da spreadsheet, respectivamente. O getRange será o intervalo de “A2:E”, ou seja, da célula A2 até o fim da coluna E.
Toda vez que houver um checkbox selecionado na coluna 4 o código reconhecerá como True e será ativado.
var emailTemp = HtmlService.createTemplateFromFile("email"); var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Clientes"); var wsConfig = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Config"); var name = wsConfig.getRange("B2").getValue(); var subject = wsConfig.getRange("B1").getValue(); var data = ws.getRange("A2:E" + ws.getLastRow()).getValues(); data = data.filter(function(r) { return r[4] == true}); |
Parte 3
Por fim, cuidaremos do template do e-mail em HTML, definindo as linhas (row) das planilhas que serão utilizadas.
Observações:
Dentro do loop:
O emailTemp.fn será atribuído com a linha que estiver o nome correspondente. No HTML a seguir iremos utilizar o fn para automatizar o nome, o ln para automatizar o sobrenome e a assinatura.
A variável htmlMessage vai criar a mensagem em HTML que será personalizada.
Para enviar o e-mail é necessário usar o aplicativo do Gmail “GmailApp.sendEmail”. Em seguida vamos configurar o que vai conter no e-mail: row [linha] disparará os e-mails em sequência, subject irá atribuir o assunto tal como definido na Spreadsheet.
data.forEach(function(row){ emailTemp.fn = row[nome]; emailTemp.ln = row[sobrenome]; emailTemp.assinatura = row[assinatura]; var htmlMessage = emailTemp.evaluate().getContent(); GmailApp.sendEmail( row[email], subject, "You email does't support HTML.", {name: name, htmlBody: htmlMessage} ); }); } |
Hora do HTML:
Em primeiro lugar, precisaremos de um pouco de HTML para formatar nosso e-mail que será disparado, para isso vamos utilizar o Tiny (https://www.tiny.cloud), conforme o passo a passo abaixo:
Já na ferramenta escolha “>Demos”:
Em segundo lugar, você pode escrever seu e-mail da forma que preferir, a automatização será feita no Google Apps Script:
Posteriormente, quando terminar de escrever o corpo do e-mail, você poderá clicar em “Tools” e ir em “<> Source code” e a ferramenta irá transcrever seu texto em HTML.
Note, você pode formatar cores, acrescentar imagens e links, além de vários outros itens.
Para a automatização do nome completo e os dias que faltam para encerrar a assinatura, vamos trocar o nome por <?= fn ?> e <?= ln ?> e os dias por <?= assinatura ?>:
<!DOCTYPE html> <html> <head> </head> <body> <p>Prezado <?= fn ?> <?= ln ?>,</p> <p>Restam <?= assinatura ?> dias para encerrar sua assinatura. Deseja renovar?</p> <p><span style="color: #2dc26b;"><strong>Agradecemos por sua parceria 😃</strong></span></p> <p> </p> <p>Atenciosamente,</p> <p><strong>EmailApp</strong></p> </body> </html> |
No ambiente do Google Data Script adicione um novo arquivo de HTML e acrescente o código. Por exemplo:
Para executar seu script, pode-se rodar direto no GAS da mesma forma que o print abaixo:
Ou se você criou o botão, basta apenas vincular o script a ele, escrevendo o nome da função (sendEmail), da mesma forma que a imagem abaixo:
Em conclusão, seus e-mails serão enviados pelo Google Spreadsheet!
Restou alguma dúvida sobre esse post? Quer aprender algo novo com Google Spreadsheet? É só escrever nos comentários ou perguntar para a gente no nosso Twitter!
Esse post foi inspirado em: