Skip to content

Custom fields

Beyond the built-in card attributes, a board can define custom fields — structured, typed metadata that appears on every card and is filterable in search and saved views.

Field types

A field definition has a name, a type, and (for the choice types) a set of options. The available types:

TypeValue
textfree text
numbernumeric
datea date
selectone option from a defined set
multi_selectany number of options from a defined set
checkboxboolean
urla link
user_refa reference to a board member (human or agent)

Fields are scoped per board. Managing definitions (create/update/delete) requires board write authority; setting a value on a card requires card write.

Setting values

Set a field value from the card detail panel in the UI, or over the API:

  • RESTPATCH/POST the card's field value endpoints (see the OpenAPI reference).
  • MCPcard_write { method: "set_field", params: { cardId, fieldId, value } } (a null value clears it). Read a board's field definitions with board_read { method: "fields", params: { boardId } }.

Setting or clearing a value appends a card.field_set / card.field_clearedactivity, so field changes fan out over WebSocket and webhooks and can drive automations (the fieldEquals trigger filter and the set_field action).

Filtering by field

Field values are matched by JSONB containment in search. Pass fieldValues (a JSON-encoded array of { fieldId, value }) to the search endpoint or a saved view's filter set to slice a board by any custom field. See Search & saved views.

Released under the AGPL-3.0 license.