CRM Custom Fields
Extend Talkturo CRM contacts with custom field definitions — create text, number, boolean, date, select, and textarea fields with required, active, and sort-order controls.
curl -G "https://app.talkturo.com/api/crm/custom-fields" \
--data-urlencode "teamId=team_7f3a9c2d" \
--data-urlencode "entityType=contact" \
-H "Cookie: sb-access-token=sb_session_example_f84k2m"
{
"success": true,
"fields": [
{
"id": "8bb0cf7b-6f0e-45e3-8f40-c0d6dc4c9a11",
"teamId": "team_7f3a9c2d",
"entityType": "contact",
"key": "lead_source",
"label": "Lead source",
"fieldType": "select",
"options": [
"Website",
"Referral",
"Conference"
],
"isRequired": false,
"sortOrder": 10,
"isActive": true
},
{
"id": "1cf4bc3d-cad3-4d8b-8a4f-5c5c33bc3a86",
"teamId": "team_7f3a9c2d",
"entityType": "contact",
"key": "renewal_date",
"label": "Renewal date",
"fieldType": "date",
"isRequired": true,
"sortOrder": 20,
"isActive": true
}
]
}
curl -X POST "https://app.talkturo.com/api/crm/custom-fields" \
-H "Content-Type: application/json" \
-H "Cookie: sb-access-token=sb_session_example_f84k2m" \
-d '{
"teamId": "team_7f3a9c2d",
"entityType": "contact",
"key": "customer_tier",
"label": "Customer tier",
"fieldType": "select",
"options": [
"Starter",
"Growth",
"Enterprise"
],
"isRequired": false,
"sortOrder": 30,
"isActive": true
}'
{
"success": true,
"field": {
"id": "ec607f3e-77c8-45e7-a58d-62b8d09c4d5d",
"teamId": "team_7f3a9c2d",
"entityType": "contact",
"key": "customer_tier",
"label": "Customer tier",
"fieldType": "select",
"options": [
"Starter",
"Growth",
"Enterprise"
],
"isRequired": false,
"sortOrder": 30,
"isActive": true
}
}
curl -X PUT "https://app.talkturo.com/api/crm/custom-fields/ec607f3e-77c8-45e7-a58d-62b8d09c4d5d" \
-H "Content-Type: application/json" \
-H "Cookie: sb-access-token=sb_session_example_f84k2m" \
-d '{
"label": "Account tier",
"fieldType": "select",
"options": [
"Starter",
"Growth",
"Enterprise",
"Strategic"
],
"isRequired": true,
"sortOrder": 25,
"isActive": true
}'
{
"success": true,
"field": {
"id": "ec607f3e-77c8-45e7-a58d-62b8d09c4d5d",
"teamId": "team_7f3a9c2d",
"entityType": "contact",
"key": "customer_tier",
"label": "Account tier",
"fieldType": "select",
"options": [
"Starter",
"Growth",
"Enterprise",
"Strategic"
],
"isRequired": true,
"sortOrder": 25,
"isActive": true
}
}
curl -X DELETE "https://app.talkturo.com/api/crm/custom-fields/ec607f3e-77c8-45e7-a58d-62b8d09c4d5d" \
-H "Cookie: sb-access-token=sb_session_example_f84k2m"
{
"success": true
}
Manage CRM custom fields
Custom fields extend Talkturo CRM contact records beyond the default schema. Define each field with a stable key, display label, supported fieldType, and optional validation and display settings.
All CRM custom field endpoints require session cookie authentication. These endpoints do not accept API keys. Include the teamId query parameter or request field when required.
The API currently supports custom fields for contact records only.
Endpoints at a glance
| Method | Path | Description |
|---|---|---|
GET | /api/crm/custom-fields | List custom fields for a team |
POST | /api/crm/custom-fields | Create a custom field |
PUT | /api/crm/custom-fields/{id} | Update a custom field |
DELETE | /api/crm/custom-fields/{id} | Delete a custom field |
Field types
Use one of these values for fieldType:
text: Short freeform text.number: Numeric values.boolean: True or false values.date: Date values.select: One value from the list inoptions.textarea: Longer freeform text.
The entityType value is currently limited to contact. For select fields, include an options array containing the allowed values.
List custom fields
Returns custom field definitions for a team. Inactive fields are excluded unless you set includeInactive to true.
Query parameters
Team whose contact custom fields you want to list.
Entity type to filter by. The API currently supports contact.
contactSet to true to include inactive custom field definitions. Inactive fields are excluded by default.
truefalseResponse fields
true when the request succeeds.
Custom field definitions matching the query parameters.
Create a custom field
Creates a custom field definition for contact records in a team.
Body parameters
Team that owns the custom field definition.
CRM record type that the field applies to. The API currently supports contact.
contactStable key used to identify the field in contact data.
Display label shown for the field in the CRM.
Data type used to store and render the field value.
textnumberbooleandateselecttextareaAllowed values for a select field. Omit this field for other field types.
Whether a value is required for the field.
Numeric position used to order the field relative to other custom fields.
Whether the field is active. Inactive fields are excluded from default list results.
Response fields
true when the field is created successfully.
The created custom field definition, including its generated id.
Update a custom field
Updates an existing custom field definition. The request can change the label, field type, select options, required state, display order, and active state.
The update endpoint uses PUT. The field key, teamId, and entityType are not update parameters.
Path parameters
Unique identifier of the custom field to update.
Body parameters
Updated display label.
Updated data type for the field.
textnumberbooleandateselecttextareaUpdated allowed values for a select field.
Whether a value is required for the field.
Updated numeric position of the field.
Whether the field remains active.
Response fields
true when the field is updated successfully.
The updated custom field definition.
Delete a custom field
Deletes a custom field definition by ID.
Path parameters
Unique identifier of the custom field to delete.
Response fields
true when the field is deleted successfully.
Custom field object
The API returns a custom field object in list, create, and update responses.
Unique identifier for the custom field.
Identifier of the team that owns the definition.
CRM record type for the field. The current value is contact.
Stable identifier used to reference the field in contact data.
Display label shown in the CRM.
Field type. One of text, number, boolean, date, select, or textarea.
Allowed values for select fields. This field is relevant when fieldType is select.
Whether a value is required for the field.
Numeric position used to order the field.
Whether the field is active and included in default list results.
Usage notes
Use a stable key when creating a field. The key identifies the field in contact data, while label controls the text displayed to CRM users.
Include options when fieldType is select. Do not include options for text, number, boolean, date, or textarea fields.
Set isActive to false when you need to stop using a field without removing its definition from the team. Pass includeInactive=true when listing inactive definitions.