Cómo programar funciones automáticas en Google Sheets con Apps Script

En este tutorial vamos a aprender a ejecutar una macro o función de Google Apps Script en Google Sheets en horarios específicos o de manera recurrente. Esto es muy útil para automatizar tareas como enviar correos, limpiar bases de datos o actualizar información sin necesidad de hacerlo manualmente, ahorrándote tiempo y asegurando que se cumplan procesos puntuales. Te mostraré cómo programar estas ejecuciones temporales utilizando los activadores o gatillos de Apps Script, y cómo probar que funcionan correctamente.

1. Crear una función sencilla para enviar correos

Como ejemplo práctico, vamos a crear una función que envíe un correo electrónico a nuestra cuenta para comprobar que el script se ejecutó. Este método es ideal para pruebas porque el correo queda registrado en la bandeja de enviados, confirmando que el proceso se realizó.

function enviarCorreo() {
  MailApp.sendEmail("tu-email@dominio.com"; "Correr"; "Hacer esta función");
}

Esta función usa la clase MailApp para enviar un correo simple a la dirección indicada. Cambia «tu-email@dominio.com» por tu correo real. Guarda el proyecto con un nombre como «Envíos temporales» y luego ejecútala manualmente para autorizar el script y verificar que recibes el correo.

2. Crear activadores (gatillos) para ejecutar la función automáticamente

Los activadores en Apps Script permiten programar la ejecución de funciones en base a eventos, incluyendo el tiempo. Para crear uno, sigue estos pasos:

  • En el editor de secuencias de comandos, ve a Activadores del proyecto activo.
  • Haz clic en Añadir activador.
  • Selecciona la función que quieres ejecutar, en este caso enviarCorreo.
  • En Tipo de evento, elige Según tiempo.
  • Luego selecciona la frecuencia: puede ser una fecha y hora específica, o un temporizador por minutos, horas, días, semanas o meses.

Por ejemplo, para enviar un correo una vez en una fecha y hora específicas, elige esa opción y configura la fecha en formato aaaa-mm-dd hh:mm GMT-5 (ajusta la zona horaria según tu ubicación).

Si quieres enviar correos recurrentes, como diariamente o cada hora, selecciona la opción de temporizador y la frecuencia deseada. También puedes configurar activadores por minutos, pero ten en cuenta que hay limitaciones en la frecuencia mínima.

3. Ejemplo práctico: función para enviar correo diario

function enviarCorreoDiario() {
  MailApp.sendEmail("tu-email@dominio.com"; "Correo diario"; "Este correo se envía todos los días automáticamente.");
}

Después de crear esta función, añade un activador que la ejecute cada día en la hora que prefieras. Así, el correo se enviará automáticamente sin que tengas que hacer nada. Puedes revisar los correos enviados para confirmar que el proceso funciona.

4. Función para contar ejecuciones cada cierto tiempo

Para mostrar un ejemplo distinto, vamos a crear una función que registre en una hoja de cálculo cuántas veces se ha ejecutado y la hora de ejecución. Esto es útil para monitorear tareas periódicas.

function contadorPorMinuto() {
  var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contador");
  if (!hoja) {
    hoja = SpreadsheetApp.getActiveSpreadsheet().insertSheet("Contador");
  }
  var ultimaFila = hoja.getLastRow();
  var contador = 1;
  if (ultimaFila > 0) {
    contador = hoja.getRange(ultimaFila; 1).getValue() + 1;
  }
  hoja.appendRow([contador; new Date()]);
}

Esta función busca una hoja llamada Contador, y si no existe, la crea. Luego añade una fila con el número de ejecución y la fecha y hora actuales. Puedes crear un activador para que se ejecute, por ejemplo, cada 5 minutos y así llevar un registro automático.

5. Monitorear y eliminar activadores

Desde script.google.com puedes ver todos los activadores activos, cuántas veces se han ejecutado y si han tenido errores. Es recomendable activar notificaciones de error para que te avisen si algo falla en la ejecución.

Cuando ya no necesites un activador, simplemente elimínalo desde el mismo panel para evitar ejecuciones innecesarias o gastos de cuota en tu cuenta.

Conclusión

En resumen, programar la ejecución de macros o funciones en Google Apps Script usando activadores temporales es una forma poderosa de automatizar tareas repetitivas. Puedes enviar correos, actualizar datos o ejecutar cualquier función en horarios específicos o de forma recurrente sin intervención manual. Recuerda probar con funciones sencillas como el envío de correos para confirmar que todo funciona antes de implementar tareas más complejas. También monitorea tus activadores y elimina los que ya no uses para mantener tu proyecto limpio y eficiente.

Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.