Use o Planilhas Google para enviar um e-mail com base no valor da célula

Use o Planilhas Google para enviar um e-mail com base no valor da célula

O envio de um e-mail do Planilhas Google requer o uso de um script do Google Apps. Mas não se preocupe, se você nunca criou um único script do Google Apps antes, enviar um e-mail é muito simples.

No tutorial a seguir, você aprenderá a verificar o valor de uma célula no Planilhas Google . Se o valor estiver acima de um determinado limite, você poderá enviar automaticamente um e-mail de alerta para qualquer endereço de e-mail que desejar.

Há muitos usos para este script. Você pode receber um alerta se os ganhos diários em seu relatório de vendas caírem abaixo de um determinado nível. Ou você pode receber um e-mail se seus funcionários relatarem que cobraram do cliente por muitas horas em sua planilha de acompanhamento do projeto.

Não importa a aplicação, este script é atraente. Isso também economizará o tempo de ter que monitorar manualmente as atualizações da planilha.

Etapa 1: enviar um e-mail com o Planilhas Google

Antes de criar um Script do Google Apps para enviar um e-mail do Planilhas Google , você também precisará de um endereço de e-mail do Gmail, ao qual o Script do Google Apps acessará para enviar seus e-mails de alerta.

Você também precisará criar uma nova planilha que contenha um endereço de e-mail.

Basta adicionar uma coluna de nome e uma coluna de e-mail e preenchê-las com a pessoa que você deseja que receba o e-mail de alerta.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Agora que você tem um endereço de e-mail para enviar um e-mail de alerta, é hora de criar seu script.

Para entrar no editor de scripts, clique em Ferramentas e, em seguida, clique em Editor de scripts .

Você verá uma janela de script com uma função padrão chamada  myFunction() . Renomeie para SendEmail() .

Em seguida, cole o seguinte código dentro da função SendEmail():

// Fetch the email address var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("B2"); var emailAddress = emailRange.getValues(); // Send Alert Email. var message = 'This is your Alert email!'; // Second column var subject = 'Your Google Spreadsheet Alert'; MailApp.sendEmail(emailAddress, subject, message);

Veja como esse código funciona:

  • getRange e getValues ​​extraem o valor da célula especificada no método getRange.
  • var message e var subject definem o texto que vai construir seu email de alerta.
  • A função MailApp.sendEmail finalmente executa o recurso de envio de e-mail do Google Scripts usando sua conta do Google conectada.

Salve o script clicando no ícone de disco e execute-o clicando no ícone de execução (seta para a direita).

Lembre-se de que o Google Script precisa de permissão para acessar sua conta do Gmail para enviar o e-mail. Portanto, na primeira vez que você executar o script, poderá ver um alerta como abaixo.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Clique em Revisar Permissões e você verá outra tela de alerta que precisará ignorar.

Esta tela de alerta ocorre porque você está escrevendo um script personalizado do Google que não está registrado como oficial.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Basta clicar em Avançado e, em seguida, clicar no link Ir para Enviar E-mail (não seguro) .

Você só precisará fazer isso uma vez. Seu script será executado e o endereço de e-mail especificado em sua planilha receberá um e-mail como o abaixo.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Etapa 2: lendo um valor de uma célula no Planilhas Google

Agora que você escreveu com sucesso um script do Google Apps que pode enviar um e-mail de alerta, é hora de tornar esse e-mail de alerta mais funcional.

A próxima etapa que você aprenderá é como ler um valor de dados de uma planilha do Google, verificar o valor e emitir uma mensagem pop-up se esse valor estiver acima ou abaixo de um limite superior.

Antes de fazer isso, você precisará criar outra planilha na Planilha do Google com a qual está trabalhando. Chame essa nova planilha de “MeuRelatório”.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Tenha em mente que a célula D2 é aquela que você vai querer verificar e comparar. Imagine que você deseja saber todos os meses se suas vendas totais caíram abaixo de US$ 16.000.

Vamos criar o Script do Google Apps que faz isso.

Volte para a janela do Editor de Scripts clicando em Ferramentas e depois em Editor de Scripts .

Se você estiver usando a mesma planilha, ainda terá a  função SendEmail() nela. Corte esse código e cole-o no Bloco de Notas. Você vai precisar dele mais tarde.

Cole a seguinte função na janela de código.

function CheckSales() { // Fetch the monthly sales var monthSalesRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MyReport").getRange("D2"); var monthSales = monthSalesRange.getValue(); var ui = SpreadsheetApp.getUi(); // Check totals sales if (monthSales < 16000){="" ui.alert('sales="" too="" low!');="" }="">

Como este código funciona:

  • Carregue o valor da célula D2 na variável monthSales .
  • A instrução IF compara as vendas mensais na célula D2 a US$ 16.000
  • Se o valor for superior a 16.000, o código acionará uma caixa de mensagem do navegador com um alerta.

Salve este código e execute-o. Se funcionar corretamente, você deverá ver a seguinte mensagem de alerta em seu navegador.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Agora que você tem um script do Google Apps que pode enviar um alerta por e-mail e outro script que pode comparar um valor de uma planilha, você está pronto para combinar os dois e enviar um alerta em vez de acionar uma mensagem de alerta.

Passo 3: Juntando tudo

Agora é hora de combinar os dois scripts que você criou em um único script.

A essa altura, você deve ter uma planilha com uma guia chamada Sheet1 que contém o destinatário do e-mail de alerta. A outra guia chamada MyReport contém todas as suas informações de vendas.

De volta ao Editor de Scripts, é hora de colocar em prática tudo o que você aprendeu até agora.

Substitua todo o código no editor de script por suas duas funções, editadas conforme mostrado aqui.

function CheckSales() { // Fetch the monthly sales var monthSalesRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MyReport").getRange("D2"); var monthSales = monthSalesRange.getValue(); // Check totals sales if (monthSales < 16000){="" fetch="" the="" email="" address="" var="" emailrange="SpreadsheetApp.getActiveSpreadsheet().getSheetByName(" sheet1").getrange("b2");"="" var="" emailaddress="emailRange.getValues();" send="" alert="" email.="" var="" message='This month your sales were ' +="" monthsales;="" second="" column="" var="" subject='Low Sales Alert' ;="" mailapp.sendemail(emailaddress,="" subject,="" message);="" }="">

Observe as edições aqui.

Dentro da instrução IF, cole o script SendEmail dentro da função CheckSales() dentro dos colchetes da instrução if.

Em segundo lugar, concatene a variável monthSales ao final da mensagem de email usando o caractere + .

A única coisa que resta a fazer é acionar a função CheckSales() todos os meses.

Para fazer isso, no editor de scripts:

  1. Clique no item de menu Editar e, em seguida, clique em Acionadores do projeto atual .
  2. Na parte inferior da tela, clique em criar um novo gatilho .
  3. Selecione a função CheckSales para executar.
  4. Altere Select event source para time-driven .
  5. Altere  Select type of time based trigger para Month timer .

Clique em Salvar para finalizar o gatilho.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Todo mês, seu novo script será executado e comparará o valor total das vendas mensais na célula D2 com US$ 16.000.

Se for menor, ele enviará um e-mail de alerta notificando sobre as baixas vendas mensais.

Use o Planilhas Google para enviar um e-mail com base no valor da célula

Como você pode ver, o Google Apps Scripts contém muitas funcionalidades em um pequeno pacote. Com apenas algumas linhas simples de código, você pode fazer coisas incríveis.

Se você quiser experimentar um pouco mais, tente adicionar o limite de comparação de US$ 16.000 em outra célula da planilha e leia isso em seu script antes de fazer a comparação. Dessa forma, você pode alterar o limite apenas alterando o valor na planilha.

Ajustando o código e adicionando novos blocos de código, você pode construir sobre essas coisas simples que você aprende para construir alguns scripts do Google incríveis eventualmente.

Automatizando o processo

Até aí tudo bem, mas o script acima só será executado manualmente se não definirmos nenhum gatilho. Felizmente, o Google simplificou a configuração da automação acionada. Aqui estão as etapas. 

No editor do Apps Script, clique no ícone Acionadores na barra lateral esquerda (parece um pequeno relógio).

Clique no link criar novo gatilhor ou em Adicionar gatilho botão no canto inferior direito da página Gatilhos.

No menu suspenso Escolha qual função executar , selecione sendEmails< uma função i=4> .

No menu suspenso Selecionar origem do evento , escolha Com base no tempo.

No menu suspenso Selecionar tipo de acionador baseado em tempo , escolha a frequência desejada (por exemplo, Timer diurno para e-mails diários, Timer semanal para e-mails semanais, etc.).

Se aplicável, escolha o intervalo de tempo ou dia da semana desejado.

Clique em Salvar para criar o acionador.

Depois de salvar, clique no botão Implantar no canto superior direito e siga as instruções para rotular e definir a implantação. Você precisará conceder permissões de automação para execução, e o mesmo vale para o script em si.  

Quanto ao gatilho indicado, como nosso exemplo é sobre o envio de lembretes de faturas, presumimos que sejam mensais, sendo adequado enviá-los todo dia 1º de cada mês entre 13h e 14h. Mas é claro que você pode alterar a frequência e o tempo com base em suas necessidades. 

Como enviar um e-mail com anexo

Para mostrar como enviar e-mails com anexos, reutilizaremos a planilha exemplar com lembretes de faturas e refatoraremos o snippet para incluir anexos. Agora estamos começando com a função, e o modelo de e-mail vem mais tarde no código. enviarEmailReminders

Devemos destacar que o snippet abaixo extrai anexos de e-mail de uma pasta do Google Drive, onde é fundamental incluir o ID da pasta e seguir a convenção de nomenclatura fornecida. Mais sobre isso na seção Vamos detalhar o código

function sendEmailReminders() { // Obtenha a planilha ativa var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Obtenha o intervalo de dados (excluindo a linha do cabeçalho) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Obtenha os valores do intervalo de dados var data = dataRange.getValues(); // Percorre as linhas de dados for (var i = 0; i < data.length; i++) { var row = data[i]; // Obtenha os valores de cada coluna var businessName = row[0]; var email = linha[1]; var NúmeroFatura = linha[2]; var faturaValor = linha[3]; var datade vencimento = linha[4]; var assunto = linha[5]; // Corpo do e-mail var emailBody = "Caro " + nomedaempresa + ",\n\n" + "Este é um lembrete de que a Fatura #" + número da fatura + " por $" + valor da fatura + " vence em " + data de vencimento + ".\n" + "Encontre a fatura em anexo.\n\n" + "Obrigado pela sua pronta atenção a este assunto."; // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } // Envia o e-mail com o anexo MailApp.sendEmail({ to: email, subject: subject, body: emailBody, attachments: [invoiceFile] }); } }

Vamos decompor o código

1. Defina a função:sendEmailReminders

função enviarEmailReminders() {

A linha declara uma função chamada , que conterá o código para enviar lembretes por e-mail com anexos.sendEmailReminders

2. Obtenha a planilha ativa:

var planilha = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

A linha recupera a planilha ativa do documento do Planilhas Google atualmente aberto.

3. Obtenha o intervalo de dados (excluindo a linha do cabeçalho):

var dataRange = planilha.getRange(2, 1, planilha.getLastRow() - 1, planilha.getLastColumn());

Esta linha obtém o intervalo de dados da planilha, excluindo a linha do cabeçalho. Começa na segunda linha (linha 2) e na primeira coluna (coluna 1) e se estende até a última linha e a última coluna da planilha.

Observação lateral: Ao criar sua planilha personalizada, você precisa modificá-la para que corresponda à sua planilha. intervalo de dados

4. Obtenha os valores do intervalo de dados:

var dados = dataRange.getValues();

Esta linha recupera os valores (conteúdo) do intervalo de células definido na etapa anterior.

5. Percorra as linhas de dados:

for (var i = 0; i < data.length; i++) { var linha = dados[i];

Esse loop percorre cada linha da matriz. A variável representa a linha atual de dados em cada iteração.fordatarow

6. Obtenha os valores de cada coluna:

var nomenegócio = linha[0]; var email = linha[1]; var NúmeroFatura = linha[2]; var faturaValor = linha[3]; var datade vencimento = linha[4]; var assunto = linha[5];

As linhas acima extraem os valores de cada coluna da linha atual de dados. Cada valor é posteriormente atribuído a uma variável para fácil referência no script. Os valores fornecidos são personalizados para nossa planilha exemplar. 

7. Crie o corpo do email:

var emailBody = "Prezado" + nomedaempresa + ",\n\n" + "Este é um lembrete de que a Fatura #" + número da fatura + " por $" + valor da fatura + " vence em " + data de vencimento + ".\n" + "Encontre a fatura em anexo.\n\n" + "Obrigado pela sua pronta atenção a este assunto.";

O código constrói o corpo do email usando os valores extraídos da planilha. O corpo do e-mail é uma string que inclui o nome da empresa, o número da fatura, o valor da fatura e a data de vencimento.

8. Obtenha o arquivo da fatura correspondente:

var faturaFolderId = 'SEU_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); var faturaArquivo; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { console.error("Arquivo de fatura não encontrado para o número da fatura: " + BillNumber); continuar; }

Estas linhas recuperam o arquivo de fatura associado à linha atual. 

Primeiro, a pasta do arquivo da fatura é acessada usando seu ID de pasta. Lembre-se de substituí-lo pelo ID da pasta real. SUA_FOLDER_ID_AQUI

Observe que a convenção de nomenclatura em nosso exemplo é , e a fatura real é chamada de ‘123456.pdf’. Se os seus arquivos anexos tiverem nomes diferentes, você precisará atualizar a formatação. (Número da fatura + '.pdf')

Em seguida, o script procura um arquivo com o mesmo nome do número da fatura (assumindo que o arquivo esteja no formato PDF). 

Se o arquivo for encontrado, ele será atribuído à variável; caso contrário, o script registrará uma mensagem de erro e passará para a próxima linha.invoiceFile

9. Envie o email com o anexo:

MailApp.sendEmail({ para: email, assunto: assunto, corpo: emailBody, anexos: [invoiceFile] });

Esta linha envia o corpo e os anexos do email, e aqui estão os resultados que você deve obter. Além disso, todas as etapas de automação se aplicam conforme descrito anteriormente, e faz sentido manter o gatilho mensal, pois se trata de envio de lembretes de faturas. 

Envie um email em HTML com GSheets

Para enviar um e-mail em HTML, você pode fazer algumas modificações bastante simples no script descrito anteriormente. Aqui está: 

function sendEmailReminders() { // Obtenha a planilha ativa var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Obtenha o intervalo de dados (excluindo a linha do cabeçalho) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Obtenha os valores do intervalo de dados var data = dataRange.getValues(); // Percorre as linhas de dados for (var i = 0; i < data.length; i++) { var row = data[i]; // Obtenha os valores de cada coluna var businessName = row[0]; var email = linha[1]; var NúmeroFatura = linha[2]; var faturaValor = linha[3]; var datade vencimento = linha[4]; var assunto = linha[5]; // Corpo do e-mail HTML var emailBodyHtml = "<p>Caro " + nomedaempresa + ",</p>" + "<p>Este é um lembrete de que a Fatura #" + número da fatura + " por $" + valor da fatura + " vence em " + data de vencimento + ".</p>" + "<p>Encontre a fatura em anexo.</p>" + "<p>Obrigado pela sua pronta atenção a este assunto.</p>"; // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } // Envia o email com o anexo MailApp.sendEmail({ to: email, subject: subject, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } }

Nesta versão, o texto simples é substituído por uma variável que contém conteúdo formatado em HTML. e-mailBodyemailBodyHtml

Ao chamar a função, a propriedade body também é substituída pela propriedade, que enviará o e-mail como um email HTML.MailApp.sendEmail()htmlBody

Notas laterais: 

Estamos usando em vez de no script por uma questão de conveniência. Qualquer uma das opções funcionaria, embora definitivamente seja mais legível. De qualquer forma, fique à vontade para reformatar o script e substituir o operador de concatenação por espaços reservados na interpolação de strings. varconstconst${expressão}

Além disso, nenhum dos scripts inclui funções, pois elas não eram necessárias para nossos exemplos. Mas é claro que também é possível adicionar e até automatizar esses tipos de scripts. CcoCco

Por fim, você pode apimentar as coisas adicionando estilos CSS personalizados. Veja a função atualizada abaixo. var emailBodyHtml =

// Corpo do e-mail HTML com estilos CSS var emailBodyHtml = "<html><head><style>" + "corpo {família de fontes: Arial, sans-serif;}" + "p {tamanho da fonte: 14px;}" + ".invoice-info {font-weight: negrito; cor: #4a4a4a;}" + "</estilo></cabeça><corpo>" + "<p>Caro <span class='invoice-info'>" + businessName + "</span>,</p>" + "<p>Este é um lembrete de que a fatura #<span class='invoice-info'>" + número da fatura + "</span> por $<span class='invoice-info'>" + valor da fatura + "</span> vence em <span class='invoice-info'>" + data de vencimento + "</span>.</p>" + "<p>Encontre a fatura em anexo.</p>" + "<p>Obrigado pela sua pronta atenção a este assunto.</p>" + "</body></html>";

Dicas profissionais: 

  • Vá com calma, pois alguns provedores de caixa de correio podem não oferecer suporte e renderizar e-mails muito estilizados de maneira adequada, ou mesmo não renderizá-los. <estilo>
  • Use o Mailtrap Email Testing para ver quanto os provedores de caixa de correio oferecem suporte aos seus e-mails HTML. 
  • Para enfatizar novamente: Se você precisar enviar em grande volume, é sempre melhor usar um MTA adequado em vez da função. enviar e-mail
  • Por falar nisso, lembre-se das limitações da sua conta do Gmail. Eles são diferentes para o Google Workspace e/ou sua conta privada. 

Como enviar e-mails de gatilho do Planilhas Google?

Quando uma célula atinge um determinado valor

Mostraremos como enviar um e-mail automático com base no valor de uma célula. Em nosso exemplo, a fatura será enviada quando a célula Valor da fatura atingir ‘0’, indicando um cliente desligado. 

O valor da célula fornecido aciona um e-mail de rotatividade personalizado para entrar em contato imediatamente com o cliente. E novamente, as etapas de automação permanecem as mesmas, você ainda pode usar o gatilho mensal para esses e-mails. 

Lembre-se de que o script é o mesmo que usamos para enviar e-mails e anexos em HTML. Mas possui outra camada de funcionalidade para introduzir a lógica condicional descrita. Aqui está o código. 

function sendEmailReminders() { // Obtenha a planilha ativa var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Obtenha o intervalo de dados (excluindo a linha do cabeçalho) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Obtenha os valores do intervalo de dados var data = dataRange.getValues(); // Percorre as linhas de dados for (var i = 0; i < data.length; i++) { var row = data[i]; // Obtenha os valores de cada coluna var businessName = row[0]; var email = linha[1]; var NúmeroFatura = linha[2]; var faturaValor = linha[3]; var datade vencimento = linha[4]; var assunto = linha[5]; // Determina o corpo do email com base no valor da fatura var emailBodyHtml; if (invoiceAmount == 0) { // E-mail de desligamento do cliente subject = "Notificação de desligamento do cliente"; emailBodyHtml = "<html><head><style>" + "corpo {família de fontes: Arial, sans-serif;}" + "p {tamanho da fonte: 14px;}" + ".invoice-info {font-weight: negrito; cor: #4a4a4a;}" + "</estilo></cabeça><corpo>" + "<p>Caro " + nomedaempresa + ",</p>" + "<p>Observamos que o valor da sua fatura é de US$ 0. Lamentamos ver você partir e gostaríamos de receber comentários sobre o motivo pelo qual você decidiu interromper o uso de nossos serviços.</p>" + "<p>Se houver algo que possamos fazer para melhorar nossos serviços ou reconquistar seu negócio, informe-nos.</p>" + "<p>Obrigado por seus negócios anteriores.</p>" + "</body></html>"; } else { // E-mail de fatura normal emailBodyHtml = "<html><head><style>" + "corpo {família de fontes: Arial, sans-serif;}" + "p {tamanho da fonte: 14px;}" + ".invoice-info {font-weight: negrito; cor: #4a4a4a;}" + "</estilo></cabeça><corpo>" + "<p>Caro <span class='invoice-info'>" + businessName + "</span>,</p>" + "<p>Este é um lembrete de que a fatura #<span class='invoice-info'>" + número da fatura + "</span> por $<span class='invoice-info'>" + valor da fatura + "</span> vence em <span class='invoice-info'>" + data de vencimento + "</span>.</p>" + "<p>Encontre a fatura em anexo.</p>" + "<p>Obrigado pela sua pronta atenção a este assunto.</p>" + "</body></html>"; } // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.próximo(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } // Envia o email com o anexo MailApp.sendEmail({ to: email, subject: subject, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } }

Até a quebra de código 

Observe que estamos nos concentrando apenas no que está na função para evitar repetir o que já foi descrito. emailBodyHtml

A parte atualizada do código determina o conteúdo do corpo do email com base no valor da fatura. Se o valor da fatura for , presume-se que seja um cliente desligado e um modelo de e-mail diferente será usado. Aqui está um detalhamento do código: ‘0’

var emailBodyHtml;

Ele declara uma variável chamada e armazena o conteúdo do corpo do e-mail. E inicialmente ficou indefinido.emailBodyHtml

if (valor da fatura == 0) { ... }

O extrato verifica se o valor da fatura é 0. Se for, o código entre chaves será executado. Este bloco contém o modelo de e-mail de desligamento do cliente.if(`{}`)

subject = "Notificação de desligamento de clientes";

A linha define o assunto do e-mail para clientes que abandonam clientes."Notificação de desligamento de clientes"

emailBodyHtml = "<html><head><style>" + ...

 A linha define o valor da variável para o modelo de e-mail de desligamento do cliente. O modelo é uma string HTML com estilos CSS definidos na seção. O corpo do e-mail contém espaços reservados para o nome da empresa e uma mensagem para o arquivo customer.emailBodyHtml<head>

} outro { ... }

O bloqueio é executado quando o valor da fatura não é 0. Ele define a variável para o modelo de e-mail de fatura normal. O modelo de e-mail é uma string HTML com estilos CSS definidos na seção. O corpo do e-mail contém espaços reservados para o nome da empresa, número da fatura, valor da fatura e data de vencimento.elseemailBodyHtml<head>

Ao usar essa lógica condicional, o script envia um corpo de e-mail diferente com base no valor da fatura (cliente desligado) ou diferente de zero (fatura normal). 0

Quando o valor da célula muda

Agora, pegaremos o mesmo script usado acima e o estenderemos para cobrir outro caso de uso – um cliente faz upgrade e o gerente de conta precisa enviar um e-mail de “Obrigado” com uma fatura. 

Para explicar, a ideia é que todo mês o gerente de contas tenha uma nova Planilha (Planilha 2 no nosso exemplo) com as credenciais dos clientes. 

O código agora comparará as duas planilhas e enviará um e-mail automático de agradecimento, em vez do e-mail de fatura normal, aos clientes que fizeram upgrade (seu Valor da fatura é maior em comparação com o anterior). 

Além disso, não há necessidade de mexer no e-mail de rotatividade, pois existe a chance de alguém decidir parar de usar nosso serviço imaginário. Aqui está o roteiro.

function sendEmailReminders() { var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var planilha2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Planilha2"); var dataRange1 = planilha1.getRange(2, 1, planilha1.getLastRow() - 1, planilha1.getLastColumn()); var dataRange2 = planilha2.getRange(2, 1, planilha2.getLastRow() - 1, planilha2.getLastColumn()); var dados1 = dataRange1.getValues(); var dados2 = dataRange2.getValues(); for (var i = 0; i < data1.length; i++) { var row1 = data1[i]; var linha2 = dados2[i]; var nomenegócio = linha1[0]; var email = linha1[1]; var NúmeroFatura = linha1[2]; var faturaAmount1 = parseFloat(row1[3].toString().replace('$', '').replace(',', 39;.')); var faturaAmount2 = parseFloat(row2[3].toString().replace('$', '').replace(',', 39;.')); if (isNaN(invoiceAmount1) || isNaN(invoiceAmount2)) { console.error("Valores de fatura inválidos para empresas: " + businessName + ". faturaAmount1: " + faturaAmount1 + ", faturaAmount2: " + faturaAmount2 ); continuar; } var dueDate = linha1[4]; var assunto; var emailBodyHtml; if (invoiceAmount1 < facturaAmount2) { console.log("Enviando e-mail de 'Obrigado pela atualização' para " + email + ". + valor da fatura2); subject = "Obrigado pela atualização"; emailBodyHtml = "<html><corpo>" + "<p>Caro " + nomedaempresa + ",</p>" + "<p>Obrigado por atualizar! Agradecemos sua empresa e estamos ansiosos para atendê-lo.</p>" + "<p>Atenciosamente,</p>" + "<p>Sua Empresa</p>" + "</body></html>"; MailApp.sendEmail({ para: email, assunto: assunto, htmlBody: emailBodyHtml }); } else if (invoiceAmount1 == 0) { console.log("Enviando e-mail de 'notificação de desligamento do cliente' para " + email + ". facturaAmount1: " + facturaAmount1); subject = "Notificação de desligamento de clientes"; emailBodyHtml = "<html><head><style>" + "corpo {família de fontes: Arial, sans-serif;}" + "p {tamanho da fonte: 14px;}" + ".invoice-info {font-weight: negrito; cor: #4a4a4a;}" + "</estilo></cabeça><corpo>" + "<p>Caro " + nomedaempresa + ",</p>" + "<p>Observamos que o valor da sua fatura é de US$ 0. Lamentamos ver você partir e gostaríamos de receber comentários sobre o motivo pelo qual você decidiu interromper o uso de nossos serviços.</p>" + "<p>Se houver algo que possamos fazer para melhorar nossos serviços ou reconquistar seu negócio, informe-nos.</p>" + "<p>Obrigado por seus negócios anteriores.</p>" + "</body></html>"; MailApp.sendEmail({ para: email, assunto: assunto, htmlBody:emailBodyHtml }); } else { console.log("Enviando e-mail de 'Lembrete de fatura' para " + email + ". faturaAmount1: " + faturaAmount1 + ", faturaAmount2: " + faturaAmount2); subject = "Lembrete de fatura"; emailBodyHtml = "<html><head><style>" + "corpo {família de fontes: Arial, sans-serif;}" + "p {tamanho da fonte: 14px;}" + ".invoice-info {font-weight: negrito; cor: #4a4a4a;}" + "</estilo></cabeça><corpo>" "<p>Prezado <span class='invoice-info'>" + businessName + "</span>,</p>" + "<p>Este é um lembrete de que a fatura #<span class='invoice-info'>" + número da fatura + "</span> por $<span class='invoice-info'>" + faturaValor1 + "</span> vence em <span class='invoice-info'>" + data de vencimento + "</span>.</p>" + "<p>Encontre a fatura em anexo.</p>" + "<p>Obrigado pela sua pronta atenção a este assunto.</p>" + "</body></html>"; // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } MailApp.sendEmail({ para: email, assunto: assunto, htmlBody: emailBodyHtml, anexos: [invoiceFile] }); } } }</p>" + "</body></html>"; // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } MailApp.sendEmail({ para: email, assunto: assunto, htmlBody: emailBodyHtml, anexos: [invoiceFile] }); } } }</p>" + "</body></html>"; // Anexe a fatura correspondente - Você precisa fornecer o ID correto da pasta onde suas faturas estão armazenadas var faturaFolderId = 'YOUR_FOLDER_ID_HERE'; var faturaFolder = DriveApp.getFolderById(invoiceFolderId); var faturaFiles = faturaFolder.getFilesByName(invoiceNumber + '.pdf'); // Supondo que os arquivos da fatura estejam em formato PDF var faturaFile; if (invoiceFiles.hasNext()) { faturaFile = faturaFiles.next(); } else { // Se o arquivo da fatura não for encontrado, você pode pular esta linha ou registrar um erro console.error("Arquivo de fatura não encontrado para o número da fatura: " + faturaNumber); continuar; } MailApp.sendEmail({ para: email, assunto: assunto, htmlBody: emailBodyHtml, anexos: [invoiceFile] }); } } }

Até a quebra de código 

1. O script começa obtendo referências para Planilha1 e Planilha2.

var planilha1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Planilha1"); var planilha2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Planilha2");

2. Em seguida, recupera os dados de ambas as planilhas, começando na segunda linha para excluir cabeçalhos.

var dataRange1 = planilha1.getRange(2, 1, planilha1.getLastRow() - 1, planilha1.getLastColumn()); var dataRange2 = planilha2.getRange(2, 1, planilha2.getLastRow() - 1, planilha2.getLastColumn()); var dados1 = dataRange1.getValues(); var dados2 = dataRange2.getValues();

3. O script itera nas linhas de ambas as planilhas (assumindo que o número de linhas é o mesmo em ambas as planilhas). Ele compara os valores das faturas da Plan1 e da Plan2 para cada linha correspondente.

for (var i = 0; i < data1.length; i++) { var row1 = data1[i]; var linha2 = dados2[i]; // Obtenha os valores das faturas de ambas as planilhas var faturaAmount1 = parseFloat(row1[3].toString().replace('$', '').replace(' ,', '.')); var faturaAmount2 = parseFloat(row2[3].toString().replace('$', '').replace(',', 39;.'));

cópia de

4. O script então verifica as condições de envio de diferentes tipos de e-mails com base na comparação dos valores das faturas da Planilha1 e Planilha2.

if (invoiceAmount1 < faturaAmount2) { // Enviar "Obrigado pela atualização" email } else if (invoiceAmount1 == 0) { // Enviar "notificação de desligamento do cliente" email } else { // Enviar "Lembrete de fatura" e-mail }

cópia de

A principal comparação é , que verifica se o valor da fatura na Planilha1 é menor que o valor da fatura na Planilha2 para a mesma linha (ou seja, o mesmo cliente). Se for verdade, o script pressupõe que o cliente fez upgrade e envia um e-mail. Caso contrário, ele verifica outras condições (rotatividade ou lembretes regulares de fatura) e envia o e-mail apropriado.if (invoiceAmount1 < facturaAmount2)"Obrigado pela atualização"

Quando um arquivo do Planilhas Google é atualizado

Agora vale a pena discutir um caso de uso diferente, em que outras pessoas além do gerente da conta têm acesso à planilha. 

Suponhamos que nosso gerente de conta tenha um dia dedicado a conhecer clientes e tirar suas dúvidas. Os clientes têm acesso a uma planilha onde podem descrever resumidamente o problema e reservar uma vaga. 

Ok, existem maneiras muito melhores de lidar com reservas e dúvidas de clientes. Mas seguiremos essa abordagem por causa do tutorial.

Passo 1

Primeiro, precisamos criar uma tabela. Conforme mostrado abaixo, o nosso é bastante simples, contendo apenas três linhas com Gerenciador, Intervalo de tempo e Consulta.

Passo 2

Em seguida, você precisa de scripts do Google para acionar e-mails sempre que alguém atualiza a planilha com sua consulta, reservando assim uma vaga. Aqui está um exemplo. 

//@OnlyCurrentDoc function processEdit(e) { MailApp.sendEmail({ to: "[email protected]" ;, subject: "Nova reserva -- horário do cliente", body: "Um cliente tem uma pergunta para você." }); }

cópia de

Para ajudar você a entender o que acontece, vale a pena discutir as principais funções. 

  • //@OnlyCurrentDoc – esta anotação indica que você deseja que o script seja executado apenas na Planilha Google especificada. A remoção da anotação ativou o script em seus outros arquivos. 
  • função processEdit () – um gatilho (configuraremos na próxima etapa) executa o script com esta função. Simplesmente, a função define o processo para receber um e-mail sempre que alguém atualizar a planilha.
  • (e) – esta anotação representa o objeto com dados sobre as edições. Possui uma propriedade range para sinalizar que um intervalo ou célula foi editado. 
  • MailApp – um objeto que a função usa para retransmitir o e-mail. 

Antes de prosseguir, você pode testar a planilha e o código. Se você estiver usando a planilha exemplar, basta preencher uma das células na coluna Consulta e executar o script. O e-mail deve chegar imediatamente à sua caixa de entrada, mas lembre-se, o script ainda não foi automatizado.

etapa 3

É hora de definir e autorizar um gatilho para enviar e-mails automaticamente. No Apps Script, clique no ícone do despertador no menu lateral. Em seguida, clique em “…criar um novo gatilho”. 

No pop-up de configuração do gatilho, selecione os critérios a seguir.

  • processo
  • Cabeça
  • Da planilha
  • Na edição

Observação: não há problema se você mantiver as configurações de notificação de falha como padrão, mas você pode alterar isso se necessário. Isso não afetará o funcionamento geral do gatilho ou do script. Isso pode se aplicar a qualquer um dos scripts do Google que você deseja automatizar. 

Clique em Salvar, autorize o acionador em sua conta e você o verá no  Lista de gatilhos . Além disso, clique no botão Implantar para ativar o gatilho. 

Agora você pode voltar para a planilha, preencher outra célula da coluna Consulta e verificar se recebeu a notificação automática. 

Observação lateral: Você pode personalizar a planilha de acordo com suas preferências, mas isso significa que você também precisará personalizar o script.

Tags: #HOW-TO

Gengibre 2.7.53.0

Gengibre 2.7.53.0

Ginger é um verificador ortográfico e gramatical gratuito.

Blocos

Blocos

Blocks é um jogo intelectual para alunos do 3º ano do ensino fundamental praticarem suas habilidades de detecção e visão e é incluído pelos professores no programa de apoio ao ensino de TI.

Prézi 6.26

Prézi 6.26

Prezi é um aplicativo gratuito que permite criar apresentações digitais, tanto online quanto offline.

Mathway

Mathway

Mathway é um aplicativo muito útil que pode ajudá-lo a resolver todos aqueles problemas matemáticos que exigem uma ferramenta mais complexa do que a calculadora integrada no seu dispositivo.

Apresentador Adobe

Apresentador Adobe

Adobe Presenter é um software de e-Learning lançado pela Adobe Systems e disponível na plataforma Microsoft Windows como um plug-in do Microsoft PowerPoint.

Tucano 2.3.0

Tucano 2.3.0

Tucano é uma plataforma de tecnologia educacional. Ele permite que você aprenda um novo idioma enquanto navega em sites comuns do dia a dia.

ENetViet 24.2

ENetViet 24.2

eNetViet é um aplicativo que ajuda a conectar os pais com a escola onde seus filhos estudam, para que possam entender claramente a situação atual de aprendizagem de seus filhos.

Duolingo

Duolingo

Duolingo - Aprenda Idiomas Gratuitamente, ou simplesmente Duolingo, é um programa educacional que permite aprender e praticar diversos idiomas.

Digitação rápida

Digitação rápida

RapidTyping é uma ferramenta de treinamento de teclado conveniente e fácil de usar que o ajudará a melhorar sua velocidade de digitação e reduzir erros ortográficos. Com aulas organizadas para vários níveis diferentes, o RapidTyping ensinará como digitar ou melhorar as habilidades existentes.

MathType 7.4.10.53

MathType 7.4.10.53

MathType é um software de equação interativo do desenvolvedor Design Science (Dessci), que permite criar e anotar notações matemáticas para processamento de texto, apresentações, eLearning, etc. Este editor também é usado para criar documentos TeX, LaTeX e MathML.