Lifecycle Triggers

Two lifecycle triggers ship with the plugin: one for projects and one for tasks. Both use the same mental model: you choose the destination event you care about, and the trigger fires when an entity ends up in that state.

Lifecycle triggers are for moments when the state of work changes in a way that matters to people or downstream processes. Use them when you want to react to projects being created, completed, cancelled, blocked, or reopened, or to tasks reaching those same milestones. A common pattern is to launch a workflow or send a communication when the trigger fires.

Project Lifecycle Changed

The Project Lifecycle Changed trigger is the right choice when the project itself is the thing you care about. For example, you might notify a requester when their project is completed, leave an audit comment when a project is cancelled, or kick off a follow-up process when a new project is created. It is intentionally easier to configure than a generic entity-change trigger because the event choices are named in the same terms administrators already use when talking about project state.

  • Created matches when a new project is created.
  • Active matches an existing project that becomes Active from Completed or Cancelled.
  • Completed matches an existing project that transitions to Completed.
  • Cancelled matches an existing project that transitions to Cancelled.
  • Blocked matches an Active project that ends up blocked. It is the one lifecycle event that can fire on both creation and modification.
  • Unblocked matches an existing Active project that transitions from blocked to not blocked.
  • Project Type is an optional filter that limits the trigger to one type of project.

The main nuance is that this is a destination-state trigger, not a raw field-diff trigger. If one save moves a project through multiple values, the trigger fires for the resulting state. Also note that Active, Completed, Cancelled, and Unblocked are modification-driven events; Blocked is the exception because a project may be created already blocked.

Project Merge Fields

  • Entity is the project whose lifecycle changed.
  • LifecycleEvent is the specific event that fired: Created, Active, Completed, Cancelled, Blocked, or Unblocked.
  • ProjectType is the project type of the affected project.

Task Lifecycle Changed

The Task Lifecycle Changed trigger is the task-focused version of the same idea. Use it when the next step should happen because a task changed state rather than because the whole project did. For example, you might alert an assignee when a blocked task becomes unblocked, or launch a workflow when a task in a certain kind of project is completed.

The event choices are the same as the project trigger: Created, Active, Completed, Cancelled, Blocked, and Unblocked. The especially useful extra setting is Parent Project Type, which lets you scope the trigger to tasks under only certain kinds of projects. That is often the difference between a generally noisy automation and one that is targeted enough to be helpful.

It follows the same firing model as the project trigger: destination-state semantics, one trigger result per save, and Blocked as the special event that can also fire on creation.

Task Merge Fields

  • Entity is the task whose lifecycle changed.
  • LifecycleEvent is the specific event that fired: Created, Active, Completed, Cancelled, Blocked, or Unblocked.
  • Project is the task's parent project.
  • ProjectType is the parent project's type.