Choosing Between Automations, Hooks, Standing Orders, and Workflows
Compares OpenClaw's four native automation mechanisms: runtimes, scheduled jobs, event hooks, and standing instructions. Helps users pick the right one for each background task.
Read this when
- Deciding how to automate work with OpenClaw
- Choosing between automations, hooks, and standing orders
- Looking for the right automation entry point
OpenClaw handles background work through four native mechanisms: runtimes, scheduled jobs, event hooks, and standing instructions. This page helps you choose which one fits.
Quick decision guide
flowchart TD
START([What do you need?]) --> Q1{Schedule work?}
START --> Q3{Orchestrate multi-step flows?}
START --> Q4{React to lifecycle events?}
START --> Q5{Give the agent persistent instructions?}
Q1 -->|Yes| CRON["Automations"]
Q3 -->|Yes| FLOW[Lobster]
Q4 -->|Yes| HOOKS[Hooks]
Q5 -->|Yes| SO[Standing Orders]
| Use case | Recommended | Why |
|---|---|---|
| Send daily report at 9 AM sharp | Automations | Exact timing, isolated execution |
| Remind me in 20 minutes | Automations | One-shot with precise timing (--at) |
| Run weekly deep analysis | Automations | Standalone task, can use different model |
| Check inbox every 30 min | Automations | Independent recurring schedule and job history |
| Trigger safely on new IMAP email | IMAP plugin | Sender-gated isolated reader sessions |
| Monitor calendar for upcoming events | Automations | Explicit recurring schedule and delivery policy |
| Surface ambient main-session updates | Automations | Editable monitoring jobs with quiet results |
| Run a script on session reset | Hooks | Internal HOOK.md scripts react to lifecycle events |
| Trigger an agent from an external service | Webhooks | Authenticated HTTP ingress, not an internal event hook |
| Execute code on every tool call | Plugin hooks | Typed api.on(...) handlers can intercept tool calls |
| Always check compliance before replying | Standing Orders | Injected into every session automatically |
Periodic monitoring
Reminders, recurring reports, and ambient checks all count as ordinary automation jobs. A job carries its own schedule, context, delivery policy, and history. When a check should honour quiet hours and foreground work, reach for activeHours and idleOnly; for a short checklist use scratch, and for cases where nothing needs attention use NO_REPLY. Monitors that already exist as heartbeats are migrated by Doctor.
Core concepts
Automations
Automations form OpenClaw's scheduler, built in and covering every recurring and one-shot task, periodic monitors included. Jobs are persisted by the scheduler, which wakes the agent at the scheduled moment and can send results to a chat channel or a webhook endpoint. One-shot reminders, recurring intervals, cron expressions, and inbound webhook triggers are all supported.
See Automations.
Background execution and workflows
Delegated runs are started and awaited with Sub-agents; coding harness sessions use ACP; scheduled work is inspected through automation run history. Execution and completion are each handled by the runtime that owns them.
Local pipelines with resumable approvals run through Lobster. The shared Tasks ledger, the TaskFlow orchestration API, and the TaskFlow Webhooks plugin are no longer present. For authenticated external triggers, generic Gateway HTTP hooks are still available.
Standing orders
Standing orders give the agent ongoing operating authority over defined programs. They reside in workspace files (usually AGENTS.md) and get injected into every session. Pair them with automations to enforce them on a time basis.
See Standing Orders.
Hooks
Internal hooks are event-driven scripts that fire on agent lifecycle events (/new, /reset, /stop), session compaction, gateway startup, and message flow. Hook directories are where they get discovered, and openclaw hooks is how they are managed. When you need to intercept tool calls in-process, use Plugin hooks.
See Hooks.
Heartbeat
Heartbeat monitors that already exist become ordinary editable jobs, each with its own scratch, execution policies, and delivery settings. Setup creates one proactive check for the ambient owner; after that, reloads and restarts do not touch job edits or deletions. See Heartbeat migration.
How they work together
- Automations handle recurring reports, reminders, and monitoring checks. Every independently scheduled task gets its own job.
- Hooks respond to specific events (session resets, compaction, message flow) by running custom scripts. Tool calls are covered by plugin hooks.
- Standing orders supply the agent with persistent context and authority boundaries.
Retired inferred commitments
Version v2026.8.1 removed the inferred commitments experiment: OpenClaw no longer pulls follow-ups out of conversations or sends them via heartbeat. The openclaw commitments maintenance CLI is gone as well. Old commitment rows are discarded by the database migration, which also drops their table and indexes.
To get reminders or scheduled work, create an explicit automation. An automation is an alternative with a schedule and instructions that you pick; inferred follow-ups are not brought back by it.
Related
- Automations, precise scheduling and one-shot reminders
- IMAP email trigger, sender-gated inbound email and isolated reader sessions
- MCP Events, subscribed events, signed callbacks, and Automation runs
- Hooks, event-driven lifecycle scripts
- Plugin hooks, in-process tool, prompt, message, and lifecycle hooks
- Standing Orders, persistent agent instructions
- Heartbeat migration, convert periodic monitoring to editable jobs
- Configuration Reference, all config keys