# Custom fields

> Extend your ontology with custom metadata fields on concepts and terms.

**Category:** Core Concepts | **Tab:** features

---

Custom fields let you attach additional metadata to concepts and terms beyond the built-in attributes — without changing the underlying data model.

## Why custom fields?

Every team has domain-specific metadata that doesn't fit neatly into a generic ontology structure. Custom fields let you track things like:

- **Internal product codes** or SKU references
- **Launch dates** or deprecation dates
- **Compliance flags** (e.g., "requires legal review")
- **Priority scores** or lifecycle stages
- **External URLs** to specifications, Figma files, or Jira tickets

Instead of overloading the description field or maintaining a parallel spreadsheet, custom fields keep this data structured, searchable, and co-located with the concepts it belongs to.

## Field types

Custom fields support six data types:

| Type | Description | Example |
|------|-------------|---------|
| **Text** | Free-form string | `"PROD-4821"` |
| **Number** | Numeric value | `42` |
| **Date** | Calendar date | `2025-03-15` |
| **Boolean** | True/false toggle | `true` |
| **Select** | Dropdown with predefined options | `"In Review"` |
| **URL** | Clickable link | `https://figma.com/file/...` |

## Applies to: concepts or terms

Each custom field definition specifies whether it applies to **concepts** or **terms**:

- **Concept-level fields** appear in the Concept Detail view, directly after the Class selector. Use these for metadata that applies to the concept as a whole (e.g., internal ID, launch date, compliance status).
- **Term-level fields** appear inline within source and target term forms. Use these for metadata specific to a particular translation or locale (e.g., character count limit, reviewer name).

## Scoping by class

You can optionally restrict a custom field to a specific **class**. For example:

- A `"Launch Date"` field that only appears on concepts with class **Plan**
- A `"Compliance Flag"` field that only appears on **Feature** concepts

If no class is selected, the field appears on all concepts (or all terms, depending on the applies-to setting).

## Creating custom fields

1. Navigate to the **Concepts** dashboard
2. Open the **Actions** dropdown in the toolbar
3. Click **Custom Fields**
4. Click **Add Field**
5. Configure the field:
   - **Name** — a descriptive label (e.g., "Internal SKU")
   - **Type** — choose from Text, Number, Date, Boolean, Select, or URL
   - **Applies to** — Concept or Term
   - **Class restriction** — optionally limit to a specific class
   - **Required** — whether the field must be filled in
   - **Options** — for Select fields, define the dropdown choices
6. Click **Save**

The field immediately appears on all matching concepts or terms.

## Editing and deleting fields

From the Custom Fields manager:

- **Edit** a field to change its name, type, or options. Existing values are preserved where compatible.
- **Delete** a field to remove it and all its stored values permanently.

> **Warning:** Deleting a custom field removes all saved values across every concept or term. This cannot be undone.

## Custom fields during concept creation

Custom fields work during concept creation too. When you create a new concept, any applicable custom fields appear inline in the form. Values are buffered locally and saved automatically once the concept is created.

## Display order

Fields appear in the order you define them. You can adjust the display order from the Custom Fields manager to control how fields are presented in the concept and term forms.

## Custom fields in exports

Custom field values are included in structured exports (JSON, CSV), making them available to downstream tools, content systems, and AI workflows. Each field appears as a named column or property in the export output.