August 6, 2026

Custom Fields now support a new multichoice type — multi-select fields whose value is an array of selected options — with full support for creation, values, filtering, and one-way conversion from an existing choice field.

Added

Custom Fields

New multichoice type

  • Custom fields can now be created with "type": "multichoice", Zylo's equivalent of the Multi-Select field type. Like choice, it takes an options array and an optional default; unlike choice, its value is an array of selected options rather than a single value.
  • A multichoice field's value is always returned as an array — an empty array [] when unset with no default configured, or a single-element array when a default is configured — never a bare string.
  • custom_fields values can be updated on Applications, Contracts, and Users (not Payments, where custom_fields remains read-only) by passing an array of strings, e.g. { "custom_fields": { "regions": ["East", "West"] } }.
  • multichoice values can be filtered with ?custom_fields[slug]=option1,option2 (matches records selecting any of the given options) or ?custom_fields[slug]=[option1,option2] (matches only records selecting all of them).

Convert a Choice Custom Field to Multichoice

  • An endpoint to convert an existing choice custom field to multichoice (POST /v2/customFields/{customFieldId}/convertToMultichoice). Existing values on the field are migrated automatically — a single selected option becomes a single-element array. This is a one-way conversion: a multichoice field cannot be converted back to choice.
  • MCP and Clarity clients can trigger this conversion with the new custom_field_convert_to_multichoice tool, including converting multiple fields at once.

Changed

Custom Fields

  • Custom field options can no longer be blank/whitespace-only or contain a semicolon (;), which is now reserved as the delimiter for multichoice CSV imports. This applies to choice and multichoice fields.