Update a custom field

Update a custom field definition — only the fields you send change. field_key cannot be changed, because stored values are keyed by it.

PATCH https://api.centerfy.ai/webhooks/inbound/custom-fields/:id

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Path parameters

NameTypeRequiredDescription
idstring (uuid)YesThe custom field definition id.

Body parameters

NameTypeRequiredDefaultDescription
field_namestringNo—Display name, 1–200 characters.
field_typestringNo—One of text, number, date, select, textarea, checkbox, multiselect.
optionsstring[] | nullNo—Choices for select / multiselect fields (max 200); required and non-empty for those types. Blank entries are dropped.
is_requiredbooleanNo—Whether the field is marked required in the app.
sort_orderintegerNo—Display position; minimum 0.

Request body

{
  "options": [
    "Basic",
    "Pro",
    "Enterprise",
    "Custom"
  ]
}

Example

curl -X PATCH "https://api.centerfy.ai/webhooks/inbound/custom-fields/{id}" \
  -H "x-api-key: $CENTERFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "options": [
    "Basic",
    "Pro",
    "Enterprise",
    "Custom"
  ]
}'
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.customFields.update("<customFieldId>", {
  "options": [
    "Basic",
    "Pro",
    "Enterprise",
    "Custom"
  ]
});
console.log(result);
centerfy customFields update <customFieldId> '{"options":["Basic","Pro","Enterprise","Custom"]}'

MCP tool: centerfy_custom_fields_update (see MCP server)

Response

{
  "status": "success",
  "custom_field": {
    "id": "4b5c6d7e-8f90-4a1b-9c2d-3e4f5a6b7c8d",
    "field_name": "Plan tier",
    "field_key": "plan_tier",
    "field_type": "select",
    "options": [
      "Basic",
      "Pro",
      "Enterprise",
      "Custom"
    ],
    "is_required": false,
    "sort_order": 0,
    "source": "platform",
    "external_key": null,
    "archived_at": null,
    "created_at": "2026-10-01T10:00:00.000Z",
    "updated_at": "2026-10-04T08:15:00.000Z"
  }
}

Errors

  • 400 — if field_name is empty or the resulting select / multiselect field would have no options; 404 if the field is not in this sub-account; 409 if the field is managed in GoHighLevel.

Notes

Send at least one field. Values already stored on contacts are not converted when the type or options change.

© 2026 Centerfy AI. All rights reserved.