> ## Documentation Index
> Fetch the complete documentation index at: https://noorle.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Automation Triggers

> Configure scheduled, event-based, and proactive automations for agents.

Automation triggers let agents act without a human starting the conversation. Set up schedules, react to conversation events, or let agents manage their own automations.

## Enabling Triggers

<Steps>
  <Step title="Open Agent Settings">
    Navigate to **Agents** > Select your agent > **Settings**
  </Step>

  <Step title="Find Automation Triggers">
    Scroll to the **Automation Triggers** section
  </Step>

  <Step title="Toggle Trigger Types">
    Enable the trigger types you need:

    * **Scheduled (Cron)** — Time-based triggers
    * **Event-Based (Whenhook)** — Conversation event triggers
    * **Proactive Automations** — Agent self-creates automations
  </Step>
</Steps>

<Note>
  The master **Enabled** toggle must be on for any triggers to function. Individual toggles control which types are available.
</Note>

## Creating a Scheduled Trigger

<Steps>
  <Step title="Open Automations">
    **Agents** > Select agent > **Automations** tab
  </Step>

  <Step title="Click Create">
    Click **Create Automation** and select **Time-based**
  </Step>

  <Step title="Configure Schedule">
    * **Name** — Descriptive name (max 200 characters)
    * **Frequency** — Once, Daily, Weekly, Monthly, or Yearly
    * **Time** — When to fire (HH:MM)
    * **Date options** — Varies by frequency (day of week, day of month, etc.)
    * **Prompt** — The message sent to the agent when triggered
  </Step>

  <Step title="Optional Settings">
    * **Max runs** — Stop after N executions (leave blank for unlimited)
    * **Active hours** — Restrict to specific hours and timezone
    * **Expiration** — Auto-disable after a date
  </Step>

  <Step title="Save">
    Click **Create**. The automation appears in the Time-based tab.
  </Step>
</Steps>

### Schedule Types

| Type        | Example                        | Behavior                      |
| ----------- | ------------------------------ | ----------------------------- |
| **Once**    | March 15 at 2:00 PM            | Fires once, then auto-deletes |
| **Daily**   | Every day at 9:00 AM           | Repeats daily                 |
| **Weekly**  | Every Monday at 8:30 AM        | Repeats weekly on chosen day  |
| **Monthly** | 1st of every month at midnight | Repeats monthly on chosen day |
| **Yearly**  | January 15 at 9:00 AM          | Repeats yearly on chosen date |

Under the hood, these are converted to cron expressions. You can also set cron expressions directly via the API or agent tools.

## Creating an Event-Based Trigger (Whenhook)

<Steps>
  <Step title="Open Automations">
    **Agents** > Select agent > **Automations** tab
  </Step>

  <Step title="Click Create">
    Click **Create Automation** and select **Event-based**
  </Step>

  <Step title="Configure Condition">
    * **Name** — Descriptive name (max 200 characters)
    * **Description** — Natural language condition (sent to LLM for evaluation)
    * **Keywords** — Comma-separated trigger words for fast prefiltering (required)
    * **Confidence threshold** — How sure the LLM must be (0.0–1.0, default: 0.7)
  </Step>

  <Step title="Configure Action">
    * **Prompt** — The message sent to the agent when the condition matches
  </Step>

  <Step title="Optional Settings">
    * **Cooldown** — Minimum time between firings (default: 1 hour, minimum: 5 minutes)
    * **Max triggers** — Stop after N firings (leave blank for unlimited)
    * **Active hours** — Restrict to specific hours and timezone
    * **Expiration** — Auto-disable after a date
  </Step>

  <Step title="Save">
    Click **Create**. The automation appears in the Event-based tab.
  </Step>
</Steps>

### How Event Evaluation Works

When a message is processed in a conversation with this agent:

1. **Keyword prefilter** — Fast check: does the message contain any of the keywords? (case-insensitive)
2. **LLM evaluation** — If keywords match, an LLM evaluates whether the condition description is truly met
3. **Confidence check** — If the LLM's confidence exceeds the threshold, the trigger fires
4. **Cooldown** — The automation enters cooldown regardless of whether it fires (prevents rapid re-evaluation)

<Tip>
  Choose keywords carefully. They act as a cheap gate — only messages containing at least one keyword reach the LLM evaluation step.
</Tip>

## Proactive Automations

When **Proactive Automations** is enabled, the agent gains access to self-management tools:

### Schedule Tools

| Tool                | Purpose                            |
| ------------------- | ---------------------------------- |
| `scheduling_create` | Create a new scheduled automation  |
| `scheduling_list`   | List all schedule automations      |
| `scheduling_get`    | Get details of a specific schedule |
| `scheduling_cancel` | Cancel and delete a schedule       |

### Event Tools

| Tool              | Purpose                             |
| ----------------- | ----------------------------------- |
| `whenhook_create` | Create a new event-based automation |
| `whenhook_list`   | List all event automations          |
| `whenhook_remove` | Remove an event automation          |

**Example conversation:**

```
User: "Remind me to check the deployment status tomorrow at 3pm"
Agent: [calls scheduling_create with At schedule for tomorrow 3pm,
        prompt "Check deployment status and report to user"]
Agent: "Done! I've set a reminder for tomorrow at 3:00 PM to check
        deployment status."
```

Agent-created automations follow the same quotas and limits as manually created ones.

## Managing Automations

### Viewing

The **Automations** tab shows two lists:

* **Time-based** — All scheduled automations with next run time, run count, and status
* **Event-based** — All whenhook automations with trigger count, cooldown, and status

### Status

Each automation shows:

* **Active** — Running normally
* **Paused** — Manually disabled or auto-disabled

### Creator

Automations show who created them:

* **User** — Created via Console
* **Agent** — Created via proactive automation tools

### Deleting

Click the delete action on any automation to permanently remove it.

## Limits

| Limit                                   | Value      |
| --------------------------------------- | ---------- |
| Automations per agent                   | 50         |
| Automations per account                 | 500        |
| Daily firings per agent                 | 100        |
| Daily firings per account               | 500        |
| Auto-disable after consecutive failures | 5          |
| Minimum "Every" interval                | 60 seconds |
| Minimum event cooldown                  | 5 minutes  |
| Default event cooldown                  | 1 hour     |
| Default confidence threshold            | 0.7        |

Daily firing budgets reset at midnight UTC.

## Best Practices

### Use Specific Keywords

Broad keywords like "the" or "data" will cause excessive LLM evaluations. Use specific terms related to the condition you're watching for.

### Set Appropriate Cooldowns

The default 1-hour cooldown works for most cases. Lower it for time-sensitive monitoring, raise it for daily summary triggers.

### Monitor Failure Counts

Automations auto-disable after 5 consecutive failures. Check the Automations tab for paused automations and investigate the cause.

### Use Active Hours

Restrict automations to business hours when relevant. This saves daily firing budget and prevents off-hours noise.

### Start Conservative

Begin with higher confidence thresholds (0.8+) and adjust downward if the trigger isn't sensitive enough. It's easier to loosen than to deal with false positives.

## Troubleshooting

| Problem                            | Solution                                                                                  |
| ---------------------------------- | ----------------------------------------------------------------------------------------- |
| Trigger not firing                 | Check that both the master switch and the specific type toggle are enabled                |
| Event trigger too sensitive        | Raise confidence threshold or use more specific keywords                                  |
| Event trigger not sensitive enough | Lower confidence threshold, broaden keywords                                              |
| Automation auto-disabled           | Check for consecutive failures (5 = auto-disable). Fix the underlying issue and re-enable |
| Daily budget exhausted             | Check Account > Usage. Reduce automation frequency or increase cooldowns                  |
| Schedule not running on time       | Verify timezone settings. Cron expressions use the configured timezone                    |

## Next Steps

* [Automation Triggers Concepts](/docs/learn/concepts/automation-triggers)
* [Workflows](/docs/run/workflows/overview) — For multi-step automated processes
* [Sub-Agents](/docs/run/agents/sub-agents) — For delegating triggered work
