De la bandeja de entrada al caos cero: cómo automatizar Gmail sin perder la cabeza

Bandeja de entrada organizada en un portátil, representando un sistema de automatización de Gmail para reducir el ruido del correo electrónico

Si estás leyendo esto es porque —como yo— alguna vez has abierto Gmail y has sentido esa pequeña ansiedad de ver una bandeja de entrada llena de cosas que no pediste.

Newsletters que parecían interesantes hace seis meses. Notificaciones de GitHub. Alertas del homelab. Facturas. Confirmaciones de pedidos. Correos de bancos. Ofertas que caducan hoy. Redes sociales. Foros. Promociones. Y en medio de todo eso, el correo importante que de verdad necesitas atender.

Llevo años probando métodos: Inbox Zero, carpetas, etiquetas de colores, filtros manuales, estrellas, marcadores, prioridades, bandejas múltiples… Y al final todo se reduce a una verdad incómoda:

Gestionar el correo manualmente no escala.

Da igual lo organizado que seas. Si cada correo que entra exige una decisión manual, estás condenado. La solución no es ser más disciplinado. La solución es diseñar un sistema.

Y si puedes automatizar una decisión repetitiva, deberías automatizarla.

En este artículo voy a compartir mi sistema para automatizar Gmail: filtros nativos, etiquetas bien pensadas, categorías, reglas de revisión y algunos scripts con Google Apps Script para los casos donde Gmail se queda corto.

El objetivo no es tener una bandeja bonita. El objetivo es más simple: que solo llegue a tu vista lo que requiere tu atención.


Ojo con automatizar demasiado rápido. El correo mezcla ruido con información importante: bancos, proveedores, trabajo, facturas, alertas y accesos. Antes de borrar o archivar de forma agresiva, probaría las reglas en modo etiqueta durante unos días.

La regla base: la bandeja de entrada no es un almacén

Antes de hablar de filtros, etiquetas o scripts, hay una idea que hay que tener clara.

La bandeja de entrada no debería ser un almacén. Debería ser una cola de trabajo.

Si algo está en la bandeja de entrada, significa una de estas cosas:

  • Tengo que responder.
  • Tengo que decidir.
  • Tengo que hacer algo.
  • Tengo que revisarlo hoy o esta semana.

Todo lo demás debería salir de ahí automáticamente.

No borrado necesariamente. No perdido. Simplemente fuera de la vista principal, bien etiquetado y localizable cuando lo necesites.

Ese cambio mental es el que transforma Gmail de “un sitio donde se acumula ruido” a “un sistema de entrada controlado”.


Fase 1: filtros nativos de Gmail

Antes de meter scripts, APIs o herramientas externas, Gmail ya tiene un sistema de filtros bastante potente.

El problema es que mucha gente crea dos o tres filtros y se olvida. Yo aplico una regla más agresiva:

Cada vez que veo un correo que no merece estar en mi bandeja principal, creo un filtro.

Esto al principio lleva un poco de tiempo. Luego se convierte en una rutina de 20 segundos.

Cómo crear filtros en Gmail

  • Abre un correo que quieras automatizar.
  • Haz clic en los tres puntos.
  • Selecciona Filtrar mensajes similares.
  • Ajusta los criterios: remitente, asunto, palabras clave, destinatario, tamaño, adjuntos, etc.
  • Elige la acción: Saltar Recibidos, aplicar etiqueta, marcar como leído, destacar, reenviar o eliminar.

La opción clave es Saltar Recibidos. En la interfaz inglesa aparece como Skip the Inbox. Lo que hace realmente es archivar el correo: desaparece de Recibidos, pero sigue estando en Gmail y puedes encontrarlo por búsqueda o por etiqueta.

Mi combinación favorita es:

Saltar Recibidos
Aplicar etiqueta
Marcar como leído, si no requiere acción

Eso convierte el correo en información consultable, no en ruido.


Mi taxonomía de etiquetas

Las etiquetas son útiles si no te vuelves loco creando cien. Yo las divido en tres bloques: acción, archivo y ruido.

📥 Acción
├── 📬 Pendiente        → Correos que requieren respuesta
├── 📋 Seguimiento      → Cosas que revisar esta semana
└── ⏳ Esperando        → Correos donde espero respuesta de otro

📦 Archivo
├── 🛒 Compras          → Facturas, pedidos, tracking
├── 🏦 Finanzas         → Bancos, inversiones, seguros
├── 🔐 Seguridad        → Alertas 2FA, cambios de contraseña
├── 🤖 DevOps           → GitHub, CI/CD, monitores, homelab
├── 📰 Newsletters      → Lectura semanal
└── 📆 Eventos          → Reservas, entradas, calendario

🧹 Ruido
├── 📢 Promociones      → Ofertas y descuentos
├── 🔔 Notificaciones   → Redes sociales, foros, plataformas
└── 🧪 Revisar filtro   → Correos que el sistema no tiene claro todavía

La etiqueta más importante de todas es 🧪 Revisar filtro.

No recomiendo automatizar de golpe correos ambiguos. Primero los mandas a una etiqueta de revisión. Si durante unas semanas ves que siempre son irrelevantes, ya puedes archivarlos automáticamente. Si alguno era importante, has evitado perderlo.

Automatizar bien no es automatizar a lo bruto. Es quitarte decisiones repetitivas sin perder control.


Ejemplos prácticos de filtros

Estos ejemplos no son para copiarlos a ciegas. Son patrones. Lo correcto es ajustarlos a tus remitentes reales.

Notificaciones de GitHub

from:([email protected])

Acciones:

Saltar Recibidos
Aplicar etiqueta: 🤖 DevOps
Marcar como leído

Si hay repositorios o menciones que sí quieres ver, crea una excepción o un filtro más específico.

Facturas y pedidos

from:(amazon.es OR paypal.es OR stripe.com) 
(subject:(factura OR recibo OR pedido OR enviado OR entregado))

Acciones:

Saltar Recibidos
Aplicar etiqueta: 🛒 Compras

Aquí no marcaría todo como leído de entrada. Las facturas y pedidos pueden requerir revisión, especialmente si hay importes altos o cargos inesperados.

Newsletters que sí quieres leer

from:(substack.com OR medium.com)
(subject:(newsletter OR weekly OR digest))

Acciones:

Saltar Recibidos
Aplicar etiqueta: 📰 Newsletters
Marcar como leído

Mi regla personal: una newsletter que no he leído en un mes se da de baja. Archivar ruido no es lo mismo que solucionar ruido.

Alertas de seguridad

subject:(security alert OR alerta de seguridad OR "new sign-in" OR "inicio de sesión")

Acciones:

Aplicar etiqueta: 🔐 Seguridad
No saltar Recibidos si requiere revisión

Con seguridad prefiero pecar de prudente. Las alertas críticas no deben desaparecer de la bandeja principal hasta que tengas claro cuáles son ruido y cuáles no.


Fase 2: usa bien las categorías de Gmail

Gmail ya clasifica automáticamente muchos correos en categorías como Principal, Social, Promociones, Actualizaciones y Foros cuando usas la bandeja predeterminada.

Estas categorías no son perfectas, pero ayudan bastante a reducir ruido.

Mi enfoque:

  • Principal: solo lo que puede requerir atención real.
  • Promociones: ofertas, descuentos, campañas y marketing.
  • Social: redes sociales y plataformas.
  • Actualizaciones: recibos, confirmaciones, extractos, avisos automáticos.
  • Foros: comunidades, grupos y listas.

Lo importante es no confiar ciegamente en las categorías. Gmail se equivoca. Por eso las uso como una primera capa, no como única capa.

Un flujo razonable sería:

  • Dejar que Gmail categorice.
  • Revisar durante unos días qué cae en cada pestaña.
  • Crear filtros para los patrones repetidos.
  • Aplicar etiquetas propias donde Gmail se queda corto.

En una tarde puedes eliminar gran parte del ruido, pero el sistema bueno se afina durante semanas.


Fase 3: Google Apps Script solo para lo que Gmail no puede hacer

Los filtros nativos cubren muchísimo. Pero tienen límites.

Un filtro de Gmail no puede hacer una llamada HTTP a Telegram. No puede aplicar lógica avanzada con importes. No puede generar un resumen semanal. No puede decidir en función de varios mensajes de un hilo de forma elaborada.

Para eso entra Google Apps Script.

Apps Script es una plataforma de automatización de Google que permite ejecutar código en la nube y trabajar con servicios como Gmail, Drive, Calendar o Sheets. Es muy potente, pero hay que usarlo con cabeza.

Mis reglas:

  • No uso Apps Script si un filtro normal basta.
  • No proceso todo Gmail cada hora sin necesidad.
  • No borro correos automáticamente salvo casos muy claros.
  • No archivo correos críticos sin una fase previa de revisión.
  • No guardo tokens en el código.

Apps Script tiene cuotas y límites. Si haces scripts demasiado agresivos, acabarás chocando con límites de ejecución, llamadas o envío de correos. Para un uso personal va muy bien, pero no lo trates como si fuera un backend ilimitado.


Ejemplo: archivado prudente de facturas

Este ejemplo busca correos recientes relacionados con facturas, intenta detectar importes y actúa con prudencia.

Si el importe es alto, no archiva: lo manda a seguimiento. Si el importe es normal, lo etiqueta como compra y lo archiva.

function archiveInvoices() {
  const query = 'in:inbox newer_than:7d (factura OR recibo OR "confirmación de pago" OR invoice OR receipt)';
  const threads = GmailApp.search(query, 0, 50);

  const purchasesLabel = getOrCreateLabel_('🛒 Compras');
  const followUpLabel = getOrCreateLabel_('📋 Seguimiento');

  threads.forEach(thread => {
    const messages = thread.getMessages();
    const lastMessage = messages[messages.length - 1];
    const subject = lastMessage.getSubject();
    const body = lastMessage.getPlainBody();

    const amount = extractEuroAmount_(body);

    if (amount === null) {
      thread.addLabel(getOrCreateLabel_('🧪 Revisar filtro'));
      return;
    }

    if (amount > 500) {
      thread.addLabel(followUpLabel);
      sendEmailAlert_(
        'Factura de importe elevado',
        'Se ha detectado una factura de ' + amount.toFixed(2) + ' €. Revisa el hilo: ' + subject
      );
      return;
    }

    thread.addLabel(purchasesLabel);
    thread.moveToArchive();
  });
}

function getOrCreateLabel_(name) {
  return GmailApp.getUserLabelByName(name) || GmailApp.createLabel(name);
}

function extractEuroAmount_(text) {
  const matches = text.match(/(\d{1,3}(?:\.\d{3})*|\d+),(\d{2})\s*€/g);

  if (!matches || matches.length === 0) {
    return null;
  }

  const values = matches.map(match => {
    const clean = match
      .replace('€', '')
      .trim()
      .replace(/\./g, '')
      .replace(',', '.');

    return parseFloat(clean);
  }).filter(value => !isNaN(value));

  if (values.length === 0) {
    return null;
  }

  return Math.max.apply(null, values);
}

function sendEmailAlert_(subject, body) {
  MailApp.sendEmail(Session.getActiveUser().getEmail(), subject, body);
}

Para instalarlo:

  • Ve a script.google.com.
  • Crea un nuevo proyecto.
  • Pega el código.
  • Ejecuta una vez manualmente para autorizar permisos.
  • Crea un disparador horario si todo funciona.

Importante: antes de dejarlo en automático, cambia temporalmente thread.moveToArchive() por una etiqueta de revisión. Durante unos días comprueba que clasifica bien. Luego ya automatizas.


Resumen semanal de newsletters

Este patrón me gusta mucho porque elimina la interrupción diaria sin perder lectura interesante.

La idea:

  • Las newsletters se etiquetan automáticamente como 📰 Newsletters.
  • No aparecen en Recibidos.
  • Una vez por semana recibes un resumen con enlaces a los hilos.
function weeklyNewsletterDigest() {
  const label = GmailApp.getUserLabelByName('📰 Newsletters');

  if (!label) {
    return;
  }

  const threads = label.getThreads(0, 50);

  if (threads.length === 0) {
    return;
  }

  let digest = 'Tu resumen semanal de newsletters:\\n\\n';

  threads.forEach(thread => {
    digest += '- ' + thread.getFirstMessageSubject() + '\\n';
    digest += '  ' + thread.getPermalink() + '\\n\\n';

    thread.markRead();
    thread.moveToArchive();
  });

  MailApp.sendEmail(
    Session.getActiveUser().getEmail(),
    '📰 Resumen semanal de newsletters',
    digest
  );
}

No elimino la etiqueta automáticamente en este ejemplo. Prefiero conservarla para tener histórico. Si quieres limpiar la etiqueta después de enviar el resumen, puedes hacerlo, pero yo no lo haría al principio.


Fase 4: notificaciones inteligentes por Telegram

Gmail te puede notificar, pero suele ser demasiado binario: o te avisa de demasiado, o te pierdes cosas.

Con Apps Script puedes crear notificaciones más inteligentes.

Mi flujo sería este:

  • Gmail recibe el correo.
  • Filtros nativos etiquetan y limpian lo evidente.
  • Apps Script revisa solo correos recientes y relevantes.
  • Si algo cumple una condición crítica, envía una alerta por Telegram.
  • El resto se queda archivado o etiquetado para revisión posterior.

Ejemplo de función para Telegram usando propiedades del script en lugar de tokens hardcodeados:

function sendTelegramAlert_(message) {
  const properties = PropertiesService.getScriptProperties();
  const token = properties.getProperty('TELEGRAM_BOT_TOKEN');
  const chatId = properties.getProperty('TELEGRAM_CHAT_ID');

  if (!token || !chatId) {
    throw new Error('Faltan TELEGRAM_BOT_TOKEN o TELEGRAM_CHAT_ID en Script Properties');
  }

  const url = 'https://api.telegram.org/bot' + token + '/sendMessage';

  UrlFetchApp.fetch(url, {
    method: 'post',
    payload: {
      chat_id: chatId,
      text: message
    },
    muteHttpExceptions: true
  });
}

Para guardar las propiedades:

  • En Apps Script, ve a Project Settings.
  • Busca Script Properties.
  • Añade TELEGRAM_BOT_TOKEN.
  • Añade TELEGRAM_CHAT_ID.

No pongas el token del bot escrito directamente en el código. Es cómodo, pero es mala práctica. Y si algún día compartes el script o haces una captura, ya la has liado.


El resultado después de un mes

Bandeja de entrada de Gmail organizada con etiquetas y pocos correos pendientes tras aplicar filtros y automatizaciones

Implementar este sistema me llevó una tarde. El primer mes fue de ajuste: filtros que se quedaban cortos, remitentes que cambiaban, newsletters que ya no me interesaban, facturas que necesitaban una excepción, alertas que eran ruido.

Pero al cabo de unas semanas el cambio se nota muchísimo.

  • Muchos menos correos en Recibidos.
  • Menos interrupciones durante el día.
  • Más facilidad para encontrar facturas, pedidos y alertas.
  • Menos miedo a perder algo importante.
  • Una revisión diaria mucho más rápida.

En el borrador original puse cifras muy concretas como 87% menos correos, 150 correos diarios reducidos a 5-8 o una hora diaria recuperada. Puedes dejarlas si son mediciones reales tuyas. Si no las has medido, mejor no convertirlas en promesa universal.

La versión honesta sería esta: no sé cuánto tiempo te va a ahorrar a ti, pero sí sé que dejarás de usar la bandeja de entrada como vertedero.

Y eso ya cambia mucho.

Si te ha interesado la automatización del correo, los mismos principios se aplican a otras áreas. Los agentes de IA llevan esta idea un paso más allá: sistemas que no solo clasifican información, sino que pueden proponer acciones. Y en Ciberseguridad Hoy hablo de cómo proteger tu infraestructura digital, incluyendo muchas de esas alertas que acaban llegando por correo.


Para llevar

  • Empieza por filtros nativos. Cubren la mayoría de casos y no requieren código.
  • Usa etiquetas claras. Los emojis ayudan visualmente, pero lo importante es que la estructura sea simple.
  • No automatices a ciegas. Primero etiqueta para revisar; luego archiva si estás seguro.
  • Usa Apps Script solo para lo complejo. Si un filtro basta, no escribas código.
  • No guardes tokens en el script. Usa PropertiesService.
  • Ten en cuenta las cuotas. Apps Script no es un backend infinito.
  • Revisa el sistema cada mes. Remitentes, necesidades y filtros cambian.
  • Da de baja newsletters que no lees. Archivar basura no deja de ser gestionar basura.

La bandeja de entrada ordenada no es un lujo. Es una decisión técnica.

Y como casi todo en tecnología, si puedes convertir una decisión repetitiva en una regla fiable, ganas tiempo, foco y tranquilidad.


¿Tienes tu propio sistema de automatización de correo? ¿Usas filtros, etiquetas, Betterbird, Thunderbird, Spike, scripts caseros o algo más avanzado? Cuéntalo en los comentarios — siempre se aprende de cómo otros resuelven el mismo problema.


Artículos relacionados

Deja un comentario