# Custom Fields

## Overview

<code class="expression">space.vars.fields</code> extend an <code class="expression">space.vars.object</code>’s schema by allowing administrators to capture structured data beyond the platform’s default fields. Each <code class="expression">space.vars.field</code> represents a defined attribute on a <code class="expression">space.vars.entity</code> and directly influences how data is stored, validated, automated, reported on, secured, and accessed through APIs.

Selecting the correct field type is a foundational schema decision with downstream impacts across the platform.

Field configuration affects:

* **Data consistency:** Structured fields enable reliable filtering, segmentation, and analytics.
* **Agentic Workflow behavior:** Field values frequently act as triggers, conditions, and update targets.
* **Reporting capabilities:** Field types determine whether data can be grouped, aggregated, or used as metrics.
* **Permissions:** Field-level access controls visibility and edit rights.
* **API integrations:** Field API names and metadata define how external systems read and write data.

<code class="expression">space.vars.fields</code> share the same underlying architecture as standard fields and behave consistently across <code class="expression">space.vars.objects</code>, activities, forms, automations, and integrations.

{% hint style="info" %}
**Note:** Field types cannot be converted after creation. Changing a field type typically requires creating a new field and migrating data, which may impact automations, reports, and integrations.
{% endhint %}

Before designing or modifying an <code class="expression">space.vars.object</code> schema, review available field types, platform limits, and specialized behaviors to ensure long-term scalability.

***

## Custom Field Type Reference

The following table provides a high-level comparison of supported field types to guide schema planning decisions.

<table><thead><tr><th width="219.9453125">Field Type</th><th width="228.86328125">Limits</th><th>Special Features / Notes</th></tr></thead><tbody><tr><td><a href="/pages/udk276nkC0yUhCcx8GqY#checkbox">Checkbox</a></td><td>Boolean value. You can only select 1</td><td>Stores a <code>true</code> value or null if nothing is selected. Unchecked values are stored as <code>null</code>. <code>null==false</code>. Useful for binary states.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#checkboxes">Checkboxes</a> </td><td>Up to 250 selectable options</td><td>Allows multiple predefined values. Renders as checkboxes or collapses into a dropdown when option counts grow beyond 4.</td></tr><tr><td><a href="/pages/lg7O68BVQcNPyvw02eYk#money-currency-price">Currency / Price</a></td><td>Up to 4 decimal places</td><td>Displays a currency symbol without automatic conversion. Supports negative values and is a number + currency symbol.</td></tr><tr><td><a href="/pages/VnqsEXt04PYURF8zJ6sO#date">Date</a></td><td>Stores calendar date only</td><td>No time component. Evaluated relative to the business timezone for comparisons and <code class="expression">space.vars.automation</code> logic.</td></tr><tr><td><a href="/pages/VnqsEXt04PYURF8zJ6sO#datetime">Date &#x26; Time</a></td><td>Timezone-aware timestamp</td><td>Entered in the user’s timezone and normalized for consistent reporting. Dashboards typically filter using the business timezone.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#dropdown-single-select">Dropdown (Single-Select)</a></td><td>Up to 250 options</td><td>Allows selection of one predefined value. Supports predictable filtering, reporting, and <code class="expression">space.vars.automation</code> logic. Recommended when data must remain standardized.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#dropdown-multi-select">Dropdown (Multi-Select)</a></td><td>Up to 250 options</td><td>Allows selection of multiple predefined values. Useful for categorical data where more than one value may apply. May require additional consideration in reporting and automation due to multiple stored values.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#dynamic-tags">Dynamic Tags</a></td><td>No practical option limit (performance optimized)</td><td>Users can create values at runtime. Behaves similarly to a lightweight relationship. Should be governed to prevent uncontrolled taxonomy growth.</td></tr><tr><td><a href="/pages/3kmYVWF0U2OteOnzGYfo#email">Email</a></td><td>Must be valid email format</td><td>Stored as data only. Custom email fields do not enable messaging workflows.</td></tr><tr><td><a href="/pages/udk276nkC0yUhCcx8GqY#files">Files</a></td><td>10 MB per file</td><td>Each upload creates a separate stored file, even when reused across records. Optional hard-delete permission available.</td></tr><tr><td><a href="/pages/awKXeQ0CeFn07V3OGeoB#longtext">Long Text / Rich Text</a></td><td>Up to 50,000 characters</td><td>Supports markdown rendering. Optimized for large content but limited in filtering and aggregation. Treated as unstructured data.</td></tr><tr><td><a href="/pages/lg7O68BVQcNPyvw02eYk#number-decimal">Number (Decimal)</a></td><td>Up to 15 digits total</td><td>Supports numeric filters and calculations. Values may be negative.</td></tr><tr><td><a href="/pages/3kmYVWF0U2OteOnzGYfo#phone-number">Phone Number</a></td><td>Must follow international (E.164) format</td><td>Automatically formats country codes. SMS uses the mobile phone field when applicable. Extensions supported for business numbers.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#radio-buttons">Radio Buttons</a></td><td>Up to 250 options</td><td>Single-select field rendered as buttons for fast selection.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#rating">Rating</a></td><td>5- or 10-point scale</td><td>Hybrid behavior: supports both categorical filtering and numeric comparisons (for example, “greater than”).</td></tr><tr><td><a href="/pages/udk276nkC0yUhCcx8GqY#relationship">Relationship</a></td><td>Supports 1:1, 1:M, M:1, and M:M</td><td>Automatically creates an inverse relationship field. Timeline displays individual values up to 20 records; larger sets are summarized. API responses summarize after 100 values. <strong>Not supported on forms.</strong></td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#status">Status</a></td><td>Up to 250 values</td><td>Dropdown field with color metadata for visual workflow tracking.</td></tr><tr><td><a href="/pages/udk276nkC0yUhCcx8GqY#team-selector">Team Member / Employee Selector</a></td><td>Active users only</td><td>References a user within the business. Honors permission visibility and audit tracking. Forms display employee names but not email addresses.</td></tr><tr><td><a href="/pages/awKXeQ0CeFn07V3OGeoB#text">Text (Short)</a></td><td>255 characters</td><td>Text fields store unstructured values and can be indexed to support search and type-ahead behavior when indexing is enabled. They are commonly used for identifiers, labels, and display names.</td></tr><tr><td><a href="/pages/lg7O68BVQcNPyvw02eYk#number-integer-whole">Whole Number (Integer)</a></td><td>Up to 2,147,483,647</td><td>Ideal for counts and whole-number quantities, including negative values when decreases or offsets must be tracked.</td></tr><tr><td><a href="/pages/CUl0W9I7Sxjm22ZvzM4p#yes-no-maybe">Yes / No / Maybe</a></td><td>Optional third state</td><td>Supports null values to distinguish between “No” and “No response.” Can be treated as a boolean in <code class="expression">space.vars.automation</code> logic.</td></tr></tbody></table>

***

## Custom Field Metadata

Each <code class="expression">space.vars.field</code> includes metadata that influences validation behavior, API interactions, and UI rendering.

Common metadata properties include:

* `is_required`: Field must be provided during record creation.
* `allows_nulls`: Accepts null values.
* `allows_empty`: Accepts empty values appropriate to the field type (for example `""`, `[]`, `{}`).
* `is_masked`: Obscures sensitive text until user interaction.
* `is_markdown`: Renders long text fields as rich text.

A field is considered clearable when it is not required and allows empty values.

Understanding metadata is particularly important when designing integrations or enforcing governance rules.

***

## Platform Limits

<code class="expression">space.vars.field</code> capacity varies by subscription level and should be considered during schema design.

* **Free accounts** support up to 50 Fields (including default fields) per <code class="expression">space.vars.object</code>
* **Paid plans** allow additional <code class="expression">space.vars.fields</code>, with limits determined by the organization’s purchased plan

If your implementation requires more fields than your current plan supports, contact [Customer Support](https://support.kizen.com/support/tickets/new) to discuss available options.

Regardless of plan, an <code class="expression">space.vars.object</code> supports a maximum of 500 custom fields. Approaching this limit may indicate schema complexity that should be reviewed for long-term scalability. If your use case requires additional fields, contact [Customer Support](https://support.kizen.com/support/tickets/new) to discuss available options and design considerations.

{% hint style="info" %}
**Note:** These limits also apply to forms and activity fields, reinforcing the importance of thoughtful schema design.
{% endhint %}

***

## Activity Field Alignment

Many <code class="expression">space.vars.fields</code> can also be reused as <code class="expression">space.vars.activity</code> fields, enabling consistent schema design across operational <code class="expression">space.vars.entities</code> such as calls, meetings, and tasks. Reusing structured fields enables consistent automation, filtering, and analytics across operational workflows.

For example:

* Dropdown fields can categorize logged calls
* Rating fields can measure interaction quality
* Relationship fields can link an activity to multiple related <code class="expression">space.vars.entities</code>, depending on your relationship configuration.

Aligning <code class="expression">space.vars.object</code> and <code class="expression">space.vars.activity</code> schemas improves reporting fidelity and operational clarity.

For more information see, [Activity Custom Fields](/docs/concepts/activities/activities-data-model.md#activity-custom-fields).

***

## Additional Information

<details>

<summary>Schema Design Best Practices</summary>

When creating <code class="expression">space.vars.fields</code>, consider the following guidelines:

* Prefer structured fields over free text when reporting, filtering, or automation will depend on the data.
* Select field types carefully, as they cannot be converted after creation without rebuilding the field and migrating data.
* Use relationships instead of large selection lists when modeling connections between records.
* Plan field API names intentionally, since changes may disrupt integrations, automations, and merge fields.
* Avoid excessive field counts, which can increase schema complexity and impact usability.

Thoughtful schema design improves data quality, simplifies reporting, and supports long-term platform scalability.

</details>

***

## What’s Next

Explore any of the field-specific documentation before implementing schema changes to ensure the selected field type supports your operational, reporting, and integration requirements.

<details>

<summary>Related Topics</summary>

* [Selection Field Types](/docs/concepts/objects/custom-fields/selection-field-types.md)
* [Date Field Types](/docs/concepts/objects/custom-fields/date-field-types.md)
* [Numerical Field Types](/docs/concepts/objects/custom-fields/numerical-field-types.md)
* [Text Field Types](/docs/concepts/objects/custom-fields/text-field-types.md)
* [Communication Field Types](/docs/concepts/objects/custom-fields/communication-field-types.md)
* [Special Field Types](/docs/concepts/objects/custom-fields/special-field-types.md)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.kizen.com/docs/concepts/objects/custom-fields.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
