Form Layouts
Every form in the application renders from a layout definition. If no one has written one, it renders its built-in default. This page is where a layout is written, and — just as importantly — where it is taken away again.
Where to find it
| Screen | Where it lives | What you need |
|---|---|---|
Form layouts — /admin/forms | Settings → Data model → Form Layouts | The View form definitions permission; saving a space layer, locking and resetting need Customize/lock form definitions, and the global layer also needs Write GLOBAL-scope settings, forms, and widgets |
Three layers, most specific wins
A layout can be saved at three levels, and a form uses the most specific one that exists:
| Save for | Who gets it |
|---|---|
| Just me | only you |
| Space | everyone in the space who has no personal layer |
| Global | every space that has no space layer (offered only to holders of the global-write permission) |
The list has three columns: Form, Layers and Comes from. Comes from says what is actually in force for you right now — Personal override, Inheriting from Space, Inheriting from Global, or Built-in default. The Layers column shows which levels have a definition at all, so you can see at a glance that a form is customised somewhere even when you are not the one seeing the customisation.
Resetting a layer
Press Edit on a row, pick the layer under Save for, and press Reset beside it — each layer is reset on its own. Resetting does not restore a factory layout — it clears that layer, and the form starts inheriting again from the layer beneath it. The confirmation says exactly that: Layer cleared — inheriting again.
This is the honest way out of a customisation that went wrong: you are never left having to reconstruct the original by hand.
Locking a layer
A space or global layer can be locked with the Lock button on its row (Unlock takes the lock off again). A locked layer can only be overwritten by somebody who holds the Force-lock form definitions permission; the editor marks the layer with This layer is locked — only a super-admin can overwrite it. Use it for a layout that has been agreed and should not drift.
Writing a definition
The definition is edited as JSON in the Definition (JSON) box. If what you type is not valid JSON, the page says so before anything is sent — the message is The definition is not valid JSON., and nothing is saved.
Layouts that came from a template
If a layer's value arrived from an applied template, the row is badged From template. Overriding it asks you to confirm first, because of what the confirmation says: overriding detaches it — template updates will no longer change it. Say yes if that is what you want; say no if you would rather keep following the template. See Templates.
Adding a layout for a form that has none
Press + Add layout, type the form's key in Form — for example contact_edit — and press Continue to open the editor. Until a layout exists, the empty state is not an error: it reads No form layouts yet — forms render their built-in defaults.