ChatGPT nos ayudó a solucionar un gran problema con Gmail, ¡y por fin tenemos la bandeja de entrada vacía!

Two laptop screens showing Gmail and the ChatGPT logo
(Crédito de imagen: Shutterstock / Voar Designs / Google)

ChatGPT se equivoca muchas veces, pero la razón por la que millones de nosotros lo usamos es porque, cuando acierta, no hay nada parecido.

Tuvimos esa experiencia hace poco al lidiar con un problema aparentemente sencillo de Gmail. En resumen, la bandeja de entrada estaba desbordada, con cientos de miles de mensajes sin leer, y la sola presencia de esa cifra nos recordaba a diario la mala organización.

Ninguno de esos correos sin leer era especialmente importante. Habíamos estado etiquetando y respondiendo a los más importantes, y usando filtros para destacar los que eran de lectura obligatoria. Pero habíamos dejado que los correos innecesarios invadieran por completo mi Gmail, y ya era hora de poner orden.

No hay problema, pensamos, usaremos la solución drástica: seleccionar todo y marcar todos los correos como leídos para empezar de cero. Pero probarlo, con sus diversas variantes, no funcionó. Parece que Gmail tiene un límite interno secreto para operaciones masivas, y ya lo habíamos superado con creces.

Ni siquiera hacerlo por lotes usando los operadores de búsqueda de Gmail funcionaba. La bandeja de entrada, desbordada, parecía haber colapsado Gmail, y Google no podía ayudarnos.

Afortunadamente, fue entonces cuando una herramienta a la que ahora tratamos como a un tío excéntrico (increíblemente inteligente en algunos aspectos, preocupantemente equivocado en otros) vino al rescate...

Salgámonos del guion

ChatGPT ha resultado de gran ayuda cuando ha tomado una pregunta mal formulada y ha encontrado una solución que jamás se nos habría ocurrido. Normalmente, esto implica programar.

Para solucionar el problema con Gmail, nossugirió usar Google Apps Script. No la conocíamos como tal (en parte porque es algo de Google Workspace), pero al parecer es una herramienta muy útil, aunque poco conocida, para automatizar tareas sencillas, sobre todo en aplicaciones como Docs, Sheets y Gmail.

Después supimos que la gente usa Gmail Apps Script para automatizar todo tipo de tareas, desde la administración de empresas hasta hojas de cálculo para sorteos de amigos. Pero también fue la solución que necesitábamos para sortear las estrictas limitaciones de Gmail para las operaciones masivas.

A laptop screen showing some code in Google Apps Script

(Image credit: Google)

Después del habitual intercambio de mensajes con ChatGPT, se perfeccionó un pequeño script que buscaba en la bandeja de entrada de Gmail en grupos de 500 hilos no leídos y los marcaba como "leídos", hasta que alcanczamos el nirvana de la "bandeja de entrada cero" que había asumido que sería mucho más sencillo lograr.

El proceso fue tan sencillo como ir a Google Apps Script , hacer clic en «Nuevo proyecto», pegar el script (que ChatGPT me aseguró que estaba «totalmente equilibrado y probado»), hacer clic en el icono de «Guardar» y, a continuación, en el botón «Ejecutar». El script empezó a ejecutarse en segundo plano y vimos cómo la bandeja de entrada se vaciaba lentamente hasta quedar vacía.

¿Cómo se utiliza ChatGPT?

ChatGPT no obtiene su sabiduría de la nada y no tenemos ninguna duda de que su solución para Gmail (quizás gran parte del propio script) se "inspiró" en hilos de sitios como Stack Overflow y el Soporte de Google.

El caso es que buscar en Google no dio ningún resultado y estuvimos dando vueltas sin encontrar la solución hasta que ChatGPT intervino. Otra gran ventaja de los chatbots (cuando funcionan bien) es que pueden adaptar las soluciones y el código a tu situación específica.

Eso no significa que no tengas que comprobar todo lo que dicen, y la verdad es que teníamos un poco de reparo en ejecutar un script que no entendíamos del todo en mi cuenta de Gmail. Pero después de revisar el código básico en busca de algún problema, nos animamos a probarlo, y nos alegramos de haberlo hecho.

An iPhone on a blue and green background showing the ChatGPT app producing code for Google Apps Script

(Image credit: OpenAI / Apple)

Este ejercicio, algo árido pero útil, resumió a la perfección cómo utilizamos actualmente chatbots como ChatGPT, y parece que no somos la excepción. Un estudio reciente, destacado por Search Engine Land, sugiere que un impresionante 95 % de los usuarios de ChatGPT siguen utilizando Google; en otras palabras, el chatbot complementa a Google, no lo reemplaza.

ChatGPT es, como ya comentamos, ese tío excéntrico, a veces genial, al que acudimos con problemas complejos que no logramos resolver con las técnicas previas a los chatbots. Y si bien no confiamos plenamente en su memoria de las noticias (un estudio reciente de la BBC reveló que el 45 % de las respuestas de los chatbots de IA sobre noticias presentaban un "problema significativo"), siempre recurrimos a él en busca de esos destellos de inspiración.

Si te encuentras en una situación similar a la nuestra con tu bandeja de entrada de Gmail y quieres probar una solución (quizás demasiado compleja) para llegar a la bandeja de entrada vacía, aquí tienes el código de Google Apps Script que nos funcionó (gracias, ChatGPT). El único reto ahora es mantenerla.

function markAllAsReadSafe() {
  var searchBatchSize = 500; // how many threads to request from Gmail at once
  var apiMax = 100;          // GmailApp.markThreadsRead accepts at most 100 threads per call
  var totalMarked = 0;

  do {
    // get up to searchBatchSize unread threads (newest first)
    var threads = GmailApp.search('is:unread', 0, searchBatchSize);
    if (threads.length == 0) break;

    // process in sub-batches of apiMax
    for (var i = 0; i < threads.length; i += apiMax) {
      var slice = threads.slice(i, i + apiMax);
      try {
        GmailApp.markThreadsRead(slice);
        totalMarked += slice.length;
      } catch (e) {
        Logger.log('Error marking threads read for slice starting at ' + i + ': ' + e);
        // pause briefly and continue
        Utilities.sleep(2000);
      }
      // small pause to reduce chance of throttling
      Utilities.sleep(500);
    }

    Logger.log('Marked ' + totalMarked + ' threads so far.');

    // loop continues if Gmail returned a full batch (means there are probably more)
  } while (threads.length === searchBatchSize);

  Logger.log('Finished. Total threads marked read: ' + totalMarked);
}
Jorge Covarrubias
Editor

Apasionado del mundo de los videojuegos. El survival horror mi género favorito y de Resident Evil. Dedicado también a probar, conocer y reseñar todo tipo de gadgets y del mundo tech.

Aportaciones de