Add Attribute to CRM Object
Add a custom attribute to a Zeeg CRM object via the API. Define typed fields like text, number, select, relation, or currency with auto-generated keys
Key auto-generation
You do not set thekey — the server derives it from label by converting to snake_case (e.g. "Product Name" → "product_name"). The generated key is returned in the 201 response. Use this key to reference the attribute in subsequent PATCH calls and when writing record values.
If another attribute with the same derived key already exists, the server appends a suffix (e.g. product_name_2).
Attribute type reference
Every attribute requireslabel, type, and isRequired. isArchived is optional and defaults to false.
The sections below list the extra fields each type needs and what values it stores.
text
Stores a free-form string.
Extra fields
number
Stores a numeric value (integer or decimal).
Extra fields
phone_number
Stores a phone number string. Displayed with a phone-number input in the UI.
Extra fields
date
Stores a calendar date (no time component).
No extra fields.
datetime
Stores a date and time with timezone.
No extra fields.
checkbox
Stores a boolean (true / false).
No extra fields.
select
Stores one value chosen from a fixed list.
Extra fields
gray primary warning success cyan sky violet fuchsia rose blue green red pink black yellow orange
Example request
multiselect
Stores multiple values from a fixed list. Same fields as select.
Extra fields
Same as select — options array required.
status
Like select but rendered as a status badge. Change history is logged for auditing. Same fields as select.
Extra fields
Same as select — options array required.
rating
Stores an integer rating (1–5 stars in the UI).
No extra fields.
relation
Links a record to one or more records in another CRM object.
Extra fields
one_to_one / many_to_one → the field accepts a single linked record.one_to_many / many_to_many → the field accepts multiple linked records.
Example request
currency
Stores a numeric monetary value with display formatting.
Extra fields
currencyDisplay, currencyDecimal, and currencyGrouping can be changed later via PATCH.
The currency code is immutable after creation.
Supported currency codes
USD, EUR, GBP, JPY, CHF, CAD, AUD, NZD, SEK, DKK, NOK, CZK, PLN, HUF, RON, BRL, MXN,
CNY, SGD, THB, PHP, IDR, INR, ZAR, MYR, VND, KRW, TND, OMR, QAR, SAR, AED, BHD, KWD, JOD, LYD, IRR, TRY.
Example request
user
Links the record to one or more workspace members. Values are user IDs.
No extra fields. Always supports multiple selection.Authorizations
Path Parameters
The object slug to add the attribute to.
"people"
Body
Attribute data type. Cannot be changed after creation.
text, number, phone_number, date, datetime, checkbox, select, multiselect, rating, relation, status, user, currency "select"
Human-readable label. The attribute key is auto-generated from this value.
255"Customer Status"
Whether a value is required when creating a record.
false
Whether values must be unique across records. Applies to text, phone, and number types.
false
Validation constraints for text type attributes.
email, url Required for select, multiselect, and status types. Max 20 options.
Required for relation type.
one_to_one, many_to_one, one_to_many, many_to_many "many_to_one"
Required for relation type. Slug of the object to link to.
"companies"
Required for relation type. Label shown on the related object's record.
"Contacts"
Required for currency type. ISO 4217 currency code.
"EUR"
Required for currency type.
code, name, symbol "symbol"
Required for currency type. Show decimal places.
true
Required for currency type. Use thousands separator.
true