Component visibility
Canonical page for showing or hiding a component from row values, what the user just typed, or the logged-in user.
What this is / when to use it
Section titled “What this is / when to use it”Visibility is evaluated from FilteringFieldSourceType:
| Source | Enum | Meaning |
|---|---|---|
| Always show | NONE |
No extra rule. |
| Row | ROW |
Use the saved Notion values on the record. |
| User input | USER_INPUT |
Use the in-progress form values (create/update). |
| Logged-in user | LOGGED_IN_USER |
Use the Users database fields of the current user. |
Use ROW on details and on forms when the rule should follow what is already stored. Use USER_INPUT when revealing “Describe the incident” after the user sets Type = Incident before save. Use LOGGED_IN_USER when only Admins should see an internal notes field.
When not to use component visibility:
- Hiding a whole screen — use Screen Visibility.
- Hiding rows — use Data restriction or list filters.
- Security for a field you still send to the client — visibility is UX. Do not put secrets in a “hidden” component.
Before you start
Section titled “Before you start”- The fields you compare exist and are synced.
- For
LOGGED_IN_USER, the app is private and the Users database has that property.
Build it
Section titled “Build it”- Select the component.
- Open Visibility.
- Choose source
ROW,USER_INPUT, orLOGGED_IN_USER. - Add conditions (equals, not empty, contains, …) joined by
AND/OR. - Preview with View as and by changing the driving field on the form.
- Publish.
Every control
Section titled “Every control”| Control | Options | What it does |
|---|---|---|
| Source | NONE / ROW / USER_INPUT / LOGGED_IN_USER |
Where values come from. |
| Connector | AND / OR |
How conditions combine. |
| Field | Property id | What you compare. |
| Operator / value | Condition | The rule. |
| Copy/paste logic | Builder | Reuse the same rule on another component. |
What users see
Section titled “What users see”If the rule fails, the component is not shown. Required hidden fields still fail submit if they are empty — unset required on fields that can hide.
Limits and plans
Section titled “Limits and plans”USER_INPUTonly helps on forms. On details it behaves like row data.- Nested formula/rollup in the condition picker may be disabled. See the relation logic-picker troubleshooting page.
- Guests have no logged-in user.
LOGGED_IN_USERhides the component for them.
Example
Section titled “Example”On Add request, Long text “Incident details” is visible when USER_INPUT Type equals Incident. Internal “Cost” number is visible when LOGGED_IN_USER Role equals Staff.
Fix problems
Section titled “Fix problems”| Symptom | Likely cause | What to do |
|---|---|---|
| Field never shows | Condition too tight, or source is ROW on a create form with empty row | Use USER_INPUT on create. |
| Submit blocked | Hidden + required | Turn off required. |
| Works in builder, not live | Not published | Publish. |
Related
Section titled “Related”Screen-level: Screen Visibility. Forms: Type of Components.