A condition makes a field behave differently depending on something else on the form. It is how a form asks a follow-up question only when it is needed, grays out a field until an earlier one is answered, or shows a section to internal staff but not to a customer. Conditions are evaluated in the browser as the user types, so the form reacts immediately.


Conditions are set in the Conditions (Enabled/Visible Settings) section of the field's properties. A wand icon appears on that section's header when the field has any condition set, so a glance at the panel tells you the field is doing something conditional.


The five conditions

Field Required When - The field becomes required while the condition is true. This is the setting to use instead of Field Required whenever a field is only mandatory some of the time.


Field Enabled When - The field is only available for entry while the condition is true. At all other times it is greyed out.


Field Disabled When - The reverse: the field is grayed out while the condition is true.


Field Visible When - The field is only shown while the condition is true.


Field Hidden When - The field is hidden while the condition is true.

Enabled and Disabled do the same job from opposite directions, as do Visible and Hidden. Pick whichever one reads more naturally for the rule you are writing, and use only one of each pair on a field. A hidden field does not have to be filled in even if it is required, and by default it does not save its value; turn on Save When Hidden if the value should still be written.


Panel fields have a sixth condition, Panel Toggled Closed When, which collapses the panel rather than hiding it. The panel stays on the form and the user can still open it.


Building a condition

Each condition is built from three parts: what to look at, how to compare it, and what to compare it to.

The first drop-down chooses what to look at. It starts with a set of built-in sources, then lists every field on the form under a FIELDS separator.

  • -Ignore- - No condition. This is the default and means the setting never applies.
  • -Always- - The condition is always true. No operator or value is needed. Use it to make a field permanently hidden or disabled without deleting it.
  • -Computed Values- - Compare the result of a calculation. An extra box appears for the expression, written with the {FieldName} syntax used by calculated fields, so a condition can be based on several fields at once or on maths across them.
  • -User- - The person filling in the form.
  • -Team- - The teams the person belongs to.
  • -Workflow- - Where the record sits in a workflow.
  • -Location- - Where on the site the form is being shown.
  • -Record- and -Document- - Whether the form has been opened against an existing record or document.
  • -Client- - The device and browser the form is being viewed on.
  • A field - Any field on the form, compared to a value.

The second drop-down chooses the operator, and the list changes to suit what was selected. The third box holds the value to compare against, and appears only for the operators that need one.


Comparing to another field

When the condition looks at a field, these operators are available.


Equals and Not Equals - An exact match against the value entered.


Less Than Number and Greater Than Number - A numeric comparison.


Between - True when the value falls between the two entries. Two boxes appear.


Contains and Not Contains - True when the entered value appears anywhere inside the field's value. Use it for a partial match, such as a code that starts with a known prefix.


In List and NOT In List - True when the field's value matches one of several values. Separate the values with the pipe character, as in Approved|Pending|On Hold. This replaces a long chain of Equals conditions.


Empty and Not Empty - Whether the field has been filled in at all. Not Empty on Field Enabled When is the usual way to keep a field locked until an earlier one is answered.


Checkbox fields add Checked and Not Checked, which read better than comparing the value. Option and Multi-Option fields add Has Data Options and Has No Data Options, which look at whether the list has any entries at all rather than at what the user picked - useful when the list is filled from a lookup that may return nothing. Search Results and Public Search Results fields add Search has Run and Search has Not Run, so a field can appear only once results are on the screen.


Conditions on the user and their teams

With -User- selected: User is Internal and User is External separate staff from people filling in a public or collaboration form, which is the usual way to show internal-only sections on a shared form. User (by Name or ID) and Not User (by Name or ID) compare against a specific person.


With -Team- selected: User Is In a Team and User Is Not In a Team test membership of any team at all, and User in Team (by Name or ID) and User Not in Team (by Name or ID) test one named team. Use these to show a section only to the group that owns it, such as approvals for the finance team.


Conditions on the workflow

With -Workflow- selected: In Workflow At Any Trigger and Not In Any Workflow test whether the record is in a workflow at all, and In Workflow At Trigger (by Name or ID) and Not In Workflow or Not At Trigger (by Name or ID) test one named step. This is how a single form shows the fields that belong to the step the record has reached instead of needing a separate form per step.


Conditions on where the form is shown

With -Location- selected, the operator is the place the form is being displayed: Home Screen, Toolbar List, Toolbar Drop-Down, Search Screen, Record Screen, Document Viewer, Workflow Prompt or Public E-form. One form can then behave differently in each place - for instance, showing a full set of buttons on the record screen and a stripped-down version in the document viewer, or hiding an internal section when the same form is used publicly.


With -Record- or -Document- selected, the operators are Exists and Does Not Exist. These tell a form whether it was opened against something that is already saved. A reCAPTCHA field, for example, is normally hidden when the document exists so returning users are not challenged again.


With -Client- selected, the operators are Client Is Windows, Client Not Windows, Client Is Mobile and Client Not Mobile. Use them for fields that only make sense on one kind of device, such as a scanner field on Windows or a simplified layout on a phone.


Conditions elsewhere on a form

Conditions are not limited to whole fields. The entries in an option list can each have their own condition, so a choice only appears when it applies. Columns inside a Table can be enabled and disabled on the same rules. A page can be hidden with the page's own Hidden When setting, which uses this same builder and takes the whole page out of the form.


Points to watch

A condition is evaluated against the field's current value on the form, not against what is stored in the record, so a field that is hidden from the user can still drive a condition. Hidden fields are a normal way to hold a value that several conditions depend on.

Conditions do not chain automatically. If field B is hidden when field A is empty, and field C is hidden when field B is empty, filling in A shows B but C stays hidden until B is answered, which is usually what you want. When it is not, base both conditions on the same field, or use -Computed Values- to test them together.


A condition is a display rule, not a security rule. Hiding a field keeps it off the screen, but anything the form is allowed to load is still loaded. Use record and record type security for data that certain people must not see, and use conditions for keeping a form readable.