CertiFlow es una librería de Google Apps Script para la generación y envío masivo de certificados digitales en formato PDF, a partir de una base de datos en Google Sheets y una plantilla de Google Slides. Facilita automatizar todo el proceso, con opciones flexibles para seleccionar filas específicas o rangos, y envío por correo electrónico de manera eficiente.
- Generación masiva de certificados en lotes (por defecto 30 certificados por ejecución).
- Generación basada en filas específicas, separadas por comas sin espacios.
- Envío masivo de certificados por correo electrónico en lotes.
- Envío de certificados por correo electrónico para filas específicas y para rangos definidos (mínimo 5, máximo 30 filas).
- Controla la generación para evitar duplicados, no genera certificados ya existentes.
- Muestra resumen de progreso en pantalla con mensajes claros durante la ejecución.
- Interfaz gráfica amigable integrada en un menú personalizado dentro de Google Sheets.
- Tener un Google Spreadsheet con estos encabezados EXACTOS:
- ID
- primer_nombre
- segundo_nombre
- primer_apellido
- segundo_apellido
- prefijo_documento_identidad
- documento_identidad
- correo_electrónico
- Celular
- tipo-participante
- nombre-evento
- cod-evento
- cod-certtificado
- modalidad
- dur-hr-acad
- fecha-apertura
- fecha-clausura
- texto-fecha
- ubicacion
- URL_Certificado
- La plantilla de Google Slides debe contener los siguientes marcadores encerrado en llaves {}:
{{nombre-participante}} {{di-participante}} {{tipo-participante}} {{nombre-evento}} {{modalidad}} {{horas}} {{texto-fecha}} {{ubicacion}} {{cod-certificado}}
Los formatos están en la carpeta docs.
- La primera ejecución requiere autorización de permisos de Google Apps Script para acceso a Gmail, Drive y Sheets.
- Puede agregarse una página adicional como contraportada para contenido extra en el certificado (como temario o contenido programático).
- Los datos de correos y códigos deben estar correctamente ingresados; la librería no verifica duplicados de registros.
- Clona o descarga el repositorio en tu máquina local.
- Instala clasp y configura sus pre-requisitos (Node.js, npm).
- Ejecuta
clasp loginpara conectar con tu cuenta Google que contiene las hojas de cálculo y Drive a usar. - Ejecuta
clasp create --title "CertiFlow - Archivo único" --type sheets --rootDir ./una vez se inicie sesión. - Usa
clasp pushpara subir el proyecto a tu entorno de Google Apps Script. - Desde tu Google Spreadsheet, al abrir el archivo, verás un menú nuevo llamado Certificados para ejecutar las funciones.
Nota: Pronto se publicará como librería oficial para importarla directamente sin necesidad de descargar.
Al abrir tu Google Spreadsheet, en el menú principal verás una nueva opción:
Certificados
├── Generar certificados
│ ├── Todos
│ └── Por filas
└── Enviar certificados
├── Todos
├── Por filas
└── Por rango de filas
Cada opción abre una interfaz gráfica sencilla para que puedas ingresar los datos necesarios (URL de spreadsheet, plantilla, carpeta Drive, filas o rangos, mensaje personalizado) y ejecutar la acción deseada.
-
Puedes modificar el tamaño de lote por defecto (30 certificados) en el archivo
utils/utils.gs, línea 1:const DEFAULT_BATCH_SIZE = 30;
Se permite ingresar URLs completas para hoja de cálculo, plantilla de Slides o carpeta Drive, la librería extraerá automáticamente los IDs usando expresiones regulares.
src/
├── libs/
│ ├── cert_sender_all.gs # Envío masivo de certificados por correo
│ ├── cert_sender_range.gs # Envío de certificados por rango de filas (5 a 30)
│ ├── cert_sender_rows.gs # Envío de certificados por filas específicas
│ ├── certgen_all.gs # Generación masiva de certificados
│ ├── certgen_rows.gs # Generación por filas específicas
├── utils/
│ └── utils.gs # Funciones utilitarias y configuraciones
├── main.gs # Kernel principal de la librería
├── menu.gs # Manejo del menú y GUI en Sheets
├── modal_cert_all.html # Modal para generar certificados masivos
├── modal_cert_rows.html # Modal para generar certificados por filas
├── modal_send_all.html # Modal para enviar certificados masivos
├── modal_send_range.html # Modal para enviar certificados por rango
├── modal_send_rows.html # Modal para enviar certificados por filas específicas
└── README.md
Este proyecto se distribuye bajo una política de doble licencia:
-
🟦 MIT License: Permite el uso, modificación y distribución del código con mínima restricción, siempre que se incluya el aviso de copyright original.
-
🟥 GNU General Public License v3.0 (GPLv3): Si decides redistribuir este software (modificado o no), estás obligado a hacerlo bajo esta misma licencia, con el código fuente disponible y reconociendo al autor y colaboradores.
Puedes elegir bajo cuál de estas dos licencias usar el proyecto:
- Si quieres integrar este código en un proyecto cerrado, usa la MIT.
- Si deseas que tu versión derivada siga siendo software libre, usa la GPLv3.
Oscar Giovanni Castro Contreras
Ingeniero en Informática
📧 oscargiovanni.castro@gmail.com
📱 +58 414 703 9597
🔗 LinkedIn
🐙 GitHub










