Custom Object Layouts

Layouts allow you to control how the properties of a Custom Object are displayed when viewing or editing instances of that object. Without a layout, all properties are displayed in a simple vertical list. With a layout, you can organize properties into sections, tabs, and multi-column arrangements and override the default rendering of a field with a specialised widget (e.g. a numeric spinner for a numeric property, or a transfer list for a set property).

For the JSON schema of a layout, see Layout JSON Format. For the list of available field renderers, see Layout Renderers Reference.

Layout Settings

Each layout has the following settings:

Name

A unique name for this layout (required). This name is shown to users when selecting a layout.

Description

An optional description explaining when this layout should be used.

Ordinal

Controls the display order of layouts. Lower numbers appear first.

Active

Only active layouts are available to users. Inactive layouts are hidden.

Hide Unassigned Fields

When set to Yes, fields not placed in the layout are completely hidden. When set to No (the default), unassigned fields appear in a collapsible "Other Fields" section. Hidden field values are preserved on save.

Layout Assignments

Layouts can be assigned to specific users based on their role:

Allow All Users

If set to Yes, any user that can view the project can use this layout. Role assignments are ignored.

Allow Project Owner

If set to Yes, the Project Owner can use this layout in addition to any assigned roles.

Assigned Roles

Select which Project Roles can use this layout. Users with these roles will see this layout as an option.

When a user has access to multiple layouts, they can choose which one to use when viewing or editing custom object instances.

Live Preview

The layout editor provides a live preview that updates as you type the JSON. This helps you visualize the layout structure before saving. Fields that exist in the layout are shown with their names and value types, and any renderer override is shown as a badge on the field tile.

Any fields not included in your layout are listed in the "Fields not in layout" section — these will appear in an "Other Fields" area at the bottom of the rendered layout (or be hidden entirely if "Hide Unassigned Fields" is enabled on the layout).