Decisión: Correo — no guardar cuerpos de mensajes
Contexto
Durante el diseño de la feature Menú Correo F0 (sesión 12-08-2026), el equipo (grill) decidió qué información del buzón Zoho se guarda en D1 y cuál no.
Decisión
NO guardar cuerpos de mensajes en la tabla correo_digests.
Qué SÍ se guarda
- Remitente (dirección o nombre).
- Asunto del mensaje.
- Síntesis “por qué importa” (razón de inclusión en el informe, max 500 chars).
- Enlace directo al mensaje en el cliente Zoho.
Qué NO se guarda
- Cuerpo completo del mensaje.
- Contenido HTML/plain-text.
- Attachments u metadatos privados.
Justificación
- Privacidad: los cuerpos contienen información sensible (clientes, decisiones internas, datos personales). Guardarlos en D1 aumenta superficie de riesgo.
- Cumplimiento: reduce carga de cumplimiento normativo (GDPR, CCPA) — menos datos = menos obligaciones de borrado/auditoría.
- UX pragmática: el usuario siempre abre el detalle en Zoho (botón “Abrir en Zoho”). Aquí solo se ve un resumen que le permite decidir rápidamente si debe actuar.
- Rendimiento: payloads más pequeños en D1, queries más rápidas.
Implicaciones
- Tabla D1: columna
payloadcontiene solo remitente, asunto, porque, zoho_link (JSON, máx 50 items × 500 chars = ~50KB por pasada). - Endpoint: validación en POST que trunca campos a 500 chars.
- UI: widget y página no puede mostrar preview del cuerpo. Botón “Abrir en Zoho” es obligatorio.
- Skill /correo: debe sintetizar “por qué importa” en el cliente (Claude) antes de publicar.
Retención
- Máximo: 30 días desde inserción.
- Poda: automática en cada POST (
DELETE ... WHERE created_at < datetime('now', '-30 days')). - Auditoría: cada creación de alerta urgente se loguea en
logActivity().
Aprobación
- Decidido por: grill.
- Fecha: 2026-08-12.
- Incorporado en: PR#154.
Véase también
- [[feature—workspace—correo-menu-f0]]
- [[entity—functions—endpoint—correo-digest]]
- [[entity—migrations—table—correo-digests]]
- [[concept—saas—data-privacy]]
- [[concept—infra—retention-policy]]