custom_fields.segment is the field’s key,
not an opaque id, so your code reads the way the workspace talks. The key is
fixed at creation; renaming a field’s label in Sailer does not move it.
Values are typed. A number field returns a JSON number, a checkbox returns a
boolean, a date returns an ISO-8601 date string. They are not stringified.
Discovering the fields a workspace uses
Every custom field defined on the entity appears on every record, withnull
where a record has no value. So reading any one record shows you the complete
set of keys in use.
A dedicated field-definition endpoint, exposing each field’s type, label, and
allowed values, is designed but not part of this release. Until then, infer
type from the values you receive.
Writing them
Send only the keys you want to change. Unlisted fields are left alone:null. Sending an unknown key, or a value of the wrong
type, returns 422 with the offending key in error.detail.