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:
| Type | Value |
|---|---|
text | free text |
number | numeric |
date | a date |
select | one option from a defined set |
multi_select | any number of options from a defined set |
checkbox | boolean |
url | a link |
user_ref | a 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:
- REST —
PATCH/POSTthe card's field value endpoints (see the OpenAPI reference). - MCP —
card_write { method: "set_field", params: { cardId, fieldId, value } }(anullvalue clears it). Read a board's field definitions withboard_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.