HighLevel: Update Custom Field By Id
HighLevel customFields.updateCustomField: arguments, response, policy and SDK examples.
← Custom fields operations · Get started
Operation gohighlevel.custom_fields_update_custom_field
Provider route: PUT /custom-fields/{id}. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/gohighlevel with npm, or alter-sdk-gohighlevel with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { HighLevelIntegration } from "@alter-ai/gohighlevel";
async function execute(input: Parameters<HighLevelIntegration["customFields"]["updateCustomField"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new HighLevelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.customFields.updateCustomField(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_gohighlevel import HighLevelIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = HighLevelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.custom_fields.update_custom_field(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.id | string | Required within parent | |
body | Model | Required within parent | Expand Update Custom Field By Id — request body — body |
Referenced models: Update Custom Field By Id — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Update Custom Field By Id — response body |
Referenced models: Update Custom Field By Id — response body
Schemas
Section titled “Schemas”Update Custom Field By Id — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
acceptedFormats | string | Optional | Allowed file formats for uploads. Options include: .pdf, .docx, .doc, .jpg, .jpeg, .png, .gif, .csv, .xlsx, .xls, all One of: .pdf, .docx, .doc, .jpg, .jpeg, .png, .gif, .csv, .xlsx, .xls, all |
description | string | Optional | Description of the field |
locationId | string | Required within parent | Location Id |
maxFileLimit | number | Optional | Maximum file limit for uploads. Applicable only for fields with a data type of FILE_UPLOAD. |
name | string | Optional | Field name |
options | array | Optional | Options for the field. Important: Providing options will completely replace the existing options array. You must include all existing options alongside any new options you wish to add. Removal of options is not supported through this update. Applicable only for SINGLE_OPTIONS, MULTIPLE_OPTIONS, RADIO, CHECKBOX, TEXTBOX_LIST types. |
options[] | Model | Each item | Expand Update Custom Field By Id — request body — body options item |
placeholder | string | Optional | Placeholder text for the field |
showInForms | boolean | Required within parent | Whether the field should be shown in forms |
Referenced models: Update Custom Field By Id — request body — body options item
Update Custom Field By Id — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
field | Model | Optional | Expand Update Custom Field By Id — response body — field |
Referenced models: Update Custom Field By Id — response body — field
Update Custom Field By Id — request body — body options item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
key | string | Required within parent | Key of the option (Included in Create and Response, excluded in Update) |
label | string | Required within parent | Value of the option |
url | string | Optional | URL associated with the option (Optional, valid only for RADIO type) |
Update Custom Field By Id — response body — field
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
acceptedFormats | string | Optional | Allowed file formats for uploads. Options include: .pdf, .docx, .doc, .jpg, .jpeg, .png, .gif, .csv, .xlsx, .xls, all Known values: .pdf, .docx, .doc, .jpg, .jpeg, .png, .gif, .csv, .xlsx, .xls, all |
allowCustomOption | boolean | Optional | Determines if users can add a custom option value different from the predefined options in records for RADIO type fields. A custom value added in one record does not automatically become an option and will not appear as an option for other records. |
dataType | string | Required within parent | Type of field that you are trying to create Known values: TEXT, LARGE_TEXT, NUMERICAL, PHONE, MONETORY, CHECKBOX, SINGLE_OPTIONS, MULTIPLE_OPTIONS, DATE, TEXTBOX_LIST, FILE_UPLOAD, RADIO |
dateAdded | string | Required within parent | Date and time when the object was added Format: date-time |
dateUpdated | string | Required within parent | Date and time when the object was last updated Format: date-time |
description | string | Optional | Description of the field |
fieldKey | string | Required within parent | Field key. For Custom Object it's formatted as "custom_object.{objectKey}.{fieldKey}". "custom_object" is a fixed prefix, "{objectKey}" is your custom object's identifier, and "{fieldName}" is the unique field name within that object. Example: "custom_object.pet.name" for a "name" field in a "pet" custom object. |
id | string | Required within parent | Unique identifier of the object |
locationId | string | Required within parent | Location Id |
maxFileLimit | JSON | Optional | |
maxFileLimit (anyOf 1) | number | Alternative | Maximum file limit for uploads |
maxFileLimit (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
name | string | Optional | Field name |
objectKey | string | Required within parent | The key for your custom / standard object. This key uniquely identifies the custom object. Example: "custom_object.pet" for a custom object related to pets. |
options | array | Optional | Options for the field (Optional, valid only for SINGLE_OPTIONS, MULTIPLE_OPTIONS, RADIO, CHECKBOX, TEXTBOX_LIST type) |
options[] | Model | Each item | Expand Update Custom Field By Id — request body — body options item |
parentId | string | Required within parent | ID of the parent folder |
placeholder | string | Optional | Placeholder text for the field |
showInForms | boolean | Required within parent | Whether the field should be shown in forms |
Referenced models: Update Custom Field By Id — request body — body options item
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: gohighlevel.custom_fields_update_custom_field. Catalog operation: custom-fields.update-custom-field. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["locations/customFields.write"]
Pinned headers: {"Version": "v3"}