Automação do Gmail: 8 scripts úteis do Google para automatizar seu Gmail

Automação do Gmail: 8 scripts úteis do Google para automatizar seu Gmail

O Gmail, por si só, já é um cliente de e-mail muito poderoso. Com a ajuda de filtros, você pode configurar a automação para organizar melhor sua caixa de entrada. No entanto, para usuários avançados, o recurso de filtro não é suficiente em comparação com a gravação de scripts personalizados. Esses oito scripts do Google podem automatizar ainda mais o seu Gmail.

1. Excluir e-mail automaticamente após X número de dias

Muitas vezes, depois de ler o e-mail, apenas os mantemos em nossa caixa de entrada, independentemente de quão úteis sejam. Agora que o Google colocou um limite de espaço, você pode querer limpar sua caixa de entrada e se livrar desses e-mails inúteis. O script a seguir pode verificar e-mails com o rótulo “Excluir-me” e excluí-los após “X” dias.

  • Certifique-se de estar logado em sua conta do Google, vá para Google Scripts e crie um novo projeto.
Automatizar novo projeto do Gmail
  • Cole o seguinte script e salve-o. Você pode alterar o número de dias (a variável delayDays) que passam antes de excluir as mensagens de e-mail de sua caixa de entrada.

function auto_delete_mails() {
var label = GmailApp.getUserLabelByName("Delete Me");
if(label == null) {
GmailApp.createLabel('Delete Me');
}
else {
var delayDays = 2; // Enter # of days before messages are moved to trash
var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays);
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
if (threads[i].getLastMessageDate()<maxdate) {
threads[i].movetotrash();
}
}
}}

  • Crie um novo gatilho para executar seu script em um agendamento. Abra “o ícone de agendamento no menu do lado esquerdo -> Gatilhos -> Adicionar Gatilho”.
Automatizar gatilhos do Gmail
  • Personalize as configurações do seu gatilho para executar o script a cada hora (ou com a frequência que desejar), role para baixo e clique em “Salvar”.
Automatizar o acionador de adição do Gmail

Depois que esse script for executado, ele criará um novo rótulo, “Excluir-me”, em sua conta do Gmail. Marque seus e-mails indesejados com este rótulo e eles serão excluídos após o número de dias especificado em seu script.

2. Arquive todos os e-mails antigos

Se você deseja uma opção menos perigosa do que excluir e-mail, pode criar um script para arquivar todos os seus e-mails antigos seguindo as etapas abaixo.

  • Crie um novo script do Google com o seguinte código:

function archiveOldEmails() {
// Get all the threads in the inbox
var threads = GmailApp.getInboxThreads();

// Loop through all the threads
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var messages = thread.getMessages();

// Loop through all the messages in the thread
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
var age = (new Date() - message.getDate()) / (1000 * 60 * 60 * 24);

// If the message is older than 30 days, archive it
if (age > 30) {
thread.moveToArchive();
}
}
}}

  • Crie um gatilho (como mostrado acima) para executar o script todos os dias.

No horário escolhido, o script será executado e moverá os e-mails da sua caixa de entrada para o arquivo. Esses e-mails arquivados ainda estarão disponíveis na seção “Todos os e-mails”.

3. Receba notificações por SMS para e-mails importantes

Este script do Google usa o recurso de SMS do Google Agenda para enviar um SMS quando você recebe um e-mail importante.

  • Crie um novo script do Google com o seguinte código:

function Gmail_send_sms(){
var label = GmailApp.getUserLabelByName("Send Text");
if(label == null){
GmailApp.createLabel('Send Text');
}
else{
var threads = label.getThreads();
var now = new Date().getTime();
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[0];
var from = message.getFrom();
var subject = message.getSubject();
CalendarApp.createEvent(subject, new Date(now+60000), new Date(now+60000), {location: from}).addSmsReminder(0);
}
label.removeFromThreads(threads);
}}

  • Salve-o e crie um gatilho para que ele seja executado a cada cinco minutos.
  • Crie um novo filtro do Gmail que adiciona automaticamente o rótulo “Enviar texto” aos e-mails recebidos escolhidos. No Gmail, clique no ícone Opções de pesquisa na barra de pesquisa superior.
Automatize o Gmail 2 Opções da barra de pesquisa 1
  • Personalize os critérios para as notificações por SMS que irão alertá-lo de que você tem um e-mail importante em sua caixa de entrada e clique em “Criar filtro”.
Automatize os filtros de pesquisa do Gmail 2
  • Marque “Aplicar o rótulo”, escolha “Enviar texto” e clique em “Criar filtro”.
Automatize o filtro do Gmail 2 para enviar texto

O script verificará sua caixa de entrada a cada cinco minutos. Ao detectar um e-mail com o rótulo “Enviar texto”, ele criará imediatamente um evento no Google Agenda, que acionará o SMS

4. Crie um resumo de seus e-mails

Em vez de ler todos os seus e-mails individualmente, você pode escrever um script para criar um único resumo de seus e-mails não lidos.

  • Crie um novo Google Script com o seguinte código:

function createEmailSummary() {
// Search for unread emails
var threads = GmailApp.search("is:unread");
var summary = "Unread Emails:\n";
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
summary += message.getFrom() + ": "+ message.getSubject() + "\n";
}
}

// Search for emails with specific keywords in the subject
var threads = GmailApp.search("subject:(important meeting)");
summary += "\nEmails with keyword 'important meeting' in the subject:\n";
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
summary += message.getFrom() + ": "+ message.getSubject() + "\n";
}
}

// You can add more search criteria here
//. ..

// Send the summary as an email
GmailApp.sendEmail("[email protected]", "Email Summary", summary);}

  • Altere “ [email protected] ” para o seu e-mail.
  • Crie um novo gatilho para executar o script todos os dias.
Exemplo de resumo automatizar Gmail 4

Quando o script for executado, ele enviará a você um e-mail que inclui quantos de cada tipo de e-mail você ainda não leu. O script acima é um bom ponto de partida – ele conta o número de e-mails com “reunião importante” no assunto. Você pode ajustar o script para contar os critérios de pesquisa desejados.

5. Salvar e-mail como PDFs no Google Drive

Se você tiver um e-mail que deseja arquivar no Google Drive, poderá usar um script do Google para salvá-lo como PDF em sua conta do Google Drive. O script a seguir salvará todas as mensagens em um segmento de e-mail como um arquivo PDF em seu Google Drive. Se o e-mail tiver anexos, ele criará uma pasta e armazenará as mensagens e os anexos.

  • Crie um novo script do Google com o seguinte código:

function save_Gmail_as_PDF() {
// Get the label "Save As PDF"or create it if it doesn't exist
var label = GmailApp.getUserLabelByName("Save As PDF");
if(label == null){
label = GmailApp.createLabel('Save As PDF');
}

// Get the threads with the label
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var subject = messages[0].getSubject();
var bodys = [];
// Loop through all messages in thread
for(var j = 0; j < messages.length; j++){
var message = messages[j];
bodys.push({
body: message.getPlainBody(),
from: message.getFrom(),
});
var attachments = message.getAttachments();
var temp_attach = message.getAttachments();
if(temp_attach.length > 0){
for(var k =0; k < temp_attach.length; k++){
attachments.push(temp_attach[k]);
}
}
}
// Create a Google Docs document from the message body
var bodyDoc = DocumentApp.create(subject);
var bodyDocId = bodyDoc.getId();
var bodyDocFile = DriveApp.getFileById(bodyDocId);
var bodyDocBody = bodyDoc.getBody();
bodyDocBody.setText(bodys.map(obj => `From: ${obj.from}\n${obj.body}`).join('\n\n'));
bodyDoc.saveAndClose();

// Convert the Google Docs document to a PDF
var blob = bodyDocFile.getAs('application/pdf');
var pdfFile = DriveApp.createFile(blob);

// If there are attachments
if(attachments.length > 0){
// Create a folder in Drive with the message subject
var folder = DriveApp.createFolder(subject);
for (var j = 0; j < attachments.length; j++) {
folder.createFile(attachments[j]);
}
// Add the PDF file of the message body to the folder
folder.createFile(pdfFile);
}
// Remove the Google Docs document from Google Drive
DriveApp.getFileById(bodyDocId).setTrashed(true);
// Remove the label from the thread
label.removeFromThread(threads[i]);
}
}

  • Salve-o e defina um gatilho para que ele seja executado em um intervalo regular.
Automatize o PDF de e-mail salvo do Gmail 5

Quando quiser salvar um e-mail e seus anexos no Google Drive, basta marcá-lo com o rótulo “Salvar em PDF”. O corpo de cada email e o remetente, em cada thread, serão mostrados em ordem, começando pelo mais antigo.

6. Envie e-mails de acompanhamento automaticamente

Você pode nem sempre obter uma resposta rápida aos seus e-mails. Para resolver esse problema, você pode enviar um e-mail de acompanhamento para lembrar os destinatários do e-mail. Em vez de escrever cada acompanhamento manualmente, você pode enviá-los automaticamente com um script!

  • Crie um novo script do Google com o seguinte código:

function sendFollowupEmails() {
const startDate = new Date('2023-01-01');

const daysAgo = 3;
var dateInPast = new Date();
dateInPast.setDate(dateInPast.getDate() - daysAgo);

var threads = GmailApp.search("is:sent before:"+ dateInPast.toLocaleDateString() + "after:"+ startDate.toLocaleDateString());

for (var i = 0; i < threads.length; i++) {
var conversation = threads[i];

var foundResponse = false;
// If a sent thread has more than 1 email, we don’t need to followup
// because we either followed up already or they responded.
if (conversation.getMessages().length > 1) {
foundResponse = true;
}

if (!foundResponse) {
var body = "Hi, I just wanted to follow up on my previous email. If I get no reply I will assume you are not interested. \n\nBest regards,\n[Your Name]";
conversation.replyAll(body);
}
}}

  • Personalize algumas coisas neste script:
  • Mude startDatepara um horário mais próximo dos dias atuais para não ressuscitar tópicos muito antigos.
  • Altere daysAgopara personalizar quantos anos você deseja que um e-mail tenha antes de enviar um acompanhamento.
  • Mude [Your Name]para o seu nome.
  • Salve-o e defina um gatilho para ser executado a cada sete dias.

Continue enviando e-mails normalmente e o script tratará automaticamente dos acompanhamentos.

7. Rotular e-mails de acordo com a palavra-chave do assunto

Se você ficar sobrecarregado com e-mails, mas não quiser deletar a maioria deles, você pode usar este script para rotulá-los e organizá-los com base em seu conteúdo.

  • Crie um novo script do Google com o seguinte código:

function categorizeEmails() {
const emailsToGet = 50;
var keywords = {
"promo": "Promotions",
"offer": "Promotions",
"discount": "Promotions",
"newsletter": "Newsletters",
"action": "Todo",
"required": "Todo",
"shipped": "Orders",
"delivered": "Orders",
"receipt": "Orders",
"invoice": "Orders"
};

var threads = GmailApp.getInboxThreads(0, emailsToGet);

for (var i = 0; i < threads.length; i++) {
var subject = threads[i].getFirstMessageSubject().toLowerCase();
var labels = GmailApp.getUserLabels();
var foundLabel = false;

for (var keyword in keywords) {
if (subject.indexOf(keyword)! == -1) {
for (var j = 0; j < labels.length; j++) {
if (labels[j].getName() === keywords[keyword]) {
threads[i].addLabel(labels[j]);
foundLabel = true;
break;
}
}

if (!foundLabel) {
GmailApp.createLabel(keywords[keyword]);
threads[i].addLabel(GmailApp.getUserLabelByName(keywords[keyword]));
}

break;
}
}
}}

  • Você pode personalizar o número de e-mails afetados com a variável emailsToGetou palavras-chave e rótulos com a variável keywords.
  • Salve o script e defina um gatilho para ser executado a cada poucos minutos ou horas.
Automatize e-mails do Gmail 7 rotulados por assunto

Isso permite que você fique por dentro de tudo, visualizando apenas e-mails com um rótulo específico. Esse script funciona bem na maioria dos seus e-mails, evitando que você simplesmente os exclua.

8. Encaminhar determinados e-mails para vários outros endereços

Embora o Gmail tenha uma maneira integrada de encaminhar e-mails para outro endereço de e-mail, ele não pode encaminhar e-mails facilmente com determinados critérios para vários endereços de e-mail, mas esse script pode.

  • Crie um novo script com o seguinte código:

function emailForwarding() {
const emailsToGet = 50;
var criteria = [
{
sender: "[email protected]",
subjectContains: "invoice",
forwardTo: ["[email protected]", "[email protected]"]
},
{
sender: "[email protected]",
subjectContains: "urgent",
forwardTo: ["[email protected]", "[email protected]"]
}
];

var label = GmailApp.getUserLabelByName("Forwarded");
if (!label) {
label = GmailApp.createLabel("Forwarded");
}

var threads = GmailApp.search("is:inbox", 0, emailsToGet);
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
console.log('thread id:', threads[i].getId());
for (var j = 0; j < messages.length; j++) {

var message = messages[j];
var sender = message.getFrom();
var subject = message.getSubject().toLowerCase();
console.log('sender', sender, 'subject', subject);
for (var k = 0; k < criteria.length; k++) {
var rule = criteria[k];
if (sender.indexOf(rule.sender)! = -1 && subject.indexOf(rule.subjectContains)! = -1) {
var recipient = rule.forwardTo.join(",");
GmailApp.sendEmail(recipient, subject, message.getPlainBody(), {cc: sender});
threads[i].addLabel(label);
}
}
}
}}

  • Personalize os critérios conforme necessário.
  • Crie um gatilho que executará o script a cada poucos minutos ou horas.

Seu Gmail encaminhará automaticamente e-mails que correspondam aos seus critérios para dois ou mais endereços de e-mail.

perguntas frequentes

O uso do Google Apps Script é gratuito?

Sim, o uso do Google Apps Script é gratuito, desde que você tenha uma conta do Gmail. No entanto, existem dezenas de cotas e limitações de uso. O Google pode alterá-los a qualquer momento, mas no momento da redação, eles incluem quase 40 recursos, como documentos criados, leitura/gravação de e-mail, planilhas criadas e tempo de execução total de acionadores. As contas gratuitas têm um limite muito baixo, enquanto o Google Workspace tem um limite muito maior.

Posso usar o Google Apps Script para acessar dados de outros serviços?

Sim, o Google Apps Script não se limita a trabalhar com os serviços do Google. Você acessa dados de serviços externos que não são do Google na Internet (por exemplo, a API do Pokémon ) usando classes integradas como UrlFetchApp da seguinte forma:

var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto");
Logger.log(response.getContentText()); // All details of Ditto would be logged

O que devo fazer se receber erros em meu script do Google Apps?

Você pode depurar seu código para identificar e corrigir o erro. Felizmente, o Google Apps Script tem um depurador integrado que você pode usar para solucionar problemas do seu código. Para usá-lo, basta abrir o editor de scripts e clicar em Debug. A partir daí, você pode definir pontos de interrupção, percorrer seu código e inspecionar variáveis ​​para ajudar a identificar quaisquer problemas.

Crédito da imagem: Pexels . Todas as capturas de tela por Brandon Li.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *