Files
2026-06-25 03:21:04 +00:00

33 KiB

Tablero CDC - Refrescar Banco Fulgencio Diario

Workflow n8n que revisa diariamente propuestas sincronizadas desde Tablero CDC hacia el Banco de Propuestas de Fulgencio, detecta archivos modificados en Google Drive, reanaliza el contenido con Gemini y actualiza metadata clave para mejorar las búsquedas de FulgencioChat.


INFORMACIÓN GENERAL

Campo Detalle
Proyecto Tablero CDC - Refrescar Banco Fulgencio Diario
Á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 tablero-cdc-refrescar-banco-fulgencio-diario
Workflow n8n Tablero CDC - Refrescar Banco Fulgencio Diario
Estado del workflow Activo
Canal / Fuente Tablero CDC + Google Sheets + Google Drive
Frecuencia Diario, 23:00, según zona horaria configurada en n8n

OBJETIVO

Problema que resuelve

El Banco de Propuestas de Fulgencio se alimenta con propuestas provenientes de distintas fuentes, incluyendo propuestas sincronizadas desde Tablero CDC. Sin un proceso de refresco, una propuesta que fue modificada en Drive después de su sincronización inicial podría quedarse con metadata desactualizada en el banco.

Esto afecta la calidad de las respuestas de FulgencioChat, porque el asistente depende de campos como nombre, tipo de acción, canal, etiquetas, descripción y táctica promocional para encontrar y explicar propuestas correctamente.

Además, algunas propuestas pueden venir desde Tablero CDC como Google Slides nativo o como archivos PPTX. Sin automatización, habría que revisar manualmente cuáles archivos cambiaron, exportar contenido, analizarlo y actualizar el banco.

Solución implementada

Este workflow ejecuta una revisión diaria sobre el Banco de Propuestas de Fulgencio y procesa únicamente las filas que vienen desde Tablero CDC.

El flujo:

  • Lee el Banco de Propuestas de Fulgencio.
  • Identifica filas cuyo origen es Tablero CDC.
  • Valida que tengan tablero_sync_key, tablero_project_id y enlace de propuesta.
  • Obtiene metadata del archivo en Google Drive.
  • Compara drive_modified_time contra ultimo_refresco_ia.
  • Decide si la propuesta debe refrescarse.
  • Exporta contenido si es Google Slides nativo.
  • Convierte PPTX a Google Slides si aplica y si pesa 100 MB o menos.
  • Reanaliza el contenido con Gemini.
  • Normaliza campos del banco.
  • Actualiza la fila existente mediante tablero_sync_key.
  • Marca errores o casos de revisión cuando no puede procesar.

Usuarios / Beneficiarios

Usuario Beneficio
Equipo CDC Mantiene las propuestas de Tablero CDC actualizadas en el banco de Fulgencio.
Equipo creativo Mejora la calidad de búsquedas por tipo de acción, canal, etiquetas y descripción.
Equipo IT Automatiza el refresco sin revisar manualmente cada archivo.
FulgencioChat V3 Consulta datos más actualizados y mejor normalizados.
Usuarios internos GLM Reciben mejores respuestas al buscar propuestas sincronizadas desde Tablero CDC.

ARQUITECTURA

Diagrama de flujo

[Schedule Trigger diario 23:00]
        ↓
[Sheets - Leer Banco Fulgencio]
        ↓
[Code - Filtrar filas Tablero CDC]
        ↓
[Loop - Filas Banco Fulgencio]
        ↓
[IF - Tiene file_id?]
        ├── No → [Code - Marcar sin file_id]
        │             ↓
        │        [Google Sheets - Upsert Banco Fulgencio]
        │
        └── Sí → [HTTP - Obtener metadata Drive]
                    ↓
              [Code - Evaluar refresco]
                    ↓
              [IF - Debe refrescar?]
                    ├── No → [Loop - siguiente fila]
                    │
                    └── Sí → [IF - Es Google Slides nativo?]
                                ├── Sí → [HTTP - Exportar Slides TXT]
                                │
                                └── No → [IF - PPTX pesa <= 100MB?]
                                            ├── Sí → [HTTP - Convertir PPTX con Apps Script]
                                            │          ↓
                                            │     [Code - Preparar ID convertido]
                                            │          ↓
                                            │     [IF - Conversion OK?]
                                            │          ↓
                                            │     [HTTP - Exportar Slides TXT]
                                            │
                                            └── No → [Code - Marcar PPTX demasiado pesado]

[HTTP - Exportar Slides TXT]
        ↓
[Code - Preparar texto IA Refresco]
        ↓
[IF - Tiene contenido?]
        ├── Sí → [Gemini - Reanalizar contenido Slides]
        │          ↓
        │     [Code - Normalizar respuesta refresco]
        │          ↓
        │     [Google Sheets - Upsert Banco Fulgencio]
        │
        └── No → [Code - Marcar sin contenido]
                   ↓
              [Google Sheets - Upsert Banco Fulgencio]

[Upsert Banco Fulgencio]
        ↓
[Loop - siguiente fila]

Stack tecnológico

Componente Tecnología Propósito
Automatización n8n Orquestación del refresco diario
Trigger Schedule Trigger Ejecutar el flujo automáticamente
Fuente principal Google Sheets Banco de Propuestas de Fulgencio
Archivos fuente Google Drive Obtener metadata y contenido de propuestas
Conversión PPTX Google Apps Script Convertir PPTX a Google Slides cuando aplica
Análisis IA Gemini Reanalizar contenido de presentaciones
Normalización Code node JavaScript Normalizar tipo de acción, canal, tags y descripción
Actualización Google Sheets appendOrUpdate Actualizar filas por tablero_sync_key
Versionado Gitea Backup del workflow y documentación

Integraciones externas

Sistema Tipo de integración Datos que fluyen
Google Sheets OAuth Lee y actualiza el Banco de Propuestas de Fulgencio
Google Drive OAuth / HTTP API Obtiene metadata, exporta Google Slides y accede a archivos
Google Apps Script HTTP Request Convierte PPTX a Google Slides
Gemini API Reanaliza contenido exportado de presentaciones
n8n Workflow automation Orquestación, logs y manejo de ramas
Gitea Git / backup Export del workflow y README

FUENTES Y DESTINOS

Fuente principal

Campo Detalle
Documento BANCO DE PROPUESTAS DE CDC PARA FULGENCIO FUMADO
Hoja propuestas
Uso Banco principal que consulta Fulgencio
Lectura Desde fila 465
Filtro operativo Filas con origen Tablero CDC

Archivo fuente de propuesta

Campo Detalle
Fuente Google Drive
Identificador file_id o ID extraído desde Enlace a la propuesta
Uso Obtener metadata, fecha de modificación y contenido
Tipos soportados Google Slides nativo y PPTX convertible

Destino de actualización

Campo Detalle
Documento BANCO DE PROPUESTAS DE CDC PARA FULGENCIO FUMADO
Hoja propuestas
Operación appendOrUpdate
Matching column tablero_sync_key

REGLAS DE NEGOCIO

Reglas de selección de filas

El flujo solo debe procesar filas que cumplan estas condiciones:

  • tablero_origen = Tablero CDC
  • Tiene tablero_sync_key
  • Tiene tablero_project_id
  • Tiene Enlace a la propuesta
  • Tiene file_id o se puede extraer un ID de Google Drive desde el enlace

Si una fila no tiene file_id, se marca con:

refresh_status = SIN_FILE_ID
requiere_revision = true
motivos_revision incluye sin_file_id

Reglas de refresco

Una fila debe refrescarse cuando:

  • Nunca fue refrescada por IA.
  • El archivo en Google Drive fue modificado después del último refresco.
  • El drive_modified_time cambió respecto al valor guardado previamente.

Una fila no debe refrescarse cuando:

  • El archivo no ha cambiado.
  • No se pudo obtener una fecha válida de modificación.
  • La fila no pertenece a Tablero CDC.
  • Faltan datos mínimos para identificar el archivo.

Reglas para Google Slides nativo

Si el archivo es una presentación nativa de Google Slides:

  • Se exporta a texto plano.
  • El texto se usa como input para Gemini.
  • Si el texto exportado tiene contenido suficiente, se reanaliza.
  • Si no tiene contenido suficiente, se marca como SIN_CONTENIDO.

Reglas para PPTX

Si el archivo no es Google Slides nativo:

  • Se valida el tamaño del archivo.
  • Si pesa 100 MB o menos, se intenta convertir a Google Slides usando Apps Script.
  • Si pesa más de 100 MB, se marca como PPTX_DEMASIADO_PESADO.
  • Si la conversión falla, se marca como ERROR_CONVERT_PPTX.
  • Si la conversión funciona, se exporta el Google Slides convertido a texto y se analiza.

Reglas de IA

Gemini debe usar el contenido real exportado de la presentación.

Gemini puede actualizar:

  • nombre_propuesta
  • tipo_accion
  • canal
  • tags
  • descripcion
  • tactica_promocional

Gemini no debe cambiar:

  • País.
  • Cliente.
  • Marca.
  • Enlace de propuesta.
  • Identificadores de Tablero CDC.

Gemini no debe determinar:

  • APROBADA
  • AMBIENTE DE COMPRA (RE)

Por regla del flujo:

APROBADA = PENDIENTE DE APROBACION
AMBIENTE DE COMPRA (RE) = PENDIENTE

Reglas de normalización

El flujo normaliza valores devueltos por Gemini contra listas permitidas.

Ejemplos de normalización:

Entrada posible Salida esperada
PDV ACTIVACION EN PDV / PDV según campo
Punto de venta ACTIVACION EN PDV / PDV según campo
Sampling SAMPLING - MUESTREO
Degustacion DEGUSTACIÓN
Landing LANDING PAGE
Material POP POP o PUNTO DE VENTA según campo
Juego digital JUEGO DIGITAL / JUEGOS DIGITALES según campo

Si un valor no puede normalizarse:

  • Se usa PENDIENTE si falta información.
  • Se usa OTRO si no coincide con listas permitidas.
  • Se marca requiere_revision = true.

Reglas de actualización

La actualización del banco se hace por:

tablero_sync_key

El flujo actualiza campos como:

  • NOMBRE
  • TIPO DE ACCION
  • CANAL
  • TÁCTICA PROMOCIONAL
  • ETIQUETAS
  • Descripcion
  • drive_modified_time
  • ultimo_refresco_ia
  • refresh_status
  • refresh_attempts
  • converted_google_slides_id
  • converted_google_slides_link
  • requiere_revision
  • motivos_revision

Reglas de errores controlados

El flujo no debe detener todo el proceso por una fila problemática.

Si una fila falla, debe marcarla con refresh_status correspondiente y continuar con la siguiente fila.

Estados posibles:

OK
SIN_FILE_ID
SIN_CONTENIDO
ERROR_METADATA_DRIVE
ERROR_EXPORT_SLIDES
ERROR_CONVERT_PPTX
PPTX_DEMASIADO_PESADO
CONVERTIDO_PPTX

Reglas de seguridad

  • No commitear credenciales ni tokens en Gitea.
  • No documentar el token real del Apps Script.
  • No documentar credenciales OAuth ni IDs sensibles si no son necesarios.
  • Si se rota el Apps Script o las credenciales, actualizar solo n8n/vault.
  • El README debe explicar la arquitectura, no exponer secretos.

CONFIGURACIÓN Y SETUP

Prerrequisitos

  • Acceso a n8n en el entorno GLM.
  • Acceso al workflow Tablero CDC - Refrescar Banco Fulgencio Diario.
  • Acceso al Google Sheet BANCO DE PROPUESTAS DE CDC PARA FULGENCIO FUMADO.
  • Acceso de Google Drive a los archivos de propuestas.
  • Credencial Google Sheets configurada en n8n.
  • Credencial Google Drive configurada en n8n.
  • Credencial Gemini configurada en n8n.
  • Endpoint de Apps Script activo para conversión PPTX.
  • Permiso sobre la carpeta donde se guardan conversiones temporales o Slides convertidos.
  • Acceso al repositorio Gitea tablero-cdc-refrescar-banco-fulgencio-diario.

Credenciales / variables

Credencial / Variable Descripción Dónde se obtiene
GOOGLE_SHEETS_OAUTH Permite leer y actualizar el Banco de Propuestas n8n Credentials
GOOGLE_DRIVE_OAUTH Permite obtener metadata y exportar archivos de Drive n8n Credentials
GEMINI_API Permite reanalizar contenido de presentaciones n8n Credentials
APPS_SCRIPT_CONVERT_URL Endpoint para convertir PPTX a Google Slides Google Apps Script / n8n
APPS_SCRIPT_CONVERT_TOKEN Token interno para ejecutar conversión Vault / n8n
BANCO_PROPUESTAS_SHEET_ID ID del banco de propuestas Google Sheets
CONVERTED_SLIDES_FOLDER_ID Carpeta destino para conversiones temporales Google Drive
ERROR_WORKFLOW_ID Workflow de error configurado si aplica n8n

Nunca commitear credenciales al repo. Todas las keys, tokens, URLs sensibles, IDs privados 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. La fuente y destino principal es Google Sheets. Google Drive se utiliza para metadata, exportación y conversión de presentaciones.

Instalación / Deploy

git clone https://git.digitalcompass.agency/Isaac_Aracena/tablero-cdc-refrescar-banco-fulgencio-diario.git

# En n8n:
# 1. Abrir n8n.
# 2. Importar el JSON del workflow.
# 3. Revisar credencial de Google Sheets.
# 4. Revisar credencial de Google Drive.
# 5. Revisar credencial de Gemini.
# 6. Revisar URL/token de Apps Script en variables seguras.
# 7. Validar Sheet del Banco de Propuestas.
# 8. Validar que existan columnas tablero_sync_key, tablero_project_id y tablero_origen.
# 9. Ejecutar prueba manual con una fila controlada.
# 10. Revisar n8n Executions.
# 11. Activar el workflow.

CÓMO FUNCIONA

Flujo paso a paso

  1. Schedule Trigger

    • Ejecuta el workflow diariamente a las 23:00, según la zona horaria configurada en n8n.
  2. Sheets - Leer Banco Fulgencio

    • Lee el Banco de Propuestas de Fulgencio desde la hoja propuestas.
  3. Code - Filtrar filas Tablero CDC

    • Revisa filas del banco.
    • Identifica filas que vienen desde Tablero CDC.
    • Prepara datos como file_id_refresco, proposal_url_refresco y refresh_attempts_actual.
  4. Loop - Filas Banco Fulgencio

    • Procesa las filas una por una.
  5. IF - Tiene file_id?

    • Si la fila tiene archivo asociado, continúa.
    • Si no tiene archivo, marca la fila como SIN_FILE_ID.
  6. HTTP - Obtener metadata Drive

    • Consulta Google Drive para obtener:

      • ID.
      • Nombre.
      • MIME type.
      • Fecha de modificación.
      • Link.
      • Tamaño.
  7. Code - Evaluar refresco

    • Compara la fecha de modificación del archivo contra ultimo_refresco_ia.
    • Decide si se debe reanalizar la propuesta.
    • Define should_refresh y refresh_reason.
  8. IF - Debe refrescar?

    • Si no hay cambios, pasa a la siguiente fila.
    • Si hay cambios, continúa con exportación o conversión.
  9. IF - Es Google Slides nativo?

    • Si es Google Slides, exporta directamente a texto.
    • Si no es Google Slides, revisa si debe convertir PPTX.
  10. IF - PPTX pesa <= 100MB?

    • Si el archivo pesa 100 MB o menos, intenta convertirlo.
    • Si pesa más, marca PPTX_DEMASIADO_PESADO.
  11. HTTP - Convertir PPTX con Apps Script

    • Convierte PPTX a Google Slides.
    • Puede reemplazar una conversión previa si existe.
  12. Code - Preparar ID convertido

    • Toma el ID del Google Slides convertido.
    • Prepara la fila para exportar el contenido.
  13. HTTP - Exportar Slides TXT

    • Exporta la presentación a texto plano.
  14. Code - Preparar texto IA Refresco

    • Limpia el texto exportado.
    • Valida si hay contenido suficiente.
    • Limita el contenido enviado a Gemini.
  15. IF - Tiene contenido?

    • Si hay contenido, llama a Gemini.
    • Si no hay contenido suficiente, marca SIN_CONTENIDO.
  16. Gemini - Reanalizar contenido Slides

    • Extrae metadata estructurada:

      • nombre_propuesta
      • tipo_accion
      • canal
      • tags
      • descripcion
      • tactica_promocional
  17. Code - Normalizar respuesta refresco

    • Normaliza valores.
    • Aplica listas permitidas.
    • Marca revisión si hay valores dudosos.
    • Prepara el objeto final para actualizar el banco.
  18. Google Sheets - Upsert Banco Fulgencio

    • Actualiza la fila usando tablero_sync_key.
    • Guarda estado de refresco, metadata y campos actualizados.
  19. Loop - Filas Banco Fulgencio

    • Continúa con la siguiente fila hasta terminar.

Schedules / Triggers

Trigger Frecuencia Descripción
Schedule Trigger Diario, 23:00 Revisa propuestas de Tablero CDC y refresca metadata si los archivos cambiaron
Ejecución manual Bajo demanda Permite probar el flujo desde n8n

OUTPUTS

Actualización en Banco de Propuestas

El flujo actualiza campos como:

Campo Descripción
NOMBRE Nombre actualizado o confirmado de la propuesta
TIPO DE ACCION Tipo de acción normalizado
CANAL Canal normalizado
TÁCTICA PROMOCIONAL Táctica promocional inferida
ETIQUETAS Tags normalizados para búsqueda
Descripcion Descripción profesional generada desde el contenido
drive_modified_time Última fecha de modificación del archivo
ultimo_refresco_ia Fecha en que se hizo el refresco
refresh_status Estado del refresco
refresh_attempts Cantidad de intentos acumulados
converted_google_slides_id ID de presentación convertida si aplica
converted_google_slides_link Link de presentación convertida si aplica
requiere_revision Indica si debe revisarse manualmente
motivos_revision Razones de revisión

Estados esperados

OK
SIN_FILE_ID
SIN_CONTENIDO
ERROR_METADATA_DRIVE
ERROR_EXPORT_SLIDES
ERROR_CONVERT_PPTX
PPTX_DEMASIADO_PESADO
CONVERTIDO_PPTX

TESTING

Casos de prueba mínimos

Caso Input Output esperado Estado
Caso feliz Google Slides Fila Tablero CDC con Google Slides modificado Exporta texto, analiza con Gemini y actualiza banco A completar
Sin cambios Archivo no modificado desde último refresco No llama Gemini y pasa a siguiente fila A completar
Sin file_id Fila sin file_id ni ID extraíble Marca SIN_FILE_ID y requiere revisión A completar
Metadata Drive falla Drive no responde o archivo sin permiso Marca ERROR_METADATA_DRIVE A completar
Google Slides sin contenido Exportación con texto insuficiente Marca SIN_CONTENIDO A completar
PPTX menor a 100 MB Archivo PPTX válido Convierte, exporta, analiza y actualiza A completar
PPTX mayor a 100 MB Archivo PPTX pesado Marca PPTX_DEMASIADO_PESADO A completar
Conversión falla Apps Script responde error Marca ERROR_CONVERT_PPTX A completar
Exportación falla No se puede exportar Slides a TXT Marca ERROR_EXPORT_SLIDES A completar
Gemini devuelve valores dudosos IA no puede inferir campos Marca requiere_revision = true A completar
Upsert correcto tablero_sync_key existe Actualiza fila correspondiente A completar
Duplicado evitado Misma tablero_sync_key No crea fila nueva innecesaria A completar

Checklist de prueba rápida

  • Ejecutar workflow manualmente.
  • Confirmar lectura del Banco de Propuestas.
  • Confirmar filtro de filas Tablero CDC.
  • Confirmar que se procesa una fila con file_id.
  • Confirmar metadata Drive.
  • Confirmar que should_refresh se calcula correctamente.
  • Confirmar exportación de Google Slides.
  • Confirmar conversión de PPTX si aplica.
  • Confirmar que PPTX mayor a 100 MB queda marcado.
  • Confirmar que Gemini devuelve metadata.
  • Confirmar normalización.
  • Confirmar upsert por tablero_sync_key.
  • Confirmar que el loop continúa con siguientes filas.
  • Revisar n8n Executions.
  • Exportar JSON actualizado.
  • Commit en Gitea.

ERRORES CONOCIDOS Y TROUBLESHOOTING

Error Causa probable Solución
No lee filas Permisos insuficientes en Google Sheets o rango incorrecto Validar credencial y hoja propuestas
No filtra filas esperadas tablero_origen, tablero_sync_key o tablero_project_id vacío Revisar columnas del banco
SIN_FILE_ID La fila no tiene file_id ni enlace válido Revisar Enlace a la propuesta y file_id
ERROR_METADATA_DRIVE Archivo no existe, sin permiso o Drive falla Validar link, permisos y file ID
SIN_CONTENIDO La presentación exportada no tiene suficiente texto Revisar archivo o agregar contenido legible
ERROR_EXPORT_SLIDES No se pudo exportar Google Slides a TXT Revisar permisos, tipo de archivo y Drive API
ERROR_CONVERT_PPTX Apps Script no pudo convertir PPTX Revisar endpoint, token, permisos y archivo
PPTX_DEMASIADO_PESADO Archivo supera 100 MB Reducir tamaño o convertir manualmente
Gemini devuelve campos erróneos Contenido insuficiente o ambiguo Revisar presentación y normalización
Upsert crea fila nueva tablero_sync_key no coincide Revisar valor de matching column
Error 401/403 Google Credenciales vencidas o sin permisos Renovar credenciales o compartir recursos
Apps Script no responde Endpoint caído o token inválido Revisar despliegue de Apps Script y token en n8n
Flujo tarda demasiado Muchas filas requieren refresco Ejecutar por lotes o revisar modificaciones masivas

MONITOREO

  • Revisar n8n Executions diariamente.
  • Verde = flujo correcto.
  • Rojo = fallo que requiere revisión.
  • Revisar cantidad de filas con refresh_status distinto de OK.
  • Revisar propuestas con requiere_revision = true.
  • Validar que refresh_attempts no crezca demasiado en una misma fila.
  • Revisar si hay acumulación de SIN_FILE_ID.
  • Revisar si hay muchos PPTX_DEMASIADO_PESADO.
  • Confirmar que Google Drive, Apps Script y Gemini estén respondiendo.
  • Mantener export actualizado en Gitea.

Output esperado normal

El flujo debe:

  • Ejecutarse diariamente.
  • Leer el Banco de Propuestas.
  • Revisar filas de Tablero CDC.
  • Detectar archivos modificados.
  • Reanalizar solo cuando corresponde.
  • Actualizar metadata en el banco.
  • Marcar errores controlados sin detener todo el lote.
  • Terminar sin errores críticos.

ESTRUCTURA DEL REPOSITORIO

/tablero-cdc-refrescar-banco-fulgencio-diario
|-- README.md
|-- tablero-cdc-refrescar-banco-fulgencio-diario.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 Tablero CDC - Refrescar Banco Fulgencio Diario.
  • Lectura diaria del Banco de Propuestas.
  • Filtro de filas provenientes de Tablero CDC.
  • Evaluación de metadata de Google Drive.
  • Refresco basado en modificación real del archivo.
  • Exportación de Google Slides a texto.
  • Conversión de PPTX a Google Slides vía Apps Script.
  • Límite de seguridad para PPTX mayor a 100 MB.
  • Reanálisis de contenido con Gemini.
  • Normalización de tipo de acción, canal, etiquetas, descripción y táctica.
  • Upsert al Banco de Propuestas por tablero_sync_key.
  • Manejo de errores controlados.
  • Backup del workflow en Gitea.
  • Documentación inicial del README.

DECISIONS LOG

DEC-001 — Ejecutar refresco diario

  • Fecha: 2026-06
  • Contexto: Las propuestas sincronizadas desde Tablero CDC pueden cambiar después de su registro inicial.
  • Opciones consideradas: Refresco manual vs refresco automático diario.
  • Decisión: Ejecutar refresco automático diario.
  • Razón: Mantiene actualizado el banco sin intervención manual.

DEC-002 — Procesar solo filas de Tablero CDC

  • Fecha: 2026-06
  • Contexto: El banco contiene propuestas de distintas fuentes.
  • Opciones consideradas: Refrescar todo el banco vs solo origen Tablero CDC.
  • Decisión: Refrescar solo filas con tablero_origen = Tablero CDC.
  • Razón: Evita tocar registros que vienen de otros flujos o fuentes.

DEC-003 — Usar tablero_sync_key como identificador de upsert

  • Fecha: 2026-06
  • Contexto: Se necesita actualizar la misma fila sin crear duplicados.
  • Opciones consideradas: Match por nombre, file_id o sync key.
  • Decisión: Usar tablero_sync_key.
  • Razón: Es el identificador más estable para registros sincronizados desde Tablero CDC.

DEC-004 — Reanalizar solo si el archivo cambió

  • Fecha: 2026-06
  • Contexto: Reanalizar todo diariamente sería innecesario y costoso.
  • Opciones consideradas: Reanalizar siempre vs comparar fechas.
  • Decisión: Comparar drive_modified_time con ultimo_refresco_ia.
  • Razón: Reduce consumo de Gemini y mejora eficiencia.

DEC-005 — Convertir PPTX solo si pesa 100 MB o menos

  • Fecha: 2026-06
  • Contexto: Google Slides tiene límites prácticos para conversión de archivos pesados.
  • Opciones consideradas: Convertir todo vs limitar por tamaño.
  • Decisión: Convertir solo PPTX de hasta 100 MB.
  • Razón: Evita fallos repetidos y tiempos excesivos.

DEC-006 — No permitir que Gemini modifique país, cliente ni marca

  • Fecha: 2026-06
  • Contexto: Esos campos vienen desde Tablero CDC y deben conservarse.
  • Opciones consideradas: Permitir reescritura por IA vs conservar valores base.
  • Decisión: Gemini no cambia país, cliente ni marca.
  • Razón: Evita que la IA altere datos maestros.

DEC-007 — Marcar errores en el banco en vez de detener el flujo

  • Fecha: 2026-06
  • Contexto: Una fila problemática no debe detener el refresco de todo el banco.
  • Opciones consideradas: Detener ejecución vs marcar estado y continuar.
  • Decisión: Guardar refresh_status y continuar el loop.
  • Razón: Mejora resiliencia y trazabilidad.

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 diario validado.
  • Lectura del Banco de Propuestas validada.
  • Filtro de filas Tablero CDC validado.
  • Metadata Drive validada.
  • Evaluación de refresco validada.
  • Exportación de Google Slides validada.
  • Conversión PPTX validada.
  • Límite de 100 MB validado.
  • Gemini reanaliza contenido correctamente.
  • Normalización de campos validada.
  • Upsert por tablero_sync_key validado.
  • Estados de error controlados validados.
  • n8n Executions sin errores críticos.
  • 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, tokens ni URLs sensibles de Apps Script.
  • Si cambia el Banco de Propuestas, revisar Sheets - Leer Banco Fulgencio.
  • Si cambia la estructura del banco, revisar Google Sheets - Upsert Banco Fulgencio.
  • Si cambia el origen de Tablero CDC, revisar el filtro por tablero_origen.
  • Si cambia la lógica de sync, revisar tablero_sync_key.
  • Si cambia el endpoint de Apps Script, actualizarlo en n8n/vault, no en README.
  • Si cambia el modelo Gemini, documentarlo en CHANGELOG.
  • Si se agregan nuevos tipos de acción, canales, tácticas o etiquetas, actualizar listas permitidas en Code - Normalizar respuesta refresco.
  • Si aparecen muchos SIN_CONTENIDO, revisar si las presentaciones tienen texto legible o si todo está como imagen.
  • Si aparecen muchos PPTX_DEMASIADO_PESADO, convertir esos archivos manualmente o reducir su tamaño.