Skip to content

Task lifecycle

Every task in Hule has a status, and every status belongs to a group. The group defines how the task behaves in views, notifications, and automations.

Status groups

There are three groups:

GroupMeaningExample statusesEffect
OpenNot yet startedTo Do, Backlog, WaitingTask appears in "to do" views. No completion notifications.
In ProgressActively being worked onIn Progress, In Review, TestingTask is considered active. Due date alerts fire.
ClosedFinished or discardedDone, Cancelled, Won't DoTask is considered complete. Moving here may trigger completion notifications and automations.

A list's status template defines which statuses exist and which group each belongs to. You can't assign a task to a status group directly — you pick a status, and its group comes with it.

The lifecycle

1. Creation

A task is created in a specific list. It gets the list's default status — usually the first open status in the template. From there, the user moves it through statuses manually (drag on the board, or click the status badge).

2. Assignment

A workspace member can be assigned to the task. The assignee receives notifications about:

  • Being assigned.
  • Comments on the task.
  • Status group changes.
  • Approaching or missed due dates.

3. Status transitions

Moving a task between statuses within the same group is a routine operation — no side effects. Crossing a group boundary triggers:

Open → In Progress: The task is considered "in flight". Due date alerts are active.

In Progress → Closed: The task is complete. If the task was assigned, the assignee gets a notification. If any automations watch for this transition, they fire.

Closed → Open/In Progress: The task is reopened. Existing notifications about completion are not re-sent (each notification is tracked per task).

4. Due date & overdue

When a due date is set:

  • A background scanner checks every 5 minutes for tasks whose due date is approaching or past.
  • Due soon: notified once per task when the due date is within the configured window.
  • Overdue: notified once when the due date passes.
  • If you change the due date, the notification resets and may fire again.

5. Completion

A task is considered "done" when its status is in the Closed group. There's no separate "complete" flag — status is the single source of truth.

Subtrees and cascading

When a task has subtasks:

  • Moving the parent to Closed does not auto-close subtasks. Each task's status is independent.
  • Moving the parent to another list moves all descendants with it.
  • Deleting a parent task deletes all its subtasks.

Recurring task instances

Tasks spawned from a recurring series carry:

  • seriesId — link back to the recurring job definition.
  • occurrenceDate — the calendar date this instance was scheduled for.

These are informational — the task behaves like any other task afterwards. Editing it doesn't affect the series unless you explicitly use the series edit modes (this / this-and-following / all).