Modo document y exports son la misma idea
Un dashboard en layout_mode: document está diseñado para ser leído de arriba abajo, como un reporte. Renderiza en un layout fijo que mapea limpio a una página impresa o PDF. Los exports toman ese layout y lo entregan en un schedule — sin que nadie tenga que abrir la UI.
La combinación de dashboards document y scheduled exports reemplaza el workflow manual de "screenshot y paste en slide". Definís el reporte una vez y aterriza donde tiene que ir, con data fresca, a tiempo.
Dónde viven las definiciones de export
Los exports son archivos YAML dentro de content/exports/ en tu workspace:
<workspace_slug>/
content/
exports/
sales_daily_pdf.yml
fulfillment_weekly_pdf.yml
Cada archivo define un job de export: qué dashboard, qué schedule, qué parámetros y a dónde entregar el output.
Working example
id: ec_business_daily_pdf
enabled: true
dashboard_id: ec_business_overview
schedule:
cron: "0 8 * * *"
timezone: "America/New_York"
params:
cutoff_date: "{{today}}"
destination:
type: local_folder
folder: "."
filename: "business-overview-{{today}}.pdf"
policy:
on_missed_run: skip
max_retries: 2
timeout_seconds: 180
Campo por campo:
id: identifier único para este job de export.enabled: seteá afalsepara pausar sin borrar.dashboard_id: tiene que matchear elidde un dashboard publicado. El layout mode document es requerido para exports PDF.schedule.cron: expresión cron estándar de cinco campos.0 8 * * *corre cada día a las 08:00.schedule.timezone: nombre de timezone IANA. La expresión cron se evalúa en esta timezone.params: valores de filtros de dashboard inyectados en tiempo de render. Matchean el campoparamdefinido en el bloquefiltersdel dashboard.destination.type:local_folderguarda el PDF en la carpeta especificada en el host del export engine.destination.filename: soporta template variables.{{today}}se expande a la fecha actual en formato ISO.policy.on_missed_run:skipsaltea runs perdidos silenciosamente. Usábackfillsi necesitás que los runs perdidos se ejecuten al recover.policy.timeout_seconds: si el render del PDF lleva más que esto, el job se marca como failed.
Enviar el reporte a suscriptores
Un export puede entregar el PDF terminado directo a las personas — por email o WhatsApp — sin que nadie abra Looky. Agregá un bloque subscribers y listá a cada destinatario bajo el canal por el que querés alcanzarlo:
subscribers:
email:
- [email protected]
- [email protected]
whatsapp:
- "+15551234567"
email: direcciones de correo que reciben el PDF como adjunto.whatsapp: números de teléfono en formato+<código de país><número>que reciben el PDF por WhatsApp.
Vos elegís el canal explícitamente — poné un correo bajo email y un teléfono bajo whatsapp. Los destinatarios no necesitan una cuenta de Looky, así que un reporte programado es una forma simple de mantener informados a los interesados. Ambas listas son opcionales; un export sin subscribers solo genera el PDF sin enviarlo a ningún lado.
Template variables
Tanto los valores de params como destination.filename soportan estas template variables:
{{today}}— la fecha de hoy en la timezone del export (formato ISO: YYYY-MM-DD).{{yesterday}}— la fecha de ayer en la timezone del export.
Esto mantiene en sync los nombres de archivo de export y los valores de filtro del dashboard sin configuración manual:
params:
cutoff_date: "{{today}}"
destination:
filename: "sales-report-{{today}}.pdf"
Ejemplos de cron schedule
0 8 * * *— cada día a las 08:000 8 * * 1— cada lunes a las 08:000 8 1 * *— primer día de cada mes a las 08:000 6,18 * * *— dos veces al día a las 06:00 y 18:00
Siempre seteá un timezone. Un cron sin timezone corre en UTC, lo que produce fechas off-by-one cuando usás {{today}} si tus usuarios están en otra timezone.
Push y verificar exports
Las definiciones de export se pushean con el resto del content del workspace:
looky validate
looky diff
looky push
Después del push, el export engine levanta el job nuevo en su próximo ciclo de scheduling. Para verificar que el job esté registrado, chequeá el status del workspace en la UI o corré looky list exports.