---
title: "How to Customize Object Forms with Custom Fields and Screens"
description: "Extend object registration with Custom Fields and arrange them on detail pages with Custom Screens."
---

<div style="padding: 14px 16px; border: 0.5px solid #AFA9EC; border-radius: 12px; background: #EEEDFE; margin-bottom: 1.5rem;">
  <div style="display: flex; align-items: center; gap: 7px; margin-bottom: 8px;">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
      <path d="M9 2L4 9h4l-1 5 5-7H8l1-5z" stroke="#7f77dd" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
    </svg>
    <span style="font-size: 11px; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; color: #534AB7;">TL;DR</span>
  </div>
  <div style="font-size: 13px; color: #3C3489; line-height: 1.65;">
    Define extra metadata fields in <strong>Settings → Custom Fields</strong>, then arrange them on an object type's detail page in <strong>Settings → Custom Screens</strong> using a drag-and-drop grid. Fields capture the data; use screens to decide where it appears and the layout.
  </div>
</div>

:::note[Admin guide]
This page is for administrators with write access to Custom Fields and Custom Screens.
:::

Custom Fields and Custom Screens let you add your own metadata to object registration. A custom field is any input (text, number, date, select, file) you attach to one or more object types; a custom screen is the layout that arranges those fields on an object type's detail page. Define the fields first, then lay them out on a screen.

## Define a custom field

Go to **Settings → Custom Fields** and click **+ New Custom Field**. Give it a **Name**, then set:

* **Managed** <span style="color: #E5484D;">*</span> - **Within Corridor** (users fill it in on the platform) or **By External System** (populated from outside). 
* **Field Type** <span style="color: #E5484D;">*</span> - Number, Short Text, Long Text, Single Select, Multiple Select, Datetime, or Single File (Corridor-managed only).
* **Alias** <span style="color: #E5484D;">*</span> - a valid variable name used to reference the field.
* **Object Types** <span style="color: #E5484D;">*</span> - which object types can use the field (Model, Policy, Feature, and so on).

The rest are optional: **Is Mandatory** (is the field required at registration), **Is Searchable** (lets users search the value, for text/number/select), **Options** (the values for select fields), **Default Value**, **Placeholder / Help Text**, and **Description**.

**Is Editable After Approval** - It's off by default, and it applies to Corridor-managed fields. Leave it off and the field locks once the object is approved, like the rest of the definition. 

Turn it on and users can change the field in any state, including Approved, without it counting as a change to the object itself. Useful for attaching reports, dev data incase any of those were missed during approvals.

When you're done, click **Save**.

:::note
On an approved object, edit these fields from **Edit Custom Fields** in the three-dot menu. It's disabled if no field is marked **Is Editable After Approval**, and every edit is logged in the object's change history.
:::

## Lay out a custom screen

Each object type has one screen that arranges its fields into sections on a 4-column grid.

Go to **Settings → Custom Screens** and open the screen for the object type (the screen's name is the object type). Then:

* Click **Add Section** to create a named group. Sections render top to bottom in sort order.
* From the sidebar, click a field to drop it into the expanded section. Drag to reposition, and resize from a field's right edge (full, three-quarter, half, or quarter width).
* Remove a field or section with its trash icon; keep at least one section.
* Need a field that doesn't exist yet? Use **Add Custom Field** in the sidebar to create one inline.

Save the screen. Positions are normalized so there are no gaps, and the layout takes effect on that object type's detail page. The sidebar lists all custom fields for the type; ones already placed are hidden.

## What's next

* The fields you define here appear when users [register objects](/user-guide/how-tos/register-a-model-definition/).
