Automatización de Gmail: 8 Scripts de Google Útiles para Automatizar Tu Gmail

Automatizar Gmail Destacada

Gmail, por sí mismo, ya es un cliente de correo electrónico muy poderoso. Con la ayuda de filtros, puedes configurar la automatización para organizar mejor tu bandeja de entrada. Sin embargo, para los usuarios avanzados, la función de filtro no es suficiente en comparación con la escritura de scripts personalizados. Estos ocho scripts de Google pueden automatizar aún más tu Gmail.

Consejo: prueba otro consejo fácil de Gmail: configura el reenvío automático en Gmail.

Tabla de Contenidos

    1. Eliminación Automática de Correos Electrónicos Después de X Días
    1. Archivar Todos los Correos Electrónicos Antiguos
    1. Obtener Notificaciones por SMS para Correos Electrónicos Importantes
    1. Crear un Resumen de Tus Correos Electrónicos
    1. Guardar Correos Electrónicos como PDFs en Google Drive
    1. Enviar Correos Electrónicos de Seguimiento Automáticamente
    1. Etiquetar Correos Electrónicos Según Palabra Clave del Asunto
    1. Reenviar Ciertos Correos Electrónicos a Múltiples Direcciones
  • Preguntas Frecuentes

1. Eliminación Automática de Correos Electrónicos Después de X Días

A menudo, después de leer un correo electrónico, simplemente los mantenemos en nuestra bandeja de entrada, sin importar cuán útiles sean. Ahora que Google ha impuesto un límite de espacio, puede que quieras limpiar tu bandeja de entrada y deshacerte de esos correos inútiles. El siguiente script puede comprobar los correos electrónicos con la etiqueta “Elimina Me” y eliminarlos después de “X” días.

  1. Asegúrate de haber iniciado sesión en tu cuenta de Google, ve a Google Scripts y crea un nuevo proyecto.

Automatizar Gmail Nuevo Proyecto

  1. Pega el siguiente script y guárdalo. Puedes cambiar el número de días (la variable delayDays) que pasan antes de que se eliminen los mensajes de correo electrónico de tu bandeja de entrada.
function auto_delete_mails(){  
  var label = GmailApp.getUserLabelByName("Elimina Me");  
if(label == null){  
    GmailApp.createLabel('Elimina Me');  
}  
else{  
    var delayDays =2; // Ingresa # de días antes de que los mensajes se muevan a la papelera     
    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()
  1. Crea un nuevo trigger para ejecutar tu script según un horario. Abre “el ícono del horario en el menú de la izquierda -> Disparadores -> Añadir Disparador.”

Automatizar Gmail Disparadores

  1. Personaliza la configuración de tu disparador para ejecutar el script cada hora (o con la frecuencia que desees), luego desplázate hacia abajo y haz clic en “Guardar.”

Automatizar Gmail Añadir Disparador

Una vez que este script se ejecute, creará una nueva etiqueta, “Elimina Me,” en tu cuenta de Gmail. Etiqueta tus correos electrónicos no deseados con esta etiqueta, y serán eliminados después del número de días especificado en tu script.

Consejo: Si tu correo electrónico parece estar fuera de control, lee nuestra reseña de SaneBox y ve si puede ayudarte a controlar tu correo.

2. Archivar Todos los Correos Electrónicos Antiguos

Si quieres una opción menos peligrosa que eliminar correos electrónicos, puedes crear un script para archivar todos tus correos antiguos siguiendo los pasos a continuación.

  1. Crea un nuevo script de Google con el siguiente código:
function archiveOldEmails(){  
  // Obtener todos los hilos en la bandeja de entrada  
  var threads = GmailApp.getInboxThreads();  
  
  // Recorrer todos los hilos  
for(var i =0; i < threads.length; i++){  
    var thread= threads[i];  
    var messages =thread.getMessages();  
  
    // Recorrer todos los mensajes en el hilo  
for(var j =0; j < messages.length; j++){  
      var message = messages[j];  
      var age =(new Date() - message.getDate()) / (1000 * 60 * 60 * 24);  
  
      // Si el mensaje es más antiguo que 30 días, archívalo  
if(age >30){  
thread.moveToArchive();  
}  
}  
}  
}
  1. Crea un disparador (como se muestra arriba) para ejecutar el script todos los días.

A la hora que elijas, el script se ejecutará y moverá los correos electrónicos de tu bandeja de entrada al archivo. Estos correos archivados seguirán disponibles en la sección “Todos los Correos”.

Bueno saber: si no te importa los correos electrónicos en tu bandeja de entrada y solo deseas limpiarlo todo rápidamente, esta guía te muestra cómo marcar todos tus correos no leídos como leídos y eliminarlos.

3. Obtener Notificaciones por SMS para Correos Electrónicos Importantes

Este script de Google utiliza la función de SMS de Google Calendar para enviarte un SMS cuando recibes un correo electrónico importante.

  1. Crea un nuevo script de Google con el siguiente código:
function Gmail_send_sms(){  
  var label = GmailApp.getUserLabelByName("Enviar Texto");  
if(label == null){  
    GmailApp.createLabel('Enviar Texto');  
}  
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);  
}  
}
  1. Guárdalo y crea un disparador para que se ejecute cada cinco minutos.
  2. Crea un nuevo filtro en Gmail que automáticamente añada la etiqueta “Enviar Texto” a los correos electrónicos entrantes que elijas. En Gmail, haz clic en el ícono de Opciones de Búsqueda en la barra de búsqueda superior.

Automatizar Gmail 2 Opciones de Búsqueda

  1. Personaliza los criterios para las notificaciones por SMS que te alertarán que tienes correos electrónicos importantes en tu bandeja de entrada, luego haz clic en “Crear filtro.”

Automatizar Gmail 2 Filtros de Búsqueda

  1. Marca “Aplicar la etiqueta”, elige “Enviar Texto” y haz clic en “Crear filtro.”

Automatizar Gmail 2 Filtro Enviar Texto

El script escaneará tu bandeja de entrada cada cinco minutos. Cuando detecta un correo electrónico con la etiqueta “Enviar Texto”, creará inmediatamente un evento en Google Calendar, lo que provocará el SMS.

Consejo: también puedes enviar mensajes de texto SMS desde tu PC.

4. Crear un Resumen de Tus Correos Electrónicos

En lugar de leer todos tus correos electrónicos individualmente, puedes escribir un script para crear un resumen único de tus correos electrónicos no leídos.

  1. Crea un nuevo script de Google con el siguiente código:
function createEmailSummary(){  
    // Buscar correos electrónicos no leídos  
    var threads = GmailApp.search("is:unread");  
    var summary ="Correos Electrónicos No Leídos:\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";  
}  
}  
  
    // Buscar correos electrónicos con palabras clave específicas en el asunto  
    var threads = GmailApp.search("subject:(reunión importante)");  
    summary +="\nCorreos Electrónicos con la palabra clave 'reunión importante' en el asunto:\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";  
}  
}  
  
    // Puedes agregar más criterios de búsqueda aquí  
    // ...  
  
    // Enviar el resumen como un correo electrónico  
    GmailApp.sendEmail("[email protected]","Resumen de Correos Electrónicos", summary);  
}
  1. Cambia “[email protected]” por tu correo electrónico.
  2. Crea un nuevo disparador para que el script se ejecute cada día.

Automatizar Gmail 4 Resumen Ejemplo

Cuando el script se ejecute, te enviará un correo electrónico que incluye cuántos de cada tipo de correo aún no has leído. El script anterior es un buen punto de partida: cuenta el número de correos electrónicos con “reunión importante” en el asunto. Puedes ajustar el script para contar tus criterios de búsqueda deseados.

5. Guardar Correos Electrónicos como PDFs en Google Drive

Si tienes un correo electrónico que deseas archivar en Google Drive, puedes usar un script de Google para guardarlo como un PDF en tu cuenta de Google Drive. El siguiente script guardará todos los mensajes en un hilo de correo electrónico como un único archivo PDF en tu Google Drive. Si el correo electrónico tiene archivos adjuntos, creará una carpeta y almacenará los mensajes y los archivos adjuntos dentro.

  1. Crea un nuevo script de Google con el siguiente código:
function save_Gmail_as_PDF(){  
  // Obtener la etiqueta "Guardar Como PDF" o crearla si no existe  
  var label = GmailApp.getUserLabelByName("Guardar Como PDF");    
  if(label == null){  
    label = GmailApp.createLabel('Guardar Como PDF');  
  }  
  
  // Obtener los hilos con la etiqueta  
  var threads = label.getThreads();    
  for (var i = 0; i < threads.length; i++) {      
    var messages = threads[i].getMessages();  
    var subject = messages[0].getSubject();  
    var bodys = [];  
    // Recorrer todos los mensajes en el hilo  
    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]);  
        }  
      }  
    }  
    // Crear un documento de Google Docs desde el cuerpo del mensaje  
    var bodyDoc = DocumentApp.create(subject);  
    var bodyDocId = bodyDoc.getId();  
    var bodyDocFile = DriveApp.getFileById(bodyDocId);  
    var bodyDocBody = bodyDoc.getBody();  
    bodyDocBody.setText(bodys.map(obj => `De: ${obj.from}\n${obj.body}`).join('\n\n'));  
    bodyDoc.saveAndClose();  
  
    // Convertir el documento de Google Docs a un PDF  
    var blob = bodyDocFile.getAs('application/pdf');  
    var pdfFile = DriveApp.createFile(blob);  
  
    // Si hay archivos adjuntos  
    if(attachments.length > 0){  
      // Crear una carpeta en Drive con el asunto del mensaje  
      var folder = DriveApp.createFolder(subject);  
      for (var j = 0; j < attachments.length; j++) {  
        folder.createFile(attachments[j]);  
      }  
      // Agregar el archivo PDF del cuerpo del mensaje a la carpeta  
      folder.createFile(pdfFile);  
    }  
    // Eliminar el documento de Google Docs de Google Drive  
    DriveApp.getFileById(bodyDocId).setTrashed(true);  
    // Eliminar la etiqueta del hilo  
    label.removeFromThread(threads[i]);  
  }  
}
  1. Guárdalo y establece un disparador para que se ejecute a intervalos regulares.

Automatizar Gmail 5 Correo Guardado PDF

Cuando desees guardar un correo electrónico y sus archivos adjuntos en Google Drive, simplemente etiquétalo con la etiqueta “Guardar como PDF.” El cuerpo de cada correo electrónico y el remitente, en cada hilo, se mostrarán en orden, comenzando por el más antiguo.

Bueno saber: ¿no estás seguro de cuántos archivos tienes en tu carpeta de Google Drive? Esta guía te muestra cómo averiguarlo.

6. Enviar Correos Electrónicos de Seguimiento Automáticamente

Puede que no siempre obtengas una respuesta rápida a tus correos electrónicos. Para abordar este problema, puedes enviar un correo electrónico de seguimiento para recordar a los destinatarios del correo. En lugar de escribir cada seguimiento manualmente, ¡puedes enviarlos automáticamente con un script!

  1. Crea un nuevo script de Google con el siguiente 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;  
    // Si un hilo enviado tiene más de 1 correo electrónico, no necesitamos hacer seguimiento  
    // porque ya hemos hecho seguimiento o ellos respondieron.  
    if (conversation.getMessages().length > 1) {  
      foundResponse = true;  
    }  
  
    if (!foundResponse) {  
      var body = "Hola, solo quería hacer un seguimiento de mi correo electrónico anterior. Si no obtengo respuesta, asumiré que no estás interesado. \n\nSaludos,\n[Tu Nombre]";  
      conversation.replyAll(body);  
    }  
  }  
}
  1. Personaliza algunas cosas en este script:
  • Cambia startDate a un tiempo más cercano al día presente para no resucitar hilos muy antiguos.
  • Cambia daysAgo para personalizar qué tan antiguos quieres que sean los correos antes de enviar un seguimiento.
  • Cambia [Tu Nombre] por tu nombre.
  1. Guárdalo y establece un disparador para ejecutarlo cada siete días.

Sigue enviando correos electrónicos de forma normal, y el script manejará automáticamente los seguimientos.

7. Etiquetar Correos Electrónicos Según Palabra Clave del Asunto

Si recibes una gran cantidad de correos electrónicos pero no deseas eliminar la mayoría de ellos, puedes usar este script para etiquetarlos y organizarlos según su contenido.

  1. Crea un nuevo script de Google con el siguiente código:
function categorizeEmails(){  
  const emailsToGet =50;  
  var keywords ={  
"promo": "Promociones",  
"offer": "Promociones",  
"discount": "Promociones",  
"newsletter": "Boletines",  
"action": "Por Hacer",  
"required": "Por Hacer",  
"shipped": "Órdenes",  
"delivered": "Órdenes",  
"receipt": "Órdenes",  
"invoice": "Órdenes"  
};  
  
  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;  
}  
}  
}  
}
  1. Puedes personalizar la cantidad de correos electrónicos afectados con la variable emailsToGet o las palabras clave y etiquetas con la variable keywords.
  2. Guarda el script y establece un disparador para que se ejecute cada pocos minutos o horas.

Automatizar Gmail 7 Correos Etiquetados Por Asunto

Esto te permite mantenerte al tanto de las cosas al ver solo correos electrónicos con una etiqueta específica. Este script funciona bien en la mayoría de tus correos electrónicos, ahorrándote de simplemente eliminarlos.

Consejo: configura múltiples firmas en Gmail y alterna rápidamente entre ellas para diferentes audiencias.

8. Reenviar Ciertos Correos Electrónicos a Múltiples Otras Direcciones

Mientras que Gmail tiene una forma incorporada de reenviar correos electrónicos a otra dirección de correo, no puede reenviar fácilmente el correo con ciertos criterios a múltiples direcciones de correo, pero este script puede.

  1. Crea un nuevo script con el siguiente código:
function emailForwarding(){  
  const emailsToGet =50;  
  var criteria =[  
{  
      sender: "[email protected]",  
      subjectContains: "factura",  
      forwardTo: ["[email protected]","[email protected]"]  
},  
{  
      sender: "[email protected]",  
      subjectContains: "urgente",  
      forwardTo: ["[email protected]","[email protected]"]  
}  
];  
  
  var label = GmailApp.getUserLabelByName("Reenviado");  
if(!label){  
    label = GmailApp.createLabel("Reenviado");  
}  
  
  var threads = GmailApp.search("is:inbox",0, emailsToGet);  
for(var i =0; i < threads.length; i++){  
    var messages = threads[i].getMessages();  
    console.log('id del hilo:', 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('remitente', sender,'asunto', 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);  
}  
}  
}  
}  
}
  1. Personaliza los criterios según sea necesario.
  2. Crea un disparador que ejecute el script cada pocos minutos o horas.

Tu Gmail reenviará automáticamente el correo que coincida con tus criterios a dos o más direcciones de correo electrónico.

Bueno saber: Gmail tiene un método incorporado para responder automáticamente al correo si estás de vacaciones o fuera de la oficina.

Preguntas Frecuentes

¿Es Google Apps Script gratis para usar?

Sí, Google Apps Script es gratis para usar siempre que tengas una cuenta de Gmail. Sin embargo, hay docenas de cuotas y limitaciones en tu uso. Google puede cambiar esto en cualquier momento, pero en el momento de escribir, incluyen casi 40 características, como documentos creados, lectura/escritura de correos electrónicos, hojas de cálculo creadas y tiempo de ejecución total de los disparadores. Las cuentas gratuitas tienen un límite muy bajo, mientras que Google Workspace tiene un límite mucho más alto.

¿Puedo usar Google Apps Script para acceder a datos de otros servicios?

Sí, Google Apps Script no está limitado a trabajar con servicios de Google. Puedes acceder a datos de servicios externos no pertenecientes a Google en Internet (por ejemplo, la API de Pokémon) usando clases incorporadas como UrlFetchApp así:

var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto"); Logger.log(response.getContentText()); // Todos los detalles de Ditto se registrarían

¿Qué debo hacer si obtengo errores en mi Google Apps Script?

Puedes depurar tu código para identificar y corregir el error. Afortunadamente, Google Apps Script tiene un depurador incorporado que puedes usar para solucionar problemas en tu código. Para usarlo, simplemente abre el editor de scripts y haz clic en Depurar. Desde allí, puedes establecer puntos de interrupción, avanzar a través de tu código e inspeccionar variables para ayudar a identificar cualquier problema.

Crédito de imagen: Pexels. Todas las capturas de pantalla son de Brandon Li.