# Fulgencio Alertas Sheets - GLM > Workflow n8n que revisa semanalmente el Banco de Propuestas de Fulgencio, detecta campos vacíos, pendientes o inconsistentes, envía una alerta resumida a Google Chat y guarda el detalle en un Sheet de reporte para revisión operativa. --- ## INFORMACIÓN GENERAL | Campo | Detalle | | ------------------------ | ----------------------------------------- | | Proyecto | Fulgencio Alertas Sheets - GLM | | Área | CDC | | Estado | Producción | | Developer Principal | Isaac Aracena | | IT Manager | Luis Matos | | Product Owner | Máximo Gómez | | Ciclo Shape Up | CDC Fulgencio V2.0 | | Repositorio Gitea | `fulgencio-alertas-sheets-glm` | | Workflow n8n | Fulgencio Alertas Sheets - GLM | | Estado del workflow | Activo | | Zona horaria | America/Santo_Domingo | --- ## OBJETIVO ### Problema que resuelve El Banco de Propuestas de Fulgencio depende de información estructurada para que el asistente pueda responder correctamente sobre propuestas, clientes, marcas, países, canales, enlaces y descripciones. Cuando una propuesta queda con campos vacíos, valores `PENDIENTE`, `SIN PAIS DEFINIDO`, `OTRO`, `N/A`, `NULL`, `UNDEFINED` o datos ubicados en columnas incorrectas, Fulgencio puede perder precisión en sus respuestas o dejar de encontrar propuestas relevantes. Antes de este flujo, la revisión de esos pendientes dependía de inspección manual del Google Sheet, lo que podía provocar retrasos, errores no detectados y acumulación de datos incompletos. ### Solución implementada Este workflow automatiza la revisión semanal del Banco de Propuestas de Fulgencio. El flujo: * Lee el Google Sheet del Banco de Propuestas. * Revisa columnas clave de negocio. * Detecta campos vacíos, pendientes o inválidos. * Agrupa los pendientes por fila y por columna. * Envía una alerta resumida al Google Chat de alertas. * Guarda el detalle completo en un Sheet de reporte. * Permite al equipo CDC / IT revisar y corregir los datos pendientes. ### Usuarios / Beneficiarios | Usuario | Beneficio | | --------------------------------------- | ---------------------------------------------------------- | | Equipo CDC | Identifica propuestas con datos incompletos o pendientes. | | Equipo IT | Monitorea la calidad de datos que alimenta Fulgencio. | | Usuarios de Fulgencio | Obtienen mejores respuestas gracias a datos más completos. | --- ## ARQUITECTURA ### Diagrama de flujo ```txt [Schedule Trigger semanal] ↓ [Sheets - Leer propuestas] ↓ [Code - Detectar pendientes] ↓ [IF - Hay pendientes] ├── true → [HTTP Request - Enviar alerta] │ └── true → [Code - Expandir reporte pendientes] ↓ [Sheets - Guardar detalle pendientes] ``` ### Stack tecnológico | Componente | Tecnología | Propósito | | ----------------- | ------------------------ | ------------------------------------------- | | Automatización | n8n | Orquestación del flujo | | Fuente principal | Google Sheets | Banco de Propuestas de Fulgencio | | Reporte operativo | Google Sheets | Registro detallado de pendientes | | Alertas | Google Chat Webhook | Envío de tarjeta/resumen al chat de alertas | | Versionado | Gitea | Backup del workflow y documentación | ### Integraciones externas | Sistema | Tipo de integración | Datos que fluyen | | --------------------------------- | ---------------------- | -------------------------------------- | | Banco de Propuestas de Fulgencio | Google Sheets OAuth | Lectura de propuestas y metadata | | Fulgencio - Reporte de Pendientes | Google Sheets OAuth | Escritura del detalle de pendientes | | Google Chat | Webhook / HTTP Request | Envío de alerta resumida | | n8n Executions | Interno n8n | Logs, errores y auditoría de ejecución | | Gitea | Git / backup | Export del workflow y README | --- ## FUENTES DE DATOS ### Google Sheet leído | Campo | Detalle | | --------- | -------------------------------------------------------------- | | Documento | BANCO DE PROPUESTAS DE CDC PARA FULGENCIO FUMADO | | Hoja | propuestas | | Uso | Fuente principal que se revisa para detectar campos pendientes | ### Google Sheet de reporte | Campo | Detalle | | --------- | ------------------------------------------------------------------------------- | | Documento | Fulgencio - Reporte de Pendientes | | Hoja | pendientes_revision | | Uso | Guarda el detalle fila por fila y campo por campo de los pendientes encontrados | --- ## REGLAS DE NEGOCIO ### Columnas validadas El flujo valida las siguientes columnas del Banco de Propuestas: * `NOMBRE` * `TIPO DE ACCION` * `CLIENTE` * `MARCA` * `PAIS` * `CANAL` * `ETIQUETAS` * `AÑO` * `Enlace a la propuesta` * `Descripcion` ### Columnas no validadas La columna `APROBADA` no se valida en este flujo porque el equipo puede completarla manualmente más adelante. ### Valores considerados pendientes o inválidos Un campo se considera pendiente cuando: * Está vacío. * Tiene valor `PENDIENTE`. * Tiene valor `UNDEFINED`. * Tiene valor `NULL`. * Tiene valor `N/A`. * Tiene valor `SIN PAIS DEFINIDO`. * Contiene `OTRO`. * Tiene un valor de aprobación en una columna incorrecta, por ejemplo: * `APROBADA` * `NO APROBADA` * `PENDIENTE DE APROBACION` ### Reglas de alerta * Si no hay pendientes, el flujo devuelve un mensaje interno de éxito y no envía alerta de revisión. * Si hay pendientes, envía una tarjeta resumida al Google Chat configurado. * Si hay más de 40 filas pendientes, la alerta muestra solo las primeras 40 filas prioritarias. * El detalle completo se guarda en el Sheet de reporte. * Las filas prioritarias se ordenan por cantidad de campos pendientes. * El resumen de columnas muestra las columnas con más pendientes. ### Reglas de seguridad * No commitear credenciales, tokens ni URLs privadas de webhooks en documentación pública. * El webhook de Google Chat debe gestionarse desde n8n o desde el vault interno. * Si se rota el webhook, actualizar el nodo en n8n y exportar nuevamente el workflow. * No exponer tokens de Google Chat en README, tickets públicos ni capturas compartidas. --- ## CONFIGURACIÓN Y SETUP ### Prerrequisitos * Acceso a n8n en el entorno GLM. * Acceso al Google Sheet `BANCO DE PROPUESTAS DE CDC PARA FULGENCIO FUMADO`. * Acceso al Google Sheet `Fulgencio - Reporte de Pendientes`. * Credencial `Google Sheets account 2` configurada en n8n. * Webhook de Google Chat configurado en el nodo `HTTP Request - Enviar alerta`. * Permisos para importar/exportar workflows en n8n. * Acceso al repositorio Gitea `fulgencio-alertas-sheets-glm`. ### Credenciales / variables | Credencial / Variable | Descripción | Dónde se obtiene | | --------------------- | ----------------------------------------------------------- | ----------------- | | Google Sheets OAuth | Permite leer y escribir en los Sheets del flujo | n8n Credentials | | Google Chat Webhook | Permite enviar alertas al espacio de Google Chat | Google Chat / n8n | | SHEET_URL | Link del Banco de Propuestas usado en el botón de la alerta | Google Sheets | | N8N_WORKFLOW_ID | ID interno del workflow en n8n | n8n | | ERROR_WORKFLOW_ID | Workflow de error configurado para fallos | n8n | > Nunca commitear credenciales al repo. Todas las keys, tokens y webhooks deben mantenerse en n8n Credentials, variables seguras o vault interno GLM. ### Esquema de base de datos No aplica. Este flujo no usa Supabase/Postgres. El almacenamiento del detalle de pendientes se realiza en Google Sheets. ### Instalación / Deploy ```bash git clone https://git.digitalcompass.agency/Isaac_Aracena/fulgencio-alertas-sheets-glm.git # En n8n: # 1. Abrir n8n. # 2. Importar el JSON del workflow. # 3. Revisar credencial de Google Sheets. # 4. Revisar webhook de Google Chat. # 5. Ejecutar prueba manual. # 6. Validar que lea el Banco de Propuestas. # 7. Validar que escriba en Fulgencio - Reporte de Pendientes. # 8. Activar el workflow. ``` --- ## CÓMO FUNCIONA ### Flujo paso a paso 1. **Schedule Trigger** * Ejecuta el flujo automáticamente cada viernes a las 9:30 AM, hora de República Dominicana. 2. **Sheets - Leer propuestas** * Lee todas las filas de la hoja `propuestas` del Banco de Propuestas de Fulgencio. 3. **Code - Detectar pendientes** * Revisa las columnas clave. * Detecta valores vacíos, pendientes o inválidos. * Agrupa pendientes por fila y por columna. * Construye el payload para Google Chat. * Prepara las filas que se guardarán en el reporte de pendientes. 4. **IF - Hay pendientes** * Si `hay_pendientes = true`, continúa con alerta y guardado de detalle. * Si `hay_pendientes = false`, el flujo termina sin enviar alerta. 5. **HTTP Request - Enviar alerta** * Envía una tarjeta al Google Chat de alertas con: * Fecha de revisión. * Total de campos pendientes. * Columnas con más pendientes. * Primeras filas prioritarias. * Botón para abrir el Banco de Propuestas. 6. **Code - Expandir reporte pendientes** * Convierte el arreglo de pendientes en items individuales para poder guardarlos en Google Sheets. 7. **Sheets - Guardar detalle pendientes** * Guarda cada pendiente en la hoja `pendientes_revision`. ### Schedule / Trigger | Trigger | Frecuencia | Descripción | | ---------------- | ------------------------ | -------------------------------------------------------------- | | Schedule Trigger | Semanal, viernes 9:30 AM | Revisa el Banco de Propuestas y alerta si hay datos pendientes | | Ejecución manual | Bajo demanda | Permite probar el flujo desde n8n | --- ## OUTPUTS ### Alerta en Google Chat Cuando hay pendientes, el flujo envía una tarjeta con: * Título: `Datos Pendientes - Fulgencio` * Fecha de revisión. * Cantidad de campos pendientes. * Columnas con más pendientes. * Filas prioritarias. * Botón para abrir el Banco de Propuestas. ### Reporte en Google Sheets Cada pendiente se guarda con estos campos: | Campo | Descripción | | ------------------ | ---------------------------------------- | | fecha_revision | Fecha visible de revisión | | fecha_revision_iso | Fecha ISO de revisión | | fila_origen | Fila original en el Banco de Propuestas | | propuesta | Nombre de la propuesta o archivo | | campo | Campo pendiente | | valor_actual | Valor encontrado | | motivo | Motivo por el que se considera pendiente | | enlace_propuesta | Link de la propuesta si existe | --- ## TESTING ### Casos de prueba mínimos | Caso | Input | Output esperado | Estado | | -------------------------------------- | ----------------------------------------------- | ------------------------------------- | ----------- | | Sin pendientes | Banco completo y limpio | No envía alerta de revisión | A completar | | Campos vacíos | Fila con `MARCA`, `PAIS` o `Descripcion` vacíos | Envía alerta y guarda detalle | A completar | | Valor `PENDIENTE` | Campo con texto `PENDIENTE` | Detecta pendiente | A completar | | Valor `SIN PAIS DEFINIDO` | Campo `PAIS` con ese valor | Detecta pendiente | A completar | | Valor `OTRO` | Campo con opción `OTRO` | Detecta revisión necesaria | A completar | | Valor aprobación en columna incorrecta | Campo distinto de APROBADA con `APROBADA` | Detecta inconsistencia | A completar | | Reporte Sheets | Hay pendientes válidos | Agrega filas en `pendientes_revision` | A completar | | Chat alerta | Hay pendientes válidos | Envía tarjeta a Google Chat | A completar | | Error de permisos | Sheet sin acceso | Error visible en n8n Executions | A completar | ### Checklist de prueba rápida * [ ] Ejecutar workflow manualmente. * [ ] Confirmar lectura del Banco de Propuestas. * [ ] Confirmar detección correcta de pendientes. * [ ] Confirmar que `APROBADA` no se valide. * [ ] Confirmar envío de tarjeta a Google Chat. * [ ] Confirmar escritura en `pendientes_revision`. * [ ] Revisar n8n Executions. * [ ] Exportar JSON actualizado. * [ ] Commit en Gitea. --- ## ERRORES CONOCIDOS Y TROUBLESHOOTING | Error | Causa probable | Solución | | ---------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | | 401 Unauthorized | Credencial de Google Sheets vencida | Renovar credencial en n8n | | 403 Forbidden | La cuenta de n8n no tiene acceso al Sheet | Compartir el Sheet con la cuenta correcta | | Error en Google Chat | Webhook inválido o rotado | Actualizar webhook en el nodo HTTP | | No se guarda detalle | Permisos insuficientes en Sheet de reporte | Validar acceso al documento `Fulgencio - Reporte de Pendientes` | | Alerta no llega | URL de webhook incorrecta o espacio eliminado | Revisar configuración del Google Chat Webhook | | Demasiadas alertas | Muchos campos pendientes o data sin limpiar | Revisar Banco de Propuestas y corregir datos | | Output vacío | No hay pendientes o no hay filas válidas | Revisar que el banco tenga datos en columnas clave | | Error por columna renombrada | Cambió el encabezado del Sheet | Actualizar `columnasAValidar` en el Code node | | Duplicados en reporte | El flujo se ejecutó varias veces sin limpieza previa | Filtrar por fecha o limpiar duplicados manualmente si aplica | --- ## MONITOREO * Revisar n8n Executions después de cada ejecución programada. * Verde = flujo correcto. * Rojo = fallo que requiere revisión. * Revisar el Google Chat de alertas cada viernes. * Revisar el Sheet `Fulgencio - Reporte de Pendientes`. * Validar si el número de pendientes baja luego de correcciones. * Si el flujo falla, revisar el workflow de error configurado en n8n. * Mantener el export actualizado en Gitea. ### Output esperado normal El flujo debe: * Ejecutarse semanalmente. * Leer correctamente el Banco de Propuestas. * Enviar alerta solo si existen pendientes. * Guardar detalle de pendientes cuando existan. * Terminar sin errores. * Mantener registro en n8n Executions. --- ## ESTRUCTURA DEL REPOSITORIO ```txt /fulgencio-alertas-sheets-glm |-- README.md |-- fulgencio-alertas-sheets-glm.json |-- /docs | └-- [capturas o documentación adicional si aplica] |-- CHANGELOG.md └-- DECISIONS.md ``` > Si el repo solo contiene `README.md` y el JSON del workflow, mantener esta estructura simple. Si el proyecto crece, agregar `/docs`, `CHANGELOG.md` y `DECISIONS.md`. --- ## CHANGELOG ### 2026-06 — v1.0 * Creación del workflow `Fulgencio Alertas Sheets - GLM`. * Lectura del Banco de Propuestas. * Detección de campos pendientes. * Envío de alerta a Google Chat. * Registro del detalle en `Fulgencio - Reporte de Pendientes`. * Backup del workflow en Gitea. * Documentación inicial del README. --- ## DECISIONS LOG ### DEC-001 — Usar revisión programada semanal * **Fecha:** 2026-06 * **Contexto:** El Banco de Propuestas requiere revisión periódica de calidad de datos. * **Opciones consideradas:** Revisión manual vs revisión automatizada. * **Decisión:** Ejecutar revisión semanal automatizada. * **Razón:** Reduce trabajo manual y mantiene visibilidad constante sobre pendientes. ### DEC-002 — No validar la columna APROBADA * **Fecha:** 2026-06 * **Contexto:** La aprobación puede completarse manualmente después del registro inicial. * **Opciones consideradas:** Validar `APROBADA` como obligatoria vs excluirla. * **Decisión:** Excluir `APROBADA` de la validación. * **Razón:** Evita alertas innecesarias sobre un campo que el equipo completa posteriormente. ### DEC-003 — Guardar detalle completo en Sheet separado * **Fecha:** 2026-06 * **Contexto:** Una alerta de chat puede saturarse si contiene demasiados pendientes. * **Opciones consideradas:** Enviar todo por chat vs guardar detalle en Sheet. * **Decisión:** Enviar resumen por Chat y guardar detalle completo en Google Sheets. * **Razón:** Mantiene el mensaje limpio y permite análisis posterior. ### DEC-004 — Mostrar solo filas prioritarias en el chat * **Fecha:** 2026-06 * **Contexto:** Puede haber muchas filas con pendientes. * **Decisión:** Mostrar hasta 40 filas prioritarias. * **Razón:** Evita mensajes excesivamente largos y facilita revisión inicial. --- ## CONTACTOS DEL PROYECTO | Rol | Nombre | | ------------- | ------------- | | Product Owner | Máximo Gómez | | IT Manager | Luis Matos | | Developer | Isaac Aracena | --- ## DEFINITION OF DONE * [ ] Workflow activo en n8n. * [ ] Schedule semanal validado. * [ ] Lectura del Banco de Propuestas validada. * [ ] Validación de columnas correcta. * [ ] Columna `APROBADA` excluida de la validación. * [ ] Alerta de Google Chat probada. * [ ] Registro en `Fulgencio - Reporte de Pendientes` probado. * [ ] Casos de prueba básicos ejecutados. * [ ] Errores visibles en n8n Executions. * [ ] Workflow exportado y subido a Gitea. * [ ] README completo y actualizado. * [ ] Link del repo agregado al Kan.bn de CDC Fulgencio V2.0. * [ ] Validado por IT. * [ ] Validado por responsable del proceso si aplica. --- ## NOTAS OPERATIVAS * Este repositorio contiene el backup/documentación del workflow n8n. * No debe contener credenciales ni tokens. * Si se cambia el Google Sheet principal, actualizar el nodo `Sheets - Leer propuestas`. * Si se cambia el Sheet de reporte, actualizar el nodo `Sheets - Guardar detalle pendientes`. * Si se cambia el espacio de Google Chat, actualizar el nodo `HTTP Request - Enviar alerta`. * Si se agregan nuevas columnas obligatorias al Banco de Propuestas, actualizar `columnasAValidar`. * Si un encabezado del Sheet cambia, el flujo puede dejar de detectar correctamente ese campo. ---