---
{
  "id": "platform.kanban.events-and-automation",
  "topic": "kanban",
  "title": "Kanban events and Trigger automation boundary",
  "locale": "en",
  "version": "2026-07-24",
  "summary": "Card lifecycle mutations emit a bounded set of Trigger events, while archive and attachment operations emit none.",
  "content": "Kanban emits Trigger events for these lifecycle operations: create → `card.created`; a changed non-move update → `card.updated`; delete → `card.deleted`; and a cross-column update, move, or completion → `card.moved`, `card.moved_into_column`, and `card.moved_out_of_column`. A move can additionally produce `column.cleared` when the source becomes empty and `board.all_done` when all non-archived cards are in Done-type columns.\n\nArchive, unarchive, comments, labels, commit attachments, and note links emit no Trigger events. A request such as “run when a card is archived” is therefore unsupported; say so and offer an available alternative such as listening for `card.moved`.\n\n“When a card moves to Done, do …” spans two domains: Kanban supplies the card operation and Trigger supplies event listening. Retrieve the Trigger contract, especially `platform.trigger.events-and-scopes`, for `sourceScope` and lifecycle details instead of repeating them here. This card owns only the Kanban emission boundary.\n\nChanges made by an Agent action can also match configured triggers. Runtime increments and guards trigger chain depth, so warn about possible automation loops but do not invent a numeric limit. Event delivery, source scope, and the actual action result remain authoritative.\n",
  "aliases": [
    "Kanban trigger events",
    "card moved automation",
    "card moved to Done",
    "card archived trigger",
    "column cleared",
    "board all done"
  ],
  "tags": [
    "kanban",
    "trigger",
    "event",
    "automation"
  ],
  "relatedActions": [
    "arinova.kanban.create_card",
    "arinova.kanban.update_card",
    "arinova.kanban.move_card",
    "arinova.kanban.complete_card",
    "arinova.kanban.delete_card",
    "arinova.trigger.create_trigger",
    "arinova.trigger.update_trigger"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/kanban/events-and-automation/"
}
---

Kanban emits Trigger events for these lifecycle operations: create → `card.created`; a changed non-move update → `card.updated`; delete → `card.deleted`; and a cross-column update, move, or completion → `card.moved`, `card.moved_into_column`, and `card.moved_out_of_column`. A move can additionally produce `column.cleared` when the source becomes empty and `board.all_done` when all non-archived cards are in Done-type columns.

Archive, unarchive, comments, labels, commit attachments, and note links emit no Trigger events. A request such as “run when a card is archived” is therefore unsupported; say so and offer an available alternative such as listening for `card.moved`.

“When a card moves to Done, do …” spans two domains: Kanban supplies the card operation and Trigger supplies event listening. Retrieve the Trigger contract, especially `platform.trigger.events-and-scopes`, for `sourceScope` and lifecycle details instead of repeating them here. This card owns only the Kanban emission boundary.

Changes made by an Agent action can also match configured triggers. Runtime increments and guards trigger chain depth, so warn about possible automation loops but do not invent a numeric limit. Event delivery, source scope, and the actual action result remain authoritative.
