Overview of filtering and updating custom fields for applications, payments, contracts, and users.
Custom Fields Overview
In Zylo, customizable fields can be created for applications, payments, contracts, and users. These fields (referred to commonly as "Custom Fields") allow for users to create their own filterable fields that are attached to an application, payment, contract, or user.
The Zylo Enterprise API exposes these values through the custom_fields field. Each resource returns only its own scoped custom field values — Applications return Applications-scoped values, Payments return Payments-scoped values, Contracts return Contracts-scoped values, and Users return Users-scoped values. These values can be filtered and updated on Applications, Contracts, and Users; on Payments custom_fields is read-only and can be filtered but not updated.
Payments, Contracts, and Users custom fields are each gated behind their own feature. When the feature is enabled for your company, the custom_fields field is returned on that resource's responses; when it is not enabled, the field is not returned, even if scoped custom fields exist.
Filtering Custom Fields
Below is a table describing how each custom field type can be filtered on:
| Type | Description | Example |
|---|---|---|
boolean | Use true for "Yes" values and false for "No" values. | ?custom_fields[bool]=true |
choice | Use standard string filtering syntax. | ?custom_fields[dropdown]=option1,option2 |
multichoice | Matches if the field's selected options intersect the given values. To require all values instead of any, wrap the values in [...]. | ?custom_fields[multi]=option1,option2 (any), ?custom_fields[multi]=[option1,option2] (all) |
currency | Use standard number filtering syntax. | ?custom_fields[currency]=10,gt |
date | Use standard date filtering syntax. | ?custom_fields[date]=2024-01-01,gte |
email | Use standard string filtering syntax. | ?custom_fields[email][email protected] |
number | Use standard number filtering syntax. | ?custom_fields[number]=1,gte,5,lte |
text | Use standard string filtering syntax. | ?custom_fields[text]=engineering |
Updating Custom Fields
Updating custom field values is supported on Applications, Contracts, and Users. custom_fields on Payments is read-only.
Below is a table describing how each custom field type can be updated:
| Type | Description | Example |
|---|---|---|
boolean | Use true for "Yes" values and false for "No" values. | { "custom_fields": { "bool": true } } |
choice | Use string value. Must match a current option. | { "custom_fields": { "dropdown": "option1" } } |
multichoice | Use an array of strings. Each value must match a current option. | { "custom_fields": { "multi": ["option1", "option2"] } } |
currency | Use number value. | { "custom_fields": { "currency": 100 } } |
date | Use date format YYYY-MM-DD. Does not accept times. | { "custom_fields": { "date": "2024-12-20" } } |
email | Use valid email format. | { "custom_fields": { "email": "[email protected]" } } |
number | Use number value. | { "custom_fields": { "number": 100 } } |
text | Use string value. | { "custom_fields": { "text": "example" } } |
You can update multiple custom fields at once in a single request, like below:
{
"custom_fields": {
"bool": true,
"date": "2024-01-01"
}
}