Digests programados

Tabla de digests programados con uno activo y otro pausado, columna Last run

Los digests programados llevan las vistas que te importan a tu bandeja de entrada de forma recurrente — diaria, semanal o mensual — sin que tengas que recordar entrar a la app. Cada digest apunta a un Dashboard o a un Filtro guardado y renderiza el snapshot más reciente cuando dispara.

Plan: Disponible desde el plan Pro (feature flag advancedAlerts).

Dónde encontrarlo

Ve a Configuración → Digests programados. Verás dos áreas:

  • Tus digests — tabla con todos los digests creados, su próxima ejecución, estado del último envío y controles pausar/reanudar/eliminar.
  • Asistente de creación — flujo en cuatro pasos para añadir uno nuevo.

Crear un digest

El asistente tiene cuatro pasos:

  1. Fuente. Elige un Dashboard o un Filtro guardado como contenido.
  2. Cadencia. Diaria / semanal / mensual. Para semanal elige día de la semana; para mensual día del mes (1–28).
  3. Hora y zona horaria. Hora local en la zona que selecciones (cualquier identificador IANA válido — Europe/Madrid, America/New_York, etc). Respetamos los cambios DST, así que las 09:00 locales siguen siendo 09:00 locales tras el cambio de hora.
  4. Nombre y vista previa del horario. Dale nombre al digest. Verás en tiempo real cuándo se disparará la primera ejecución según la cadencia y zona horaria elegidas, y luego guarda.

También puedes activar Enviar si está vacío — si lo dejas desactivado, las ejecuciones sin informes coincidentes se omiten en silencio y next_run_at avanza igualmente.

Qué se envía

Tipo de fuente Contenido del email
Dashboard Cabecera con tu branding, snapshot de cada widget para los últimos 7 días, enlace al dashboard en vivo.
Filtro guardado Cabecera con tu branding, top 50 informes coincidentes con columnas reportador / fecha / registros / pass rate, enlace al filtro.

Si tu organización tiene Exports con marca (plan Ultimate) el digest usa tu logo, color primario y pie. Si no, cae a los defaults del producto — ver Exports con marca.

Cómo funciona el cron

Un evaluador horario localiza los digests cuyo next_run_at ya ha pasado, los bloquea con FOR UPDATE (para que dos workers concurrentes no disparen dos veces), avanza next_run_at y encola un dispatch asíncrono. El envío real va a una cola de Symfony Messenger para que un SMTP lento no bloquee al evaluador.

Fallos y auto-pausa

Si una ejecución falla (error SMTP, fuente borrada, etc.) incrementamos un contador consecutive_failures en la fila. Tras 3 fallos consecutivos el digest se pausa automáticamente para no reintentar indefinidamente. Las ejecuciones correctas reinician el contador a cero. Un digest pausado permanece en tu lista — vuélvelo a activar cuando hayas resuelto el problema subyacente.

Preguntas frecuentes

¿Pueden recibir el digest varias personas? Hoy cada digest se envía al email de su creador. Estamos trabajando en destinatarios compartidos para una iteración futura.

¿Cómo pauso un digest por vacaciones? Pulsa el icono de pausa en la lista. Cuando vuelvas, reanúdalo y la próxima ejecución se programará relativa al momento de reanudación.

¿Y si elimino el dashboard o filtro subyacente? La siguiente evaluación marca el digest como source_missing y lo pausa automáticamente. La fila se conserva para que puedas re-apuntarlo a otra fuente.