Si el heartbeat es "revisa si hay algo que hacer", los cron jobs son "haz esto exactamente a esta hora". Son la diferencia entre un asistente reactivo y uno que anticipa.
| Heartbeat | Cron Job | |
|---|---|---|
| Timing | Cada X minutos, flexible | Hora exacta o expresión cron |
| Contexto | Sesión principal (recuerda la conversación) | Puede ser aislado (sin historial) |
| Propósito | "¿Hay algo que necesite atención?" | "Haz esta tarea específica" |
| Ejemplo | Revisar inbox cada 30 min | Morning brief todos los días a las 7am |
"En 20 minutos, recuérdame llamar al doctor."
openclaw cron add \
--name "Doctor reminder" \
--at "20m" \
--session main \
--system-event "Remind me to call the doctor's office" \
--wake now
Se ejecuta una vez y se auto-elimina.
"Cada 3 horas, revisa mi pipeline de ventas."
openclaw cron add \
--name "Pipeline check" \
--every "3h" \
--session isolated \
--message "Check the CRM for new signups. Identify any with company domains. Report findings." \
--announce --channel telegram
"Lunes a viernes a las 7am, envíame el brief del día."
openclaw cron add \
--name "Morning brief" \
--cron "0 7 1-5" \
--tz "America/Bogota" \
--session isolated \
--message "Summarize today's calendar, any pending tasks, and overnight emails. Keep it under 200 words." \
--announce --channel telegram
Expresiones cron comunes:
0 7 1-5 → L-V a las 7am
0 9 1 → Lunes a las 9am
0 /3 → Cada 3 horas
30 14 * → Todos los días a las 2:30pm
0 22 0 → Domingos a las 10pm
El "dónde corre" importa:
--session main: Corre en la sesión principal. El agente recuerda lo que hablaron antes. Ideal para reminders y follow-ups.
--session isolated: Sesión dedicada cron:. Sin historial — más limpio y barato. Ideal para reportes y análisis.
--session current: Vinculado a la sesión actual cuando se crea. Útil para "continúa esto que estábamos haciendo en 2 horas."
# Announce — envía resultado a un canal
--announce --channel telegram
Announce a canal específico
--announce --channel slack --to "channel:C1234567890"
Webhook — POST a un endpoint
--delivery webhook --webhook-url "https://your-endpoint.com/hook"
None — solo se ejecuta, sin notificación
--delivery none
# Ver todos los jobs
openclaw cron list
Ejecutar uno ahora (sin esperar al schedule)
openclaw cron run <jobId>
Ver historial de ejecuciones
openclaw cron runs --id <jobId>
Editar un job
openclaw cron edit <jobId>
Eliminar un job
openclaw cron remove <jobId>
openclaw cron add \
--name "PLG sweep" \
--cron "0 8 1-5" \
--tz "America/Los_Angeles" \
--session isolated \
--message "Do the daily PLG sweep: check CRM for signups in last 24h. Find company domains. Use Exa to identify decision-makers. Draft outreach emails for review. Flag companies with 100K+ employees for Claire's personal touch." \
--announce --channel telegram
openclaw cron add \
--name "CRM cleanup" \
--cron "0 10 5" \
--tz "America/Los_Angeles" \
--session isolated \
--message "Weekly CRM cleanup: flag stale deals (no activity 14+ days), draft follow-up emails for open opportunities, summarize pipeline by stage." \
--announce --channel telegram
openclaw cron add \
--name "Family daily" \
--cron "0 7 *" \
--tz "America/Bogota" \
--session isolated \
--message "Check today's family calendar. List all kids activities, school events, and logistics. Flag any conflicts. Remind about recurring tasks (piano practice, homework deadlines)." \
--announce --channel whatsapp