CRMchat APIBeta

Custom Properties

Define custom fields on contacts to capture data specific to your workflow

View in Markdown

Custom properties let you extend contacts with fields tailored to your business. Each property defines a field type, display name, and validation rules. Property values are then stored on individual contacts using the property's key.

How It Works

Properties are defined at the workspace level and scoped to an object type (currently contacts). Once a property is created, any contact in that workspace can store a value for it.

A property definition looks like this:

{
  "key": "custom.lead_status",
  "type": "single-select",
  "name": "Lead Status",
  "options": [
    { "label": "New", "value": "new", "color": "blue" },
    { "label": "Contacted", "value": "contacted", "color": "yellow" },
    { "label": "Qualified", "value": "qualified", "color": "green" }
  ]
}

Keys

Every custom property key must start with custom. followed by a descriptive identifier. Keys are dot-separated paths and must be unique within the object type.

KeyDescription
custom.lead_statusA lead qualification status
custom.company_nameThe contact's company
custom.deal_valueThe monetary value of a deal
custom.referral_sourceHow the contact found you

Keys are immutable after creation — you cannot rename a property key, only delete and recreate.

Properties created from the UI have an auto-generated key (e.g., custom.wRhEVPXBZiIEx2RImfmfG). When creating properties via the API, you choose your own key — use something descriptive like custom.lead_status.

Property Types

TypeDescriptionExtra fields
textShort text input
textareaMultiline text
single-selectOne option from a listoptions, defaultValue
multi-selectMultiple options from a listoptions
user-selectWorkspace member picker
urlURL input
emailEmail address
telPhone number
amountMonetary value

Select Options

single-select and multi-select properties require an options array. Each option has:

FieldTypeDescription
labelstringDisplay label
valuestringStored value (immutable)
colorstring?One of: gray, brown, orange, yellow, green, blue, purple, pink, red

Common Fields

Every property supports these fields:

FieldTypeDescription
keystringUnique identifier (must start with custom.)
typestringProperty type (see above)
namestringDisplay name shown in the UI
descriptionstring?Help text for the field
placeholderstring?Input placeholder text
requiredbooleanWhether the field is required (default: false)

Managing Properties

Use the endpoints below to create, update, list, and delete property definitions for a workspace.

Deleting a property removes only the definition — existing values on contacts are not cleaned up.

On this page