ProductOSDocs

Settings

Custom fields

Define per-entity custom fields: text, number, boolean, date, single/multi-select, URL. Values live on each row's metadata and travel through the API and MCP.

Custom fields let workspaces define per-entity fields without a schema change. Values live at metadata.custom.{field_key} on each entity row. The definitions are managed here and the values travel through the API and MCP; entity dialogs and list views don't render them.

Members, admins and owners can manage it. Below that, the section shows a Locked panel.

What you'll see

  • Entity filter: Feedback, Themes, Features, Initiatives, Releases, Outcomes, Accounts, Personas, Products, Modules, or "All entities"
  • Custom-field list: entity, label and key, type, required flag, sort order, with edit and delete icons per row
  • New field button: opens the definition dialog (entity type, field type, label, key, options for select types, sort order, required). Entity type, field type and key are fixed after creation; label, options, sort order and required can be edited

Field types

Seven types:

  • text: single-line string
  • number: integer or decimal
  • boolean: toggle (true / false / null)
  • date: ISO date
  • single_select: one option from a defined list
  • multi_select: multiple options from a defined list
  • url: a URL

There is no "long text" / Markdown field type.

Supported entities

feedback, themes, features, initiatives, releases, outcomes, accounts, personas, products, modules. (Team members aren't in scope.)

Where the values live

  • On each row at metadata.custom.{field_key}, returned with the row by the entity API and by the MCP connector's get_entity
  • In the per-entity JSON and CSV exports (inside the metadata column), but not in the Excel workbook from Import / Export
  • Definitions are readable through GET /api/v1/custom-fields and the MCP connector's get_workspace; the AI action catalog can create and delete definitions

Custom fields are not rendered in entity dialogs, list columns or filters, so the API is the way to read and write values.

Removing a field

Deletes the definition; values on existing rows are preserved (still at metadata.custom.{field_key}). Re-creating a field with the same key picks those values up again.

  • Import / export: the Excel workbook does not carry custom field values; use the per-entity JSON export
  • API authentication: for reading metadata.custom programmatically

Last reviewed 2026-09-22