# Custom Fields

<p class="doc-lead">Custom Fields add extra inputs to selected records — text, number, dropdown, checkbox, date, or textarea — with control over list, filter, form group, print visibility, and when the field is shown.</p>

<div class="doc-toc">
<p class="doc-toc-title">On this page</p>
<div class="doc-toc-section">
<div class="doc-toc-links">
<a href="#/settings/custom-fields?id=overview">Overview &amp; List View</a>
<a href="#/settings/custom-fields?id=collections">Supported collections</a>
<a href="#/settings/custom-fields?id=fields">Fields</a>
<a href="#/settings/custom-fields?id=show-when">Show this field only when</a>
<a href="#/settings/custom-fields?id=use-cases">Use cases</a>
<a href="#/settings/custom-fields?id=actions">Actions</a>
<a href="#/settings/custom-fields?id=faq">FAQ</a>
<a href="#/settings/custom-fields?id=related">Related</a>
</div>
</div>
</div>

<hr class="doc-section-divider">

<h2 id="overview">Overview &amp; List View</h2>

Go to <b>Settings → Others → Custom Fields</b>.

Each field is tied to one <b>Collection</b> (for example Lead or Customer). After you save it, the field appears on create, edit, and view screens for that collection, and on the list and filters when those options are enabled.

On New and Edit Custom Field, hover the <b>info</b> icon next to a label for a short explanation of that field.

<!-- screenshot pending -->

<b>List columns</b>: Id, Collection, Field Name, Field Label, Field Type, Required, Show in List, Show in Filter, Hide in Print, Status.

<b>Quick filters</b>: Active (default), Suspended.

<b>Filters</b>: Collection, Field Name, Field Label, Field Type, Required, Show in List, Show in Filter, Group, Status, Created Date.

<b>Header</b>: New, Refresh.

<b>List actions</b>: View, Edit, Suspend, Activate, Delete (multi).

<hr class="doc-section-divider">

<h2 id="collections">Supported collections</h2>

| **Collection** | **Where the field appears** |
|----------------|-----------------------------|
| Employee | Employee create, edit, view, and list. |
| Customer | Customer create, edit, view, and list. |
| Supplier | Supplier create, edit, view, and list. |
| Lead | <a href="#/crm/lead">Lead</a> create, edit, view, and list. |
| Opportunity | <a href="#/crm/opportunity">Opportunity</a> create, edit, view, and list. Groups: Basic Details, Opportunity Details. |
| Project | Project create, edit, view, and list. |
| Item | Item create, edit, view, and list. |
| Sale Invoice | Sale Invoice header (including print when Hide in Print is off). |
| Sale Quotation | Sale Quotation header. |
| Sale Order | Sale Order header. |
| Material Request | <a href="#/inventory/material-request">Material Request</a> create, edit, view, and list. Group: Request Details. |

Choose the collection first. <b>Show in Form Group</b> then lists the sections for that collection (for example Basic Details and Lead Details on a lead).

<hr class="doc-section-divider">

<h2 id="fields">Form Fields</h2>

| **Field** | **Description** |
|-----------|-----------------|
| Collection * | Record type this field belongs to. It appears on create, edit, view, and list screens for that type. |
| Field Name * | Internal key used to store the value. Use letters, numbers, and underscores only (for example <code>businessType</code>). Do not change it after records are saved. |
| Field Type * | Input shown on the form: Text, Number, Dropdown, Checkbox, Date, or Textarea. |
| Field Label | Name shown next to the field on forms, lists, and views. If empty, Field Name is used. |
| Placeholder | Hint shown inside the input before a value is entered. |
| Required | When enabled, the user must fill this field before saving the record. |
| Dropdown options | Shown when Field Type is Dropdown. <b>Label</b> is what the user sees; <b>Value</b> is what is stored (can match the label). |
| Show in List | Adds this field as a column on the list page for this collection. |
| Show in Filter | Adds this field to list filters so records can be searched by it. |
| Hide in Print | Hides this field on printed documents. Currently applies to Sale Invoice. |
| Show in Form Group | Form section where this field is placed (for example Basic Details). If empty, it is added to the first section. |
| Show this field only when | Optional visibility rule. Leave <b>Other field</b> empty to always show this field. See <a href="#/settings/custom-fields?id=show-when">Show this field only when</a>. |
| Status | Active or Suspended. Suspended fields are hidden on forms and lists. |

The view screen groups fields under <b>Basic Information</b>, <b>Field Options</b> (dropdowns), and <b>Display Settings</b>. A saved visibility rule appears as one line, for example <code>First Name is riyas</code>.

<hr class="doc-section-divider">

<h2 id="show-when">Show this field only when</h2>

Use this section to hide a custom field until another field on the same form matches a condition.

| **Field** | **Description** |
|-----------|-----------------|
| Other field | Pick a <b>normal form field</b> on the selected collection (for example First Name on Lead, Customer on Opportunity) or another <b>custom field</b>. The list shows the label and the stored key, such as <code>First Name (firstName)</code>. |
| Condition | <b>Is</b>, <b>Is not</b>, <b>Is one of</b>, or <b>Is not one of</b>. |
| This value | The stored value that should match. For dropdowns use the option <b>Value</b>, not the label. For several values, separate with commas (for example <code>courier, customer_pickup</code>). For checkboxes use <code>true</code> or <code>false</code>. |

On the form, a hidden field is removed from the layout and does not block required validation. Changing Collection clears the rule only if you empty Collection; the saved rule is kept when you open Edit.

<hr class="doc-section-divider">

<h2 id="use-cases">Use cases</h2>

These examples keep extra questions off the form until they are needed. Always enter the dropdown <b>Value</b> (for example <code>hourly</code>), not the label (“Hourly”).

<h3>Supplier — bank codes only for overseas vendors</h3>

Collection: <b>Supplier</b>. Custom dropdown <code>vendorType</code> with Local / Overseas.

| **Field** | **Show this field only when** |
|-----------|-------------------------------|
| SWIFT / IBAN | Other field Vendor Type, condition <b>Is</b>, value <code>overseas</code> |

Local suppliers never see SWIFT or IBAN, so those fields cannot block save even if Required is on.

<h3>Employee — overtime rate only for hourly staff</h3>

Collection: <b>Employee</b>. Custom dropdown <code>payType</code> with Monthly / Hourly. Custom number <code>overtimeRate</code> with Other field Pay Type, condition <b>Is</b>, value <code>hourly</code>.

<h3>Item — storage notes only for special goods</h3>

Collection: <b>Item</b>. Custom dropdown <code>handling</code> with Standard / Cold chain / Hazardous.

| **Field** | **Show this field only when** |
|-----------|-------------------------------|
| Storage notes | Other field Handling, condition <b>Is one of</b>, value <code>cold_chain, hazardous</code> |
| UN number | Other field Handling, condition <b>Is</b>, value <code>hazardous</code> |

<h3>Sale Order — preferred date only for scheduled delivery</h3>

Collection: <b>Sale Order</b>. Custom dropdown <code>dispatchMode</code> with Immediate / Scheduled / Customer pickup. Show custom date <code>preferredDispatchDate</code> only when Dispatch Mode <b>is</b> <code>scheduled</code>. Show custom text <code>pickupContact</code> only when Dispatch Mode <b>is</b> <code>customer_pickup</code>.

<h3>Project — client PO only when the job is billed on contract</h3>

Collection: <b>Project</b>. Custom dropdown <code>billingType</code> with Time and material / Contract / Internal. Show custom text <code>clientPoNumber</code> when Billing Type <b>is not</b> <code>internal</code> (or <b>is one of</b> <code>tm, contract</code>).

<h3>Material Request — extra refs only for some request types</h3>

Collection: <b>Material Request</b>. Other field is the form field <b>Request For</b> (<code>transactionType</code>).

| **Field** | **Show this field only when** |
|-----------|-------------------------------|
| Job card no. | Other field Request For, condition <b>Is</b>, value <code>issueForProduction</code> |
| Machine / line | Other field Request For, condition <b>Is one of</b>, value <code>issueForProduction, rework</code> |

Purchase Order and Inventory Transfer requests stay short; production and rework requests collect the extra references. See <a href="#/inventory/material-request?id=custom-fields">Material Request — Custom Fields</a>.

<hr class="doc-section-divider">

<h2 id="actions">Actions</h2>

New, View, Edit, Suspend, Activate, Delete, Refresh.

<hr class="doc-section-divider">

<h2 id="faq">FAQ</h2>

<p><b>Can I add custom fields to leads or opportunities?</b></p>
<p>Yes. Set Collection to <b>Lead</b>, <b>Opportunity</b>, or <b>Material Request</b>. The field appears on New, Edit, and view. Enable <b>Show in List</b> or <b>Show in Filter</b> for the list. See <a href="#/crm/lead?id=custom-fields">Leads — Custom Fields</a>, <a href="#/crm/opportunity?id=custom-fields">Opportunity — Custom Fields</a>, and <a href="#/inventory/material-request?id=custom-fields">Material Request — Custom Fields</a>.</p>

<p><b>How do I show a field only for some records?</b></p>
<p>Open <b>Show this field only when</b>, pick the other field (form or custom), choose a condition, and enter the stored value. Leave Other field empty to always show.</p>

<p><b>Can I change Field Name after create?</b></p>
<p>Do not change Field Name after records are saved — it is the internal storage key. Edit Field Label and display options instead.</p>

<p><b>What does Hide in Print do?</b></p>
<p>When checked, the field value is omitted from printed and PDF views. This option currently applies to <b>Sale Invoice</b>.</p>

<p><b>Can I import custom field values?</b></p>
<p>Yes when columns are mapped on an <a href="#/settings/import-templates">Import Template</a> for the same collection — verify template mapping before bulk upload.</p>

<p><b>Why doesn't my custom field appear in filters?</b></p>
<p>Enable <b>Show in Filter</b> on the field definition and refresh the list view. Suspended fields are hidden everywhere.</p>

<p><b>What field types support dropdown values?</b></p>
<p>Dropdown type only. Enter options on the field form — other types use free entry controls.</p>

<p><b>Can one collection have multiple custom fields?</b></p>
<p>Yes. Use Group to section fields on the transaction form. Order follows list sort on the Custom Fields screen.</p>

<hr class="doc-section-divider">

<h2 id="related">Related Topics</h2>

<ul>
<li><a href="#/crm/lead">Leads</a></li>
<li><a href="#/crm/opportunity">Opportunity</a></li>
<li><a href="#/inventory/material-request">Material Request</a></li>
<li><a href="#/sales/customers">Customers</a></li>
<li><a href="#/settings/import-templates">Import Templates</a></li>
</ul>
