Digital Marketing

Knowledge Layer de Copa

Arquitectura técnica para sincronizar copaair.com → Markdown → S3, sin tareas editoriales adicionales.

Resumen técnico · agosto de 2026
Digital Marketing

Seis decisiones reducen el diseño a un solo proceso

El objetivo es un job efímero, idempotente y de bajo consumo; no un servicio permanente.

Fuente de descubrimiento

Sitemaps válidos de www.copaair.com, con allowlist de storefronts y reglas canónicas.

Cadencia

Batch diario incremental; no se dispara por cada publicación.

Extracción

HTTP + parser de contenido por defecto; navegador headless solo como fallback.

Ejecución

Contenedor/job programado que escala a cero entre ejecuciones, coordinado con Aníbal, María + Infra/SRE.

Publicación

S3 privado, prefijo de objetos ai/, publicación automática y routing corporativo.

Opciones descartadas

Campo Markdown en Directus y hook por publish: agregan acoplamiento y esfuerzo operativo innecesario.

Recomendación: comenzar con un scheduled task en el runtime interno ya disponible; si no existe, evaluar un task serverless/efímero en AWS. No mantener un crawler always-on.
Digital Marketing

Arquitectura propuesta

Una cadena controlada desde descubrimiento hasta publicación. Directus sigue operando normalmente, pero no integra un campo ni un hook nuevo.

1. Sitemap

URLs públicas, locales, canonical y estado de descubrimiento.

sitemap index
lastmod cuando sea confiable

2. Crawler interno

Filtros, fetch, reintentos y fallback headless.

rate limit · concurrency
ETag · Last-Modified

3. Transformación

Contenido principal → Markdown determinista + metadatos.

normalize · validate
content_hash
Scheduler inicia una ejecución diaria y termina al completar.
Manifest registra URL, hash, key, estado y timestamp.
Observabilidad conserva métricas, errores y evidencia de cada release.
Digital Marketing

El sync diario procesa cambios, no todo el sitio a ciegas

Cada ejecución debe ser determinista: con la misma entrada produce el mismo Markdown y el mismo estado.

Descubrir

  • Leer sitemap index y sitemaps hijos.
  • Validar que no estén vacíos o corruptos.
  • Comparar con manifest anterior.

Filtrar

  • Hostname y storefront allowlist.
  • Excluir parámetros, noindex y duplicados.
  • Normalizar canonical y locale.

Obtener

  • HTTP condicional cuando sea posible.
  • Backoff, timeout y límite de concurrencia.
  • Headless solo por excepción.

Transformar

  • Extraer contenido principal.
  • Limpiar navegación, footer y UI.
  • Validar Markdown y calcular hash.

Publicar

  • Upsert solo si el hash cambió.
  • Retirar keys huérfanas.
  • Guardar manifest, métricas y release ID.
Seguro de bajas: si falla el fetch del sitemap, el conteo cae anormalmente o la validación no pasa, la ejecución se marca fallida y no elimina archivos.
Digital Marketing

Contrato Markdown: legible, estable y trazable

Reglas de transformación

  • Un archivo por URL canónica, preservando locale y path.
  • Un H1; jerarquía H2/H3 sin saltos; listas y tablas simples.
  • Eliminar menús, consent banners, CTAs repetidos y componentes sin contenido.
  • Convertir enlaces a URLs absolutas y conservar texto descriptivo.
  • Agregar fuente, idioma, timestamps y hash de contenido.
  • No inferir ni enriquecer hechos: el Markdown refleja la página pública.
UTF-8 y texto plano
Sin scripts ni estilos
Determinista por URL
---
source_url: https://www.copaair.com/es-pa/…
canonical_url: https://www.copaair.com/es-pa/…
locale: es-PA
source_updated_at: 2026-08-04T…
generated_at: 2026-08-05T…
content_hash: sha256:…
---

# Título de la página

Resumen factual del contenido principal.

## Información relevante

- Hecho visible en la fuente
- Enlace descriptivo y absoluto

## Fuente

[Ver página canónica](https://www.copaair.com/es-pa/…)
Digital Marketing

S3 guarda objetos; el dominio expone las rutas públicas

En S3 no existe una carpeta real: ai/ es el prefijo de los object keys. El bucket permanece privado detrás del origen/routing aprobado.

Objeto en S3

s3://<bucket>/ai/es-pa/viajes/pagina.mds3://<bucket>/llms.txt

Manifest interno sugerido: ai/_system/manifest.json.

URL pública

https://www.copaair.com/ai/es-pa/viajes/pagina.mdhttps://www.copaair.com/llms.txt

CloudFront o reverse proxy resuelve el origen; el nombre final del bucket no aparece públicamente.

Acceso

Bucket privado, service identity con mínimo privilegio y OAC/patrón equivalente.

Release

Upsert idempotente, versioning, release ID y rollback al último manifest válido.

Discovery

llms.txt en la raíz enlaza el índice del Knowledge Layer; no sustituye sitemap ni robots.

Nota: llms.txt es una propuesta emergente, no un estándar universal; se implementa como señal complementaria y archivo de navegación legible.

Digital Marketing

In-house significa control del tráfico, la identidad y la evidencia

El job sigue haciendo requests controlados a copaair.com; la diferencia es que no depende de un proveedor externo ni expone un endpoint público.

Tráfico

User-Agent identificable, baja concurrencia, ventana off-peak, timeout y exponential backoff.

Red

Ejecución en runtime corporativo aprobado; egress/allowlist y origen acordados con SRE.

Identidad

Service account sin credenciales humanas y permisos limitados al prefijo/objetos necesarios.

Contenido

Allowlist de host/rutas, sin autenticación, PII, resultados de búsqueda o parámetros.

Resiliencia

Reintentos acotados, circuit breaker por anomalías y cero bajas cuando el input no es confiable.

Auditoría

Logs estructurados por URL, hash, acción, status, duración y release ID.

Métricas mínimas

URLs descubiertas / elegiblescoverage
Nuevas / cambiadas / retiradasfreshness
Errores por fase y HTTP statusreliability
Duración, requests y headless fallbacksresource use
Validación Markdown y linksquality
Principio operativo: extracción HTTP primero. El costo alto de un browser completo se paga solo para páginas que realmente lo necesiten.
Digital Marketing

Responsabilidades y colaboración

Digital Marketing desarrolla y opera la herramienta; Aníbal, María + Infra/SRE habilitan la infraestructura y el routing necesarios.

Equipo / responsablesParticipación
Digital MarketingConstruir el crawler y la transformación, mantener las reglas de URL y el contrato Markdown, ejecutar QA y operar el proceso diario.
Aníbal, María + Infra/SREHabilitar S3, identidad/IAM, versioning, scheduler/runtime y routing hacia copaair.com/ai/, con los controles de red y acceso correspondientes.
Equipos editorialesContinúan publicando en Directus como hoy; no agregan campos, hooks ni tareas recurrentes para sostener el Knowledge Layer.
Modelo operativo: la automatización concentra el trabajo técnico en Digital Marketing e Infra/SRE y evita incorporar una nueva responsabilidad diaria al flujo editorial.