# Custom Field

Custom Fields allow IT admins to **create and manage asset-specific metadata fields** that go beyond the default system-defined attributes. These fields enable teams to tailor asset records to suit organizational, compliance, or operational needs.

It is designed to support:

* Organization-specific field tracking (e.g., Warranty Location, Department Tag, Device Owner Remarks)
* Flexibility in defining **Text**, **Date**, **Dropdown**, or **Numeric** fields
* Reusability across different asset categories
* Uniform data collection and visibility across modules like IT Assets, Fixed Assets, and CMDB

Custom Fields ensure that asset data models are scalable and relevant to different business environments.

## **What Do You See on the Screen?**

Below is a detailed breakdown of the elements shown on the **Custom Field** listing screen:

| **Label**                  | **Action**                                         | **Description / Example**                                                                                                                                                                                                                            |
| -------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search**                 | Type at least three characters to perform a search | <p>Performs a free-text keyword search on custom field labels.</p><p><strong>Example:</strong> Asset ID, Owner Group</p>                                                                                                                             |
| **Filter**                 | Select a field → choose a condition → enter value  | <p>Filter options include:<br></p><ul><li><strong>Fields</strong>: Label, Type</li><li><strong>Conditions</strong>: equal to, not equal to, contains, not contain, in, not in</li></ul><p><br><strong>Example:</strong> Filter where Type = Text</p> |
| **Label**                  | View only                                          | <p>Displays the name of the custom field.</p><p><strong>Example:</strong> Customize Asset ID, Branch Code</p>                                                                                                                                        |
| **Property**               | View only                                          | Category this field belongs to (e.g., Custom Property, Procurement Property)                                                                                                                                                                         |
| **Field Type**             | View only                                          | <p>Data type assigned to the field.</p><p><strong>Example:</strong> Text, Date, Dropdown, Email, etc.</p>                                                                                                                                            |
| **Type**                   | View only                                          | <p>Denotes the module or entity this field applies to.</p><p><strong>Example:</strong> Asset, Contract, Software</p>                                                                                                                                 |
| **All Related Categories** | View only                                          | <p>Lists the number of asset categories using this custom field.</p><p><strong>Example:</strong> 2, 3, etc.</p>                                                                                                                                      |
| **Action Icons**           |                                                    |                                                                                                                                                                                                                                                      |
| **Edit**                   | Click pencil icon                                  | Opens the custom field in edit mode to change label, field type, or related categories                                                                                                                                                               |
| **Delete**                 | Click trash icon                                   | Deletes the custom field. This action is only allowed if the field is not in active use.                                                                                                                                                             |

{% hint style="info" %}

* All created custom fields will appear as selectable options in the **Category Template > Fields** tab.
* Deleted fields cannot be recovered.
* Fields are global and can be reused across multiple modules or templates.
  {% endhint %}

## **Add a Custom Field**

Custom fields allow you to extend the default asset metadata by creating organization-specific attributes. These fields can be added to both **Assets** and **Resources**, with field type options and properties varying depending on the selection.

{% hint style="info" %}
Duplicate field labels or property-field combinations are not allowed. Each custom field must be unique.
{% endhint %}

### **Steps to Add a Custom Field**

Begin by selecting the type of entity the custom field will be associated with:

* **Asset**
* **Resource**

#### **If Asset is Selected**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2F4LxBMMojNCbeA3K4wSvO%2FCustom%20Field.svg?alt=media&#x26;token=9ee51bf3-139e-40ef-909f-e89d8f478623" alt=""><figcaption></figcaption></figure>

| **Label**      | **Action**               | **Description / Example**                                                                                                                                                                 |
| -------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Property**   | Select from the dropdown | <p>Choose the property group the custom field belongs to.<br><br><strong>Options:</strong> Common, Procurement, OS, CPU, BIOS, Disk, Monitor, Keyboard, Mouse, Cost, Assignment, etc.</p> |
| **Field Type** | Select from the dropdown | <p>Choose the type of input expected for this field.</p><p><strong>Options:</strong> Text, Phone Number, Email, Date, Date & Time, Checkbox, Radio, Text Area, Drop Down, Number.</p>     |
| **Label**      | Enter custom field label | **Example:** Asset Location Code, Internal User Email, Device Category, etc.                                                                                                              |

Based on the selected **Field Type**, different configurations appear on the screen. See below for type-specific settings.

#### **If Resource is Selected**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FXvLHdS4ZT69rRW2Mel3W%2Fimage.png?alt=media&#x26;token=6dbb5f41-987d-4bd1-aa60-91b299f9cd4c" alt=""><figcaption></figcaption></figure>

| **Label**      | **Action**               | **Description / Example**                                     |
| -------------- | ------------------------ | ------------------------------------------------------------- |
| **Field Type** | Select from dropdown     | **Available options:** Text, Phone Number, Email, and Number. |
| **Label**      | Enter custom field label | **Example:** Resource Owner, Vendor Email                     |

Each field type triggers a specific form layout. Below is a detailed breakdown.

#### **Field Type-Based Configuration**

Based on the selected **Field Type**, additional configuration fields appear. Each type serves a unique purpose. The details below explain the labels and their usage in a clear format for end users.

**Email / Phone Number / Text | Configuration**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FZrgZ5RRlAq0LjtFOhudy%2Fimage.png?alt=media&#x26;token=7147f3d1-ce3d-4daa-8770-86b6d5620667" alt=""><figcaption></figcaption></figure>

<table data-header-hidden><thead><tr><th width="202.20001220703125"></th><th></th></tr></thead><tbody><tr><td><strong>Field</strong></td><td><strong>Purpose</strong></td></tr><tr><td><strong>Placeholder</strong></td><td>This is the default hint text displayed in the field before the user inputs any value. It auto-fills based on the field type (e.g., “Enter your email”) but can be edited to provide more specific guidance.</td></tr><tr><td><strong>Validation Rules</strong></td><td>This allows you to add descriptive text that instructs users on what type of input is expected. For example: “Must be a valid company email address.”</td></tr><tr><td><strong>Regex</strong></td><td>Enables admins to define pattern-based validation using regular expressions. This ensures that input strictly matches defined criteria (e.g., emails must follow abc@domain.com).</td></tr><tr><td><strong>Error Text</strong></td><td><p>This is the message shown to the user when the input fails validation. It should clearly explain what went wrong.</p><p><strong>Example:</strong> “Please enter a valid email format.”</p></td></tr></tbody></table>

\
**Number | Configuration**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FtU5Lw8ulCM2oywJ6YpXb%2Fimage.png?alt=media&#x26;token=5e018ff8-87f7-4e8d-a1d6-5e9b80d5d9d8" alt=""><figcaption></figcaption></figure>

| **Field**           | **Purpose**                                                                                                                  |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Min**             | Sets the minimum allowable value for the number field. This prevents users from entering values below the defined threshold. |
| **Max**             | Sets the maximum allowable value. Useful for setting limits like asset quantity, license count, etc.                         |
| **Validation Rule** | Optional message or description that informs the user what the number field is intended for or how to fill it.               |

\
**Drop-down | Configuration**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FO67McBZO7WFxLhoMJSxv%2Fimage.png?alt=media&#x26;token=c1864799-a542-430d-a2e4-a19f7d0eeb56" alt=""><figcaption></figcaption></figure>

| **Field**  | **Purpose**                                                                                   |
| ---------- | --------------------------------------------------------------------------------------------- |
| **Label**  | Visible name for each dropdown option. Should be human-readable (e.g., “HR Department”).      |
| **Value**  | Backend reference for that label (e.g., HR01), used for automation, filters, and rules.       |
| **Action** | Add multiple entries using "+" and remove using delete icon. Avoid duplicating labels/values. |

\
**Text Area | Configuration**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FmQAt5yE5J1Lebh0z3oGq%2Fimage.png?alt=media&#x26;token=36832dcc-f24f-45e6-b68f-2676ac03facc" alt=""><figcaption></figcaption></figure>

* Designed for long-form input (e.g., notes, remarks).
* Uses the **same configuration layout** as Email/Text fields.
* Best used for optional descriptions or unstructured inputs.

**Checkbox / Radio | Basic Details**

<figure><img src="https://8249392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE4mkwSP8a1BSD9BFNFav%2Fuploads%2FLhx6POyJUvaumJBlSOvW%2Fimage.png?alt=media&#x26;token=cfbbfd49-b6c1-4950-bcf9-1cfbc12647ed" alt=""><figcaption></figcaption></figure>

| **Field** | **Purpose**                                                                                                          |
| --------- | -------------------------------------------------------------------------------------------------------------------- |
| **Label** | The name shown to users for the option. Use clear wording like “Yes”, “No”, “Internal Use Only”, etc.                |
| **Value** | This is the stored backend value for the label (e.g., “Y” for Yes, “N” for No). Used in reports and rule automation. |

\
**Date / Date & Time | Configuration**

* These types do not have field-specific validations like Min/Max or Regex.
* A **placeholder** auto-fills with a default hint (e.g., "Select a date").
* All common options (like category mapping, toggles for mandatory/unique) are applicable.

#### **Add Related Categories**

Custom fields can be linked to categories or sub-categories to determine their visibility and usage.

| **Option**                | **Purpose**                                                                                                                                                                       |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Common Custom Field**   | When enabled, this makes the field available across multiple selected categories. Best for generic fields like “Department” or “Asset Tag.”                                       |
| **Category/Sub-Category** | Select the target group where the field should be active. Fields in a **Category** propagate to all sub-categories. Fields added only to a **Sub-Category** are restricted there. |
| **Mandatory**             | Toggle this ON to enforce field entry during asset/resource creation.                                                                                                             |
| **Unique**                | Prevents duplicate values. Useful for fields like Serial Number, Asset ID, or Employee ID.                                                                                        |
| **Disable**               | Temporarily hides the field from being used without deleting it.                                                                                                                  |
| **Action Icons**          |                                                                                                                                                                                   |
| **Add**                   | Confirms and applies the field-to-category association. You can add multiple mappings.                                                                                            |
| **Delete**                | Removes the field from a specific category. Does not delete the field entirely.                                                                                                   |

{% hint style="info" %}

* Avoid using **duplicate labels** or field names across categories to maintain clarity and avoid conflicts.
* Fields are global once created but are **only active in the categories they are mapped to**.
  {% endhint %}
