Reference

Attributes

On this page

Attributes are the fields on each activity — the title, the body, the category, the deadline. The attributes: list shapes the activity form and the activity itself.

Anatomy

attributes:
  - name: title                # required, unique identifier
    type: string               # required, attribute type
    label: Subject             # required, display label
    description: Short summary # optional, help text
    placeholder: e.g. ...      # optional, input placeholder
    hint: tip for the user     # optional, secondary hint
    defaultValue: ""           # optional, initial value (supports macros)
    visible: always            # optional, when to show
    mandatory: true            # optional, must be non-empty
    important: false           # optional, highlight in UI
    readonly: false            # optional, hide from edit forms
    postmortem: false          # optional, only visible after concluding
    multiSelect: false         # for select/tag only
    style: ""                  # for button only
    viewers: ""                # optional, role expression
    editors: ""                # optional, role expression (defaults to viewers)
    display: ""                # optional, render template
    options: []                # for select/tag/button only
    trigger: {...}             # optional, runs when this attribute changes

Types

TypeUse forNotes
stringShort single-line textRequired for title
textLong multi-line textRequired for conclusion
markdownMulti-line markdownRendered as Slack mrkdwn / Teams
markdownLineSingle-line markdown
htmlPre-rendered HTMLFor imported content
selectDropdown / multi-selectRequires options; supports multiSelect
userMember picker
linkURL
buttonClickable buttonCombine with a trigger; supports style: primary or danger
tagTag pickerRequires options

Reserved attribute names

These names have built-in meaning. You can declare them to customize their label, defaults, visibility, or to add a trigger; you cannot rename them.

NameBuilt-in typePurpose
titlestringActivity headline. Required.
bodytext or markdownLong description
conclusiontextFilled when the activity is closed
deadline(built-in)Due date; hide via settings.disableDeadline: true
severity(built-in)Severity scale
statusselectActivity status; selected option’s state: can drive auto-close (see Statuses and states)

Visibility

visible: controls when the attribute appears on the form. Values combine with commas:

ValueEffect
always (default)Visible on create, edit, and conclude
neverHidden from all forms
createOnly on the create form
editOnly when editing an existing activity
concludeOnly on the close form
nonemptyCombine with the above to hide when value is empty

Examples:

- name: notes
  type: text
  label: Notes
  visible: edit               # only show after creation

- name: triage
  type: select
  visible: edit,conclude      # not on create

- name: assignedTo
  type: user
  visible: always,nonempty    # hide until set

Mandatory, readonly, important, postmortem

  • mandatory: true — must be set before the activity can be saved.
  • readonly: true — visible but not editable from forms; scripts or triggers can still write to it via activity.set / setAttribute.
  • important: true — highlighted in the activity banner / list.
  • postmortem: true — hidden until the activity is concluded.

Default values

defaultValue: is the initial value when an activity is created. It supports macros, so you can pre-fill from the initiator, channel, or another attribute.

- name: assignedTo
  type: user
  defaultValue: ${initiator}

- name: pageUrl
  type: link
  defaultValue: https://wiki.example/${title}

ACLs: viewers and editors

viewers and editors accept role expressions. editors defaults to viewers if unset.

- name: budget
  type: string
  viewers: team           # all team members can see
  editors: ${owner}       # only the owner can change

Both fields support the special tokens team, external, and direct user or channel references.

Display templates

display: overrides how the attribute renders in summaries. Supports macros and Markdown.

- name: jira.id
  type: string
  label: Jira issue
  display: "[${jira.id}](https://acme.atlassian.net/browse/${jira.id})"

Options (select, tag, button)

For select and tag attributes, declare each choice under options:.

- name: status
  type: select
  label: Status
  options:
    - name: open
      label: Open
      state: open               # ActivityState binding
    - name: in_progress
      label: In progress
    - name: resolved
      label: Resolved
      state: closed             # selecting this concludes the activity
      trigger:
        setAttribute:
          name: conclusion
          value: "Resolved by ${owner}"

Option fields:

YAML keyTypePurpose
namestringUnique identifier (required)
labelstringDisplay text (required)
stateopen | closed | pendingOverride the activity’s lifecycle state when this option is selected
externalstringMapping to an external system value (Jira/Zendesk)
filterstringConditional visibility: attr==value or attr in [v1,v2]
triggerobjectRuns when this option is selected (same shape as a normal trigger; see Triggers)

Conditional options with filter

Hide an option until another attribute has a specific value:

- name: severity
  type: select
  options:
    - name: low
      label: Low
    - name: high
      label: High
- name: pager
  type: select
  options:
    - name: yes
      label: Page on-call
      filter: severity == high     # only available when severity is "high"

multiSelect

For select, set multiSelect: true to allow multiple choices. The attribute value is then a comma-separated list of option names.

Per-attribute triggers

Set trigger: on an attribute to react when that attribute changes (equivalent to an onEdit trigger filtered by attribute name).

- name: status
  type: select
  trigger:
    setAttribute:
      name: conclusion
      value: "Status set to ${status}"
  options: [...]

See Triggers for the full trigger action vocabulary.

Button attributes

A button attribute renders a button instead of an input. The button’s trigger fires when clicked.

- name: page
  type: button
  label: Page on-call
  style: danger
  trigger:
    alert: "#oncall"
    script: page