For the complete documentation index, see llms.txt. This page is also available as Markdown.

🙈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

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

  1. The fields you compare exist and are synced.

  2. For LOGGED_IN_USER, the app is private and the Users database has that property.

Build it

  1. Select the component.

  2. Open Visibility.

  3. Choose source ROW, USER_INPUT, or LOGGED_IN_USER.

  4. Add conditions (equals, not empty, contains, …) joined by AND / OR.

  5. Preview with View as and by changing the driving field on the form.

  6. Publish.

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

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

  • USER_INPUT only 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_USER hides the component for them.

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

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.

Screen-level: Screen Visibility. Forms: Type of Components.

Last updated