Desde que llegué como Coordinador TIC del centro educativo en el que estoy, una de las cosas que más me llamó la atención fue cómo se gestionaban ciertos procesos. En muchos casos la operativa era muy manual y donde la intervención humana era necesaria en todos los pasos. Además, y esto es en general, se hace un uso de papel desmesurado.
Y aquí sirve de gran ayuda haber trabajado en empresas tecnológicas: crear procesos digitales y la automatización.
En nuestro caso, al usar Google Workspace, quise centrar todas estas mejoras dentro del stack disponible y, para ello, hemos hecho uso de Google Apps Scripts.

¿Qué es Google Apps Script?
Google Apps Script es un entorno de desarrollo basado en JavaScript que nos permite personalizar y automatizar las herramientas de Google Workspace (como Drive, Gmail, Calendar, Docs, Sheets, entre otras). Es gratuito, se ejecuta en la nube y no requiere instalación ni conocimientos avanzados de programación.
Lo interesante para nosotros como docentes o coordinadores TIC es que podemos crear soluciones a medida sin necesidad de grandes conocimientos técnicos ni licencias adicionales. Desde simples funciones personalizadas en Google Sheets hasta flujos de trabajo completos que se ejecutan con un clic o incluso de forma automática.
¿Qué se puede hacer con Google Apps Script?
La potencia de Apps Script reside en su capacidad para conectarse con múltiples servicios. Algunas posibilidades comunes incluyen:
- Automatizar el envío de correos electrónicos personalizados desde una hoja de cálculo.
- Crear eventos en Google Calendar a partir de datos introducidos en un formulario.
- Generar informes o documentos PDF a partir de plantillas y datos.
- Conectar con otras APIs externas (por ejemplo, para enviar mensajes por Telegram o acceder a servicios educativos).
- Crear menús y barras laterales personalizadas en las hojas de cálculo.
- Gestionar permisos y compartir archivos automáticamente.
Además, Apps Script incluye desencadenadores (triggers), que permiten ejecutar scripts de forma automática: por ejemplo, al abrir un archivo, al modificar una celda o cada día a una hora concreta.
Alternativas
En la entrada de hoy hablaremos de Google Apps Script porque, como he mencionado antes, trabajamos sobre Google Workspace. En el caso de usar Microsoft 365 (Office 365), la herramienta a usar podría ser Office Scripts (para Excel) o Power Automate.
Si el centro no usa ninguna de estas soluciones, se podrían realizar implementaciones con las distintas herramientas que ofrece el mercado, desde servicios especializados, programas concretos o, en última instancia, la generación de scripting en Python, PowerShell o JavaScript. En este caso, se requieren conocimientos más avanzados de programación.
Para qué lo usamos en nuestro centro
Como decía, estamos en pleno proceso de digitalización y los usos que le estamos dando ahora mismo son los siguientes (puede haber tantos como distintas necesidades haya):
- Gestión de usuarios
- Gestión de alumnos/profesores a nivel de centro
- Envío de agenda semanal
- Felicitación de cumpleaños
- Gestión del inventario
- Procedimientos varios (notificación de ausencias, gestión préstamos biblioteca, etc.)
Profundicemos un poco en cada uno de ellos:
Gestión de usuarios
Cuando decimos “usuarios” nos referimos a personas con cuenta en el centro (correo). Pueden ser tanto alumnos, como profesores o personal administrativo.
En el caso de alumnos y profesores, tenemos implementado una importación automática de nuestro sistema de gestión educativa a nivel de comunidad autónoma (GestIB).
Durante todo el curso, sobre todo en el arranque, existe un gran movimiento de alumnos y profesores y, dependiendo del tamaño del centro, hacerlo a mano puede resultar muy pesado. Por ello, hemos hecho un script que lee de manera automática un XML (que se exporta del GestIB) y crea, actualiza o elimina a los usuarios afectados.
También nos permite atacar a la API de Google AdminDirectory para obtener información de manera rápida (todos sabemos que la consola de Google puede resultar engorrosa a la hora de obtener distintas informaciones). Podemos cambiar de grupos o unidades organizativas. Además, somos capaces de obtener todos los dispositivos enrolados y vincularlos a los alumnos.
Gestión de alumnos/profesores
En este caso, nos referimos a movimientos de alumnos y profesores que implican distintas acciones, tanto a nivel administrativo, técnico y de comunicación. Por ejemplo:
- Alta de alumnos nuevos
- Baja de alumnos
- Cambio de grupo de alumnos
- Alta de profesores nuevos
- Baja de profesores
Por lo general, estas acciones implican:
- Avisar a administración para que realicen sus acciones
- Notificar al Coordinador TIC (creación automática de ticket en JSM, del que hablamos en nuestra entrada anterior)
- Notificar al resto del claustro
Todo ello, parte de un Formulario de Google y el envío desencadena toda una serie de acciones.
Envío de agenda semanal
En nuestro centro existen una serie de calendarios que ofrecen información al claustro de distintos aspectos: agenda del centro para reuniones o acciones importantes, actividades extraescolares, festivos, etc.
Hemos realizado un proceso en el que, cada viernes, se manda un correo al claustro indicando la Agenda de la semana próxima, donde se incluye los eventos creados en 5 calendarios distintos.
Felicitación de cumpleaños
Esta funcionalidad es casi anecdótica, pero, al venir de la empresa privada donde es muy común, quisimos hacerlo aquí también.
Como en la ficha de cada profesor tenemos su fecha de nacimiento, cuando el sistema detecta que el día actual coincide con el cumpleaños de alguno de ellos, envía un correo de felicitación. Este correo está maquetado para que resulte atractivo y bonito.
Gestión del inventario
En nuestra hoja de cálculo de inventario, al tener la información repartida en distintas pestañas, hacemos uso de funciones para agrupar, obtener informes o realizar notificaciones. Es un apoyo y extra de funcionalidad muy útil.
Otros procedimientos
Otros casos de uso que tenemos implementados son:
- Gestión de la notificación y aprobación de ausencias, bajas y permisos. Esto permite al usuario notificar y a dirección aprobar, quedando registro de todo sin hacer uso de papel y correos que pueden perderse
- Gestión de los préstamos a la biblioteca. El alumno o profesor solicita un libro mediante un Formulario y desde la comisión de Biblioteca se realiza toda la gestión desde una hoja Excel que, además, tiene implementadas las funciones de aprobación o rechazo con las acciones que cada una de ellas implica, sobre todo de comunicación.
Para el próximo curso tenemos en mente procedimentar muchas de las acciones que se realizan en secretaria/administración o acciones que afecten más a los alumnos.
Entrando en terreno técnico
Para hacer todas estas aciones hacemos uso de los servicios (librerías y APIs) que Google pone a disposición. Hablemos de las más importantes y sus principales métodos:
Hojas de cálculo
Para poder interactuar con tus hojas de cálculo, se debe hacer uso del servicio SpreadsheetApp. Aquí están sus principales métodos:
- getActiveSpreadsheet y getActiveSheet: permite obtener el libre y la hoja desde la que se ha ejecutado para poder trabajar con ella
- getUi: para interatuar con la parte gráfica, principalmente para crear menús personalizados
- getRange: para obtener el rango con el que queremos trabajar (obtener datos o modificarlos)
- setValues: escribir los datos de vuelta a la hoja de cálculo
Correo
Unas de las principales acciones que se realizan en todo proceso/automatización es el envío de correos electrónicos. Para ello usaremos el servicio MailApp.
El método para enviar un correo es sendEmail y acepta una gran variedad de parámetros. Principalmente:
- to: a quién va dirigido
- cc: con copia
- bcc: con copia oculta
- subject: asunto
- body o htmlBody: cuerpo del correo (texto plano o html)
- name: el nombre que aparece a quien lo recibe (por defecto el dueño de la cuenta desde la que se envía)
Drive
Podemos hacer uso de nuestro Drive para obtener archivos, moverlos, copiarlos, eliminarlos, etc. Para ello usaremos DriveApp. Aquí están sus principales métodos:
- getFolderById: posicionarnos en una carpeta concreta (para obtener 1 o N ficheros, por ejemplo)
- getFilesByName: a partir del “folder” en el que estemos, obtenemos el o los ficheros deseados para manejarlos
- getFileById: si conocemos el Id de nuestro fichero, lo obtenemos directamente.
Calendario
Para el caso que hemos comentado de obtener los eventos de varios calendarios, hemos hecho uso de CalendarApp. Aquí están sus principales métodos:
- getCalendarById: obtenemos el calendario con el que queremos trabajar
- getEvents: obtención de los eventos en base a unos criterios de búsqueda (fechas, nombres, etc)
Una vez tenemos un evento, podemos:
- getTitle: obtener el título
- getStartTime y getEndTime: obtención de la hora de inicio y fin del evento
- getDescription: obtención de la descripción
Usuarios
Para poder acceder a la información del usuario, debemos hacer uso de AdminDirectory. En este caso, no disponemos de un servicio (capa de alto nivel que ofrece Google para sus APIs), sino que, hacemos uso directo de la API. Al ser un servicio que acceder a datos sensibles, debes activar el acceso a la API desde GCP (Google Cloud Platform) y requiere algo más de conocimientos técnicos. Además, debes ser superadministrador de la plataforma para poder usarlo.
En este caso, podemos acceder a la información de:
- Usuarios: AdminDirectory.Users
- Grupos: AdminDirectory.Groups y AdminDirectory.Members
- Dispositivos: AdminDirectoty.Chromeosdevices
Y, para todos ellos:
- Obtener elementos: list
- Obtener elemento (por Id): get
- Eliminar: remove
- Actualizar: update
Conclusión
Como podéis ver, desde Google Apps Script tenemos todo lo necesario para gestionar nuestro Workspace de forma ágil y sencilla.
Por supuesto, esto se puede complicar todo lo que uno desee. Se pueden crear pequeñas aplicaciones, componentes para Workspace o procesos complejos, pero no creo que sea el objetivo dentro de una gestión estándar de un centro educativo.
Creo que es una manera relativamente sencilla de digitalizar y automatizar muchos de los procesos que requiere un centro educativo. Evidentemente, y como dije en una entrada anterior, no deberíamos crear implementaciones muy complejas porque puede que el día de mañana tú no estés y quien lo herede no tenga tu conocimiento y todo lo realizado sea difícil de mantener o mejorar. De todos modos, y como buena práctica, deberíamos documentar a nivel técnico y funcional todos los procesos que realicemos. Tu yo del futuro y compañeros lo agradecerán.
Me interesa mucho saber si vosotros hacéis uso de Google Apps Script y en qué casos. O si usáis Microsoft u otras soluciones. Creo que puede aportar muchos otros puntos de vista o maneras de hacer las cosas para que cojamos ideas. Tenéis los comentarios más abajo para hacer vuestra aportación.
Y os recuerdo: si os apetece hacer vuestras aportaciones al blog con vuestro conocimiento, experiencia o con cualquier cosa que puede ser interesante, os invito a que me contactéis y vemos de qué manera podéis colaborar y formar parte de la comunidad. El blog está abierto a esas personas con la inquietud de comunicar pero que nunca ha encontrado el espacio desde donde hacerlo. Este es el vuestro, Foro TIC.
Realmente las GAS son una herramienta bastante potente. En nuestro centro las usamos para que cuando se pone un parte (mediante un formulario de Google), se mande una copia de ese parte al propio alumno, a su tutor, y al Jefe de Estudios.
Os dejo un enlace en el que se detalla, paso a paso, cómo hacerlo. Espero que os sirva
https://entrehuelvaygranada.blogspot.com/2020/11/programar-documentos-google-parte-de.html
Gracias por tu comentario y por compartir el link. Le echaremos un ojo 😉