Skip to main content
POST
/
api
/
crm
/
customfields
Create CustomField
curl --request POST \
  --url https://spaces.nexudus.com/api/crm/customfields \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "BusinessId": 123,
  "Name": "<string>",
  "DisplayOrder": 123,
  "RecordType": 123,
  "FieldType": 123,
  "CoworkerFieldPosition": 123,
  "CustomFieldIndex": 123,
  "Visibility": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A CustomField defines an additional field available for a specific entity type. Nexudus supports attaching arbitrary data to any entity type via the CustomFields array. Each custom field targets a single RecordType (e.g. Coworker, Team, Booking, Product) and has a FieldType that determines how the value is captured and stored (Text, LongText, Boolean, Dropdown, Date, Integer, or Decimal). For Dropdown fields, populate AvailableOptions with a comma-separated list of choices. Set AllowMultipleOptions to true to let users select more than one. The CustomFieldIndex uniquely identifies the field within its record type and business, and is used to map values in the entity’s CustomFields array. Use the Visibility property to control whether the field is Visible, ReadOnly, or Internal (admin-only). The various DisplayIn* flags control where the field appears: sign-up forms, profile forms, tour forms, event sign-up, booking forms, directory search, and public profiles. Custom fields targeting the Coworker record type can be placed in a specific tab using CoworkerFieldPosition (General, Contact, Profile, Billing, Access, or Notes). When RecordType is FloorPlanDesk or Resource, link specific resources via the Resources many-to-many list.

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the CustomField-Create role.

Enums

ValueName
1Coworker
2Team
3FloorPlanDesk
4CrmOpportunity
5Visitor
6Proposal
7CoworkerInternal
8HelpDeskMessage
9HelpDeskDepartment
10Product
11Booking
12CoworkerInvoice
13Business
14CoworkerContract
15Tariff
16Resource
17FloorPlan
18InventoryAsset
ValueName
1Text
2LongText
3Boolean
4Dropdown
5Date
6Integer
7Decimal
ValueName
1General
2Contact
3Profile
4Billing
5Access
6Notes
ValueName
1Visible
2ReadOnly
3Internal

Request Body

Required Fields

BusinessId
integer
required
Business this custom field belongs to.
Name
string
required
Field label displayed to users.
DisplayOrder
integer
required
Sort order when multiple custom fields are shown together.
RecordType
integer
required
Entity type this field applies to: Coworker, Team, Booking, Product, Resource, etc..
FieldType
integer
required
Data type of the field: Text, LongText, Boolean, Dropdown, Date, Integer, or Decimal.
CoworkerFieldPosition
integer
required
Tab where this field appears on the coworker record: General, Contact, Profile, Billing, Access, or Notes.
CustomFieldIndex
integer
required
Unique index identifying this field within its record type and business.
Visibility
integer
required
Visibility level: Visible (editable by customer), ReadOnly (shown but not editable), or Internal (admin only).

Optional Fields

AvailableOptions
string
Comma-separated list of choices for Dropdown fields.
AllowMultipleOptions
boolean
Whether multiple options can be selected for Dropdown fields.
Required
boolean
Whether a value must be provided when saving the parent entity.
GroupName
string
Optional group name used to visually group related custom fields together.
DisplayInPublicProfile
boolean
Show this field on the coworker’s public profile page.
Show this field as a filter in the member directory search.
Alternative label shown when this field appears in directory search filters.
DisplayInSignUpForm
boolean
Show this field on the member sign-up form.
DisplayInProfileForm
boolean
Show this field on the member profile edit form.
DisplayInTourForm
boolean
Show this field on the tour booking form.
DisplayInEventSignUpForm
boolean
Show this field on the event sign-up form.
ShowInBookingForm
boolean
Show this field on the resource booking form.
DisplayInProductSignUpForm
boolean
Show this field on the product purchase form.
DisplayInTeamSignUpForm
boolean
Show this field on the team sign-up form.
DisplayInCourseSignUpForm
boolean
Show this field on the course sign-up form.
DisplayInTariffSignUpForm
boolean
Show this field on the pricing plan (tariff) sign-up form.
DisplayInBookingSignUpForm
boolean
Show this field on the booking sign-up form.
Show this field as a filter in resource search.
Resources
integer[]
Resources this custom field is linked to (for FloorPlanDesk or Resource record types).

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/crm/customfields" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BusinessId": 0,
    "Name": "",
    "DisplayOrder": 0,
    "RecordType": 0,
    "FieldType": 0,
    "CoworkerFieldPosition": 0,
    "CustomFieldIndex": 0,
    "Visibility": 0
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the customfield was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "CustomField was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Name: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Name"
    }
  ],
  "WasSuccessful": false
}