En este tutorial te voy a mostrar cómo importar correos desde Gmail a Google Sheets, incluyendo los archivos adjuntos, y guardar estos adjuntos automáticamente en una carpeta de Google Drive utilizando Google Apps Script. Este método es ideal si quieres tener un control total y automatizar el proceso de llevar tus correos y documentos importantes a una hoja de cálculo para su análisis o seguimiento. Aprenderás cómo acceder a tu bandeja de entrada, extraer los mensajes y sus adjuntos, y almacenarlos de forma ordenada. Es una solución poderosa para emprendedores, pequeñas empresas y entusiastas de la automatización que desean centralizar la información y ahorrar tiempo en procesos manuales.
Si prefieres ver el tutorial en video, te lo dejo a continuación:
Requisitos previos
Para seguir este tutorial solo necesitas:
- Una cuenta de Google con acceso a Google Sheets y Gmail.
- Una carpeta en Google Drive donde se guardarán los adjuntos de los correos.
- Acceso a Google Apps Script desde tu hoja de cálculo.
Configurando tu entorno en Google Sheets y Drive
Comienza con una hoja de cálculo de Google Sheets en blanco y crea una carpeta en Google Drive donde se almacenarán los archivos adjuntos que extraigas de tus correos. Esto te permitirá mantener todo organizado y tener acceso rápido a los documentos importantes.
Accediendo a Google Apps Script
Desde tu hoja de cálculo, ve al menú Extensiones > Apps Script. Aquí es donde escribirás el código que conectará Gmail con tu hoja y tu carpeta de Drive.
Entendiendo la jerarquía de Gmail en Apps Script
En Gmail, los correos están organizados en cadenas (threads), que pueden contener uno o más mensajes (messages). Cada mensaje puede tener su propio cuerpo y adjuntos. Es importante entender esta jerarquía para poder extraer la información correctamente:
| Objeto | Descripción |
|---|---|
| GmailThread | Cadena de correos (puede contener varios mensajes) |
| GmailMessage | Mensaje individual dentro de una cadena |
| Adjuntos | Archivos enviados junto a un mensaje |
Primer paso: Conectarse a la bandeja de entrada y obtener cadenas
El primer paso es conectarse a tu bandeja de entrada usando el servicio GmailApp y obtener las cadenas de correos. Usamos el método getInboxThreads, que devuelve un arreglo de cadenas. Es recomendable limitar la cantidad de correos para evitar errores si tienes una bandeja muy grande.
function traerCorreos() {
var cadenas = GmailApp.getInboxThreads(0, 1); // Trae solo la cadena más reciente
Logger.log(cadenas);
}
En este ejemplo, getInboxThreads(0, 1) trae solo la primera cadena de tu bandeja de entrada. Puedes ajustar los parámetros para traer más correos, pero ten cuidado de no exceder los límites de tu cuenta.
Conceder permisos a tu script
La primera vez que ejecutes el script, Google te pedirá permisos para acceder a tu cuenta de Gmail. Acepta los permisos siguiendo las instrucciones en pantalla. Si tienes problemas, intenta ejecutar el script nuevamente y asegúrate de seleccionar la cuenta correcta.
Recorriendo las cadenas y obteniendo los mensajes
Para procesar cada cadena, usamos forEach. Esto es útil si quieres trabajar con varios correos a la vez. Así accedemos a los mensajes de cada cadena:
cadenas.forEach(function(cadena) {
var mensajes = cadena.getMessages();
Logger.log(mensajes);
});
getMessages() devuelve un arreglo de mensajes dentro de la cadena. Así puedes acceder a los detalles de cada correo y, más adelante, a los adjuntos.
Configuraciones importantes en Gmail
Para que el script funcione correctamente, asegúrate de que tu bandeja de entrada esté ordenada de más reciente a más antiguo y que la vista de conversación esté activada. Esto garantiza que el script traiga el correo más reciente y agrupe bien los mensajes por cadenas.
Resumen y próximos pasos
En este tutorial aprendiste cómo conectar Google Sheets con Gmail utilizando Google Apps Script, accediendo a la bandeja de entrada y extrayendo las cadenas y mensajes. Este es el primer paso para automatizar la importación de correos y adjuntos a tu hoja de cálculo y Drive. En un próximo video, veremos cómo hacer lo mismo usando Make, una alternativa más sencilla pero menos personalizable.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.