---
url: /reference/automation-triggers-and-actions.md
description: >-
  Every trigger, scope, condition, action, option, run-log status, limit and
  preset an automation can have.
---

# Automation triggers, conditions and actions

This page lists everything an automation can contain, its options, run log statuses, limits and
presets. Related pages:

* [Create an automation](/guides/create-an-automation): build one;
* [Automations](/concepts/automations): how the parts fit;
* [Automate the routine steps](/recipes/automations-that-do-work): worked examples.

An automation reads as four parts in its editor:

* **When**: the trigger;
* **Where**: the scope;
* **Only if**: the conditions;
* **Then**: the actions.

Automations live in **Workspace settings** → **Automations**
([Create an automation](/guides/create-an-automation)).

::: warning Who can see and change automations
Seeing them needs **Read** in the **Automations** block (Worker has it). Creating, editing and
deleting need **Create**, **Update** and **Delete** there, and the **Automation Log** needs
**Update**. See [Permissions and access](/reference/permissions-and-access).
:::

**Example.**

* **When**: **Task updated**, **Status** changes to **Done**;
* **Where**: **List** **Client work**;
* **Only if**: **Priority** is **Urgent**;
* **Then**: **Notify** the creator, then **Move to list** **Delivered**.

## Triggers

A trigger is the moment something happens. An automation has one trigger.

| Group | Trigger | Fires when | Guide |
|---|---|---|---|
| Tasks | **Task created** | A task is created | [Create an automation](/guides/create-an-automation) |
| Tasks | **Task updated** | A task changes. Add fields under **When any of these change** to fire only on those changes, optionally from one value to another | [Create an automation](/guides/create-an-automation) |
| Tasks | **Task deleted** | A task is deleted | [Create an automation](/guides/create-an-automation) |
| Comments | **Comment created** | A comment is posted on a task | [Create an automation](/guides/create-an-automation) |
| Comments | **Comment updated** | A comment is edited | [Create an automation](/guides/create-an-automation) |
| Comments | **Comment deleted** | A comment is deleted | [Create an automation](/guides/create-an-automation) |
| Time | **On a schedule** | Every N days, weeks (on the weekdays you pick), months or years, at a set time, not tied to a task. The editor shows which time zone the times are in. Such an automation can only **Notify** or create a task from a template. It has no **Where** or **Only if**: there is no task to check | [Scheduled automations](/guides/create-an-automation#scheduled-automations) |
| Time | **Before or after a date** | A number of days, hours or minutes before or after each task's due date or start date. An offset in days fires at the **At** time; an offset in hours or minutes counts from the task's own time, and all-day tasks fire at the **At** time. Tasks in the [**Done** stage](/concepts/statuses) are skipped | [Create an automation](/guides/create-an-automation) |

A comment trigger acts on the commented task: **Where** and **Only if** check that task, the
assignee and creator in **Notify** are that task's, and the actions change it. If the commented
task is gone:

* automations with a **Folder** or **List** scope skip the run;
* task actions do nothing;
* **Notify specific people** still delivers.

## Scope

**Apply in** decides where the automation listens.

| Scope | Runs for | Guide |
|---|---|---|
| **Everywhere** | The whole workspace | [Create an automation](/guides/create-an-automation) |
| **Folder** | Tasks in one [folder](/concepts/hierarchy) and everything inside it | [Create an automation](/guides/create-an-automation) |
| **List** | Tasks in one list | [Create an automation](/guides/create-an-automation) |

**On a schedule** automations have no **Where**.

## Conditions

A condition is a state the task must be in when the trigger fires, such as "**Priority** is
**High**". Conditions use the same fields and operators as a
[view filter](/reference/view-filters): every field can be
compared with a value, and every field except **Stage**, **Status** and **Priority** can also be
checked for being empty. People fields take a member by name: **Me (current user)** is not
available, because an automation has no viewer. The operators are in
[Operators by field kind](/reference/view-filters#operators-by-field-kind).

| Kind | Fields | Guide |
|---|---|---|
| Text | **Title**, **Description**, **Task number** | [Filter fields](/reference/view-filters#filter-fields) |
| Workflow | **Stage**, **Status**, **Priority**, **Story points** | [Filter fields](/reference/view-filters#filter-fields) |
| People | **Assignee**, **Watchers**, **Author**, **Updated by** | [People fields and Me](/reference/view-filters#people-fields-and-me) |
| Place | **Workspace**, **List**, **Parent Task**, **Tags** | [Filter fields](/reference/view-filters#filter-fields) |
| Dates | **Start date**, **Due date**, **Created**, **Updated**, **Completed** | [Relative dates](/reference/view-filters#relative-dates) |
| Time | **Estimate**, **Tracked** | [Filter fields](/reference/view-filters#filter-fields) |

## Actions

An automation runs one or more actions, in the order listed under **Then**. The actions from
**Set status** to **Move to list** have an **Apply to** choice: **The task** that fired the
trigger, or its [**Parent task**](/guides/break-down-with-subtasks).

| Action | What it does | Guide |
|---|---|---|
| **Set status** | Moves the task to a status you pick from a list's statuses | [Create an automation](/guides/create-an-automation) |
| **Set assignee** | Assigns a member, the task's creator, or nobody | [Assign and watch tasks](/guides/assign-and-watch-tasks) |
| **Set priority** | Sets the priority | [Create an automation](/guides/create-an-automation) |
| **Set due date** | Sets an **Exact date**, or a **Relative** one: a number of days, hours and minutes before or after **When it runs**, the **Trigger due date** or the **Trigger start date** | [Create an automation](/guides/create-an-automation) |
| **Set start date** | The same as **Set due date**, for the start date | [Create an automation](/guides/create-an-automation) |
| **Add tags** | Adds the tags you pick | [Tag tasks](/guides/tag-tasks) |
| **Remove tags** | Removes the tags you pick | [Tag tasks](/guides/tag-tasks) |
| **Add watchers** | Makes the people you pick watch the task | [Assign and watch tasks](/guides/assign-and-watch-tasks) |
| **Remove watchers** | Stops the people you pick watching the task | [Assign and watch tasks](/guides/assign-and-watch-tasks) |
| **Move to list** | Moves the task to another list | [Create an automation](/guides/create-an-automation) |
| **Add subtask** | Adds a subtask with the title you give and an optional body | [Break a task down with subtasks](/guides/break-down-with-subtasks) |
| **Complete all subtasks** | Completes every subtask of the task | [Break a task down with subtasks](/guides/break-down-with-subtasks) |
| **Delete all subtasks** | Deletes every subtask of the task | [Break a task down with subtasks](/guides/break-down-with-subtasks) |
| **Delete subtasks matching…** | Deletes the subtasks that match the conditions you set | [Break a task down with subtasks](/guides/break-down-with-subtasks) |
| **Add comment** | Posts a comment on the task | [Create an automation](/guides/create-an-automation) |
| **Notify** | Sends a notification to the assignee, the creator or people you pick, with an optional message. Each person gets it through their own notification channels | [Set up notifications](/guides/set-up-notifications) |
| **Create task from template** | Creates a task from a template, in the trigger task's list or a **Target list**. It is not in the action picker: start from the **Weekly task** or **Monthly task** preset. Any trigger other than a task trigger needs a **Target list** | [Create an automation](/guides/create-an-automation) |

::: danger Deleted subtasks don't come back
**Delete all subtasks** and **Delete subtasks matching…** delete for good; Hule has no trash.
:::

In the body of **Add comment** or **Add subtask**, **Insert value** adds:

* a mention: **Assignee**, **This task** or **Parent task**;
* a value from the task: **Task title**, **Task ID**, **Assignee name**, **List name**,
  **Due date** or **Start date**. See [Task IDs](/reference/task-ids).

A subtask title and a **Notify** message are plain text.

::: info No outgoing webhooks
No action sends an HTTP request: Hule has no outgoing webhooks. To react to task changes from
another system, read tasks through the [REST API](/api/tasks), or connect an agent over
[MCP](/guides/connect-an-ai-agent).
:::

## Options: Active and bulk

| Option | What it does | Guide |
|---|---|---|
| **Active** | Off saves the automation but never runs it | [Create an automation](/guides/create-an-automation) |
| **Skip during bulk operations** | Doesn't fire when many tasks change at once, such as a multi-select edit or an import. On for a new automation | [Edit tasks in bulk](/guides/edit-tasks-in-bulk) |

## Run log statuses

**Automation Log** shows each run and why it did or didn't act. Open it with **Run log** on the
**Automations** page, or with **View runs** in an automation's menu; see
[Run log](/guides/create-an-automation#run-log-check-what-an-automation-did). Runs and failures
stay in the log for 30 days, skipped runs for 7.

| Status | Meaning | Guide |
|---|---|---|
| **Ran** | The trigger fired, the conditions held and the actions ran | [Create an automation](/guides/create-an-automation) |
| **Skipped** | It didn't act. The log names the reason; see the table below | [Create an automation](/guides/create-an-automation) |
| **Failed** | An action failed. The log shows the error | [Create an automation](/guides/create-an-automation) |

| Skip reason | Meaning |
|---|---|
| **Part of a bulk operation** | **Skip during bulk operations** is on and many tasks changed at once |
| **Entity outside the rule's scope** | The task is not in the **Where** folder or list |
| **The change-to transition didn't occur** | None of the changes under **When any of these change** happened: the field didn't change, or its old or new value wasn't the one you set |
| **A condition didn't hold** | An **Only if** condition was false |
| **Already in this automation chain (cycle guard)** | This automation already ran in the same chain |
| **Unknown action** | The action no longer exists |

## Limits and self-protection

| Rule | Detail | Guide |
|---|---|---|
| Chains | One automation's actions can fire another. A chain stops after 11 automations in a row, and the same automation never runs twice in one chain | [Create an automation](/guides/create-an-automation) |
| Failures | An automation that fails 10 times in a row switches itself off. Fix it, then press **Re-enable** | [Run log](/guides/create-an-automation#run-log-check-what-an-automation-did) |
| Deleted list or task | An automation that names a list or task that is then deleted switches itself off and shows why. Point it at something that exists, then press **Re-enable** | [Edit, pause, copy or delete](/guides/create-an-automation#edit-pause-copy-or-delete-an-automation) |
| Deleted folder | Automations whose **Where** is that folder are deleted with it | [Delete a folder or list](/guides/organize-folders-and-lists#delete-a-folder-or-list) |
| Removed member | A member removed before accepting the invitation: automations naming them switch off. A member who had joined: the automation stays on and skips assigning or notifying them | [Remove a member](/guides/invite-members-and-grant-permissions#remove-a-member) |

## Presets

Pressing **New** on the **Automations** page opens **New automation**, which holds ready-made
automations and **Start from scratch**. Each preset opens in the editor with its trigger and
actions filled in, ready to adjust;
see [Presets](/guides/create-an-automation#presets-start-from-a-ready-automation).

| Group | Presets |
|---|---|
| Custom | Start from scratch (an empty automation) |
| Notifications | Notify on done · Due reminder · Comment ping · Overdue alert · Urgent ping · Start reminder |
| New tasks | Auto-assign · Default due date · Tag incoming tasks · Watch new tasks · Description nudge · Starter subtask |
| Task flow | Move when done · Urgent when overdue · Complete subtasks on done · Start parent with child · Status handoff · Route by tag · Low priority to backlog · Stamp start date |
| On a schedule | Weekly task · Monthly task · Weekly reminder |
