Automations
Automations run your agent on a schedule or in response to webhooks. Define them in automations/ as JSON (or Markdown).
JSON Format (recommended)
{
"title": "Daily Revenue Digest",
"schedule": "0 9 * * 1-5",
"prompt": "Pull yesterday's revenue data and summarize by region. Highlight any anomalies compared to the weekly baseline."
}| Field | Type | Description |
|---|---|---|
title | string | Display name |
prompt | string | The message sent to the agent when the automation runs |
schedule | string | Cron expression (triggers cron mode) |
trigger | "cron" | "webhook" | "manual" | Trigger type (auto-inferred from schedule) |
Trigger Types
| Type | How It Runs |
|---|---|
| cron | On a schedule — inferred when schedule is present |
| webhook | In response to an HTTP POST to the automation's webhook URL |
| manual | On-demand via CLI or API |
Markdown Format (legacy)
# Automation: Morning Brief
Schedule: 0 7 * * *
## Check
Pull all active deals and recent activities from the CRM.
Summarize wins, losses, and pipeline changes.How Runs Work
Each run is stateless — queries systems fresh with since=lastRunTimestamp. The agent gets lastRunSummary for continuity.
- Scheduler or webhook triggers the automation
- Fresh session created with the automation's prompt
- Agent runs explore-plan-execute loop
- Results routed to configured output channel
Managing Automations
amodal automations list
amodal automations pause <name>
amodal automations trigger <name> # manual triggerGuardrails
- Automations cannot write by default
- Each run is stateless — no accumulated side effects
- Output is routed to channels, not acted on