Custom Fields in Records
Custom fields allow you to store additional data on any record type in Nexudus (customers, invoices, bookings, products, and more). You can start using custom fields immediately via the API without any prior setup. If you need the field to be visible in the admin UI or member portal, you can optionally register it via the Custom Fields API.How it works
- Read custom field values from any GET response — the
CustomFieldsobject is included in single-record (GET by ID) and list/search results. - Set custom field values by including the
CustomFieldsobject in your PUT request body. - Optionally, register a custom field using the
/api/crm/customfieldsendpoints if you need the field to appear in the Nexudus admin UI or member portal. This is not required for API-only usage.
You do not need to pre-register custom fields to use them via the API. You can store and retrieve arbitrary key-value data on any record by simply including a
CustomFields object in your PUT requests. Registration is only necessary when you want the field to be visible and editable in the Nexudus UI.The CustomFields object
Every record that supports custom fields includes aCustomFields property with the following structure:
array
required
Array of custom field entries for this record.
string
required
The identifier for the custom field. This can be:
- Any arbitrary string if you are using the API to store data without registering the field in the UI.
- The
Idof a registered custom field definition (as a string) if the field was created viaGET /api/crm/customfields/{id}. When fields are registered, the UI uses the definition’sIdas theName.
string
required
The value to store. All values are represented as strings regardless of the field’s
FieldType.string
required
The data type hint. Use
"string" for most field types.object
Read-only. Automatically populated when
Type is "json" and Value contains a valid JSON structure. In that case, the field value is returned as a parsed JSON object rather than a string, making it easier to consume directly without additional parsing on the client side.Reading custom field values
Custom field values are returned automatically in GET responses — both when retrieving a single record by ID and in list/search results.Example: GET a single invoice
cURL
CustomFields property:
For registered custom fields, the
Name in each entry corresponds to the Id of the custom field definition. Use GET /api/crm/customfields to look up the human-readable name and configuration. For unregistered fields, the Name is whatever string you chose when storing the value.Setting custom field values
To set or update custom field values, include theCustomFields object in your PUT request body. You must send the full record as part of the PUT request (the API does not support PATCH).
Example: Update an invoice with a custom field value
cURL
JavaScript
Python
Setting multiple custom field values
Include multiple entries in theData array to set several custom fields at once:
Clearing a custom field value
To clear a custom field value, setValue to an empty string:
Supported record types
Every record in the Nexudus REST API supports theCustomFields property — you can read and set custom field values on any record via the API regardless of whether a custom field definition exists for that record type.
However, for custom fields to appear and be editable in the Nexudus admin UI, you must create a custom field definition with a matching RecordType. The following record types have UI support when creating a custom field definition:
If you only need to store and retrieve data programmatically via the API, you can use the
CustomFields array on any record without creating a custom field definition. The definition is only required if you want the field to be visible and editable in the admin dashboard or member portal.Publishable Custom Fields on Customers
The Customer (Coworker) entity has an additional type of custom field called Publishable Custom Fields. These are distinct from theCustomFields array described above and are unique to the Coworker entity.
Two types of custom fields on Customers
Customers support both types of custom fields:What are Publishable Custom Fields?
Publishable Custom Fields are 30 dedicated string properties (Custom1 through Custom30) that exist directly on the Coworker entity. Unlike the CustomFields array, these are first-class properties of the record — not stored as key-value pairs.
In the admin UI, these are referred to as “Publishable Custom Fields” because their values can optionally be displayed on a customer’s public profile in the member portal.
Reading Publishable Custom Fields
These fields are returned as top-level properties in GET responses, just like any other coworker property:Setting Publishable Custom Fields
Set these fields directly in the PUT request body as top-level properties:cURL
JavaScript
Filtering by Publishable Custom Fields
Because these are regular properties on the Coworker entity, you can filter by them using standard query parameters:cURL
JavaScript
CustomFields array filters in the same request:
For the complete list of query parameters available when searching coworkers (including all 30 publishable custom fields), see the Search Coworkers API documentation.
Searching and filtering by custom field values
You can filter list/search results by custom field values using query string parameters. The filter parameter follows this pattern:{EntityName}is the API entity name (e.g.CoworkerInvoice,Coworker,Booking){CustomFieldId}is theNameused when storing the custom field value — this is theIdof a registered custom field definition, or any arbitrary name you used when setting the value directly via the API{value}is the value to filter by
Example: Find invoices by custom field value
cURL
JavaScript
Python
More examples by entity type
The filter performs a case-insensitive string match on the custom field value. You can combine custom field filters with any other standard query filters on the same request.
Registered vs unregistered custom fields
There are two ways to use custom fields:Unregistered fields (API-only)
You can store custom data on any record without pre-registering the field. Simply choose a meaningful name and include it in your PUT request:Registered fields (visible in the UI)
To make a custom field visible and editable in the UI, create a custom field definition via the/api/crm/customfields endpoint. Once registered, the field’s Id is used as the Name when reading and writing values:
cURL
Id from each result as the Name value in your CustomFields.Data entries.
When you register a custom field, the Nexudus UI uses the field definition’s
Id as the Name stored on each record. This is why registered fields have numeric names (e.g. "1414363299") rather than human-readable ones.