Skip to content

Custom Fields

Custom fields let you extend contacts, companies, and projects with your own data. Define text, number, date, boolean, or dropdown fields and use them across your CRM.

FieldTypeDescription
iduuidUnique identifier of the custom field definition
account_iduuidID of the account that owns this definition
entity_typestringRecord type this field attaches to One of: contact, company, project, deal
labelstringHuman-readable field label shown in the UI
field_typestringData type of the field One of: text, number, date, boolean, enum
optionsobjectAllowed values as a JSON string array; non-empty for enum fields, otherwise empty
requiredboolWhether a value must be provided when saving the record
display_orderintSort position of the field within its entity type (ascending)
created_atdatetimeCreation timestamp (ISO 8601)

Endpoint: custom-fields-create

FieldTypeRequiredDescription
entity_typestringYesRecord type this field attaches to One of: contact, company, project, deal
labelstringYesHuman-readable field label shown in the UI
field_typestringYesData type of the field One of: text, number, date, boolean, enum
optionsobjectNoAllowed values as a JSON string array; required and non-empty for enum field_type
requiredboolNoWhether a value must be provided when saving the record
display_orderintNoSort position of the field within its entity type (ascending)
Terminal window
curl -X POST https://api.driftwoodapp.com/api/custom-fields-create \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_type": "...", "label": "...", "field_type": "..."}'

Endpoint: custom-fields-delete

FieldTypeRequiredDescription
idstringYesID of the custom field definition to delete
Terminal window
curl -X POST https://api.driftwoodapp.com/api/custom-fields-delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'

Endpoint: custom-fields-get

FieldTypeRequiredDescription
idstringYesID of the custom field definition to retrieve
Terminal window
curl -X POST https://api.driftwoodapp.com/api/custom-fields-get \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'

Endpoint: custom-fields-list

FieldTypeRequiredDescription
entity_typestringNoFilter definitions by record type; omit to list all One of: contact, company, project, deal
Terminal window
curl -X POST https://api.driftwoodapp.com/api/custom-fields-list \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'

Endpoint: custom-fields-update

FieldTypeRequiredDescription
idstringYesID of the custom field definition to update
labelstring?NoNew field label; omit to leave unchanged
optionsobject?NoNew allowed values as a JSON string array; non-empty required for enum fields. Omit to leave unchanged
requiredbool?NoWhether a value is required; omit to leave unchanged
display_orderint?NoNew sort position; omit to leave unchanged
Terminal window
curl -X POST https://api.driftwoodapp.com/api/custom-fields-update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'
CodeDescription
custom_fields.invalid_entity_typeInvalid entity type
custom_fields.label_requiredLabel required
custom_fields.invalid_field_typeInvalid field type
custom_fields.options_requiredOptions required
custom_fields.invalid_idInvalid id
custom_fields.not_foundNot found