> ## Documentation Index
> Fetch the complete documentation index at: https://help.fieldpulse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Form Field Types and Formulas Details

> Look up every custom form field type in FieldPulse, plus how field formulas, related-record fields, and conditional logic work when you build a form.

> **Who uses this:** Anyone with access to **Company Settings** > **Custom Forms** builds a form's fields; your team fills them in on the record. **Availability:** All regions · Custom Forms must be enabled under **Company Settings** > **Features & Plugins** — contact FieldPulse for pricing.

This is the reference for the building blocks of a [custom form](https://www.fieldpulse.com/features/custom-forms) — the field types you drag onto the form, the related-record fields that pull values off the record the form is attached to, the formulas that calculate a number for you, and the conditional logic that shows a field only when it applies.

## Overview

You add fields to a form by dragging them from the **Drag a field onto the form** palette on the right side of the form editor. Most field types collect input directly from the person filling out the form. Related-record fields instead import values that already exist on the linked customer, job, estimate, invoice, project, maintenance agreement, or asset. A **Number Field** can calculate its own value from a formula, and any field can be set to appear only when an earlier answer matches a condition. For how to create a form and arrange fields on it, see [How to Create a Custom Form](/add-ons/custom-forms/create-a-form).

> [!NOTE]
>
> For a full breakdown of every setting available on a form — name, font sizes, offline availability, record attachment, permissions, and default email and SMS messaging — see [Custom Form Settings Details](/add-ons/custom-forms/settings).

## Field types

A custom form supports eleven field types. Each one below shows what it collects and the options you can set on it.

| **Field type** | **What it does** |
| - | - |
| **Section Label** | Section header for names and titles. |
| **Text Field** | Free-text entry, so the person filling out the form can answer in their own words. |
| **Number Field** | Numeric-only input. Add an optional **Unit of Measure** — the suggestions are \$, hr, ft, ft², BTU, CFM, PSI, °F, and % — and check **Show unit before value** to place the unit ahead of the number instead of after it. |
| **Drop-down Field** | Select a single option from a list. |
| **Multi-select Dropdown Field** | Select multiple options from a list. Specify the minimum and maximum number of selections someone can make. |
| **Quick Select** | Multiple choice with up to 5 options. |
| **Checkbox** | Select for yes, leave blank for no. |
| **Date & Time** | Collect a date and time. Check the box to auto-fill the current date and time when someone submits the form. The time panel scrolls in 15-minute increments, and you can enter an exact time down to the minute in the **Time** field in the bottom right corner. |
| **Image/Video** | Upload jpg, pdf, mp4, and png files. Set the minimum and maximum number of files, from 1 to 10. |
| **Signature** | Collect a signature directly in the form. |
| **Related Record Fields** | Import values from the record the form is attached to. See the table in the next section. |

![Date & Time field on a custom form with the calendar picker, the 15-minute time scroll panel, and the exact Time entry box](https://mintcdn.com/fieldpulse/a4AEbOEi8pBr9B-n/static/images/_api/10431393-creating-a-custom-form/12.png?fit=max\&auto=format\&n=a4AEbOEi8pBr9B-n\&q=85\&s=b793996faaf3b22eab1243be2596c7bb)

## Related-record fields

Related-record fields pull details that already exist on the linked record into the form, so your team does not retype them. If a customer has multiple locations or contacts, you specify which one's information fills the field.

| **Record** | **Values you can pull** |
| - | - |
| **Customer** | Name, notes, job notes, email, phone, billing address, location, status/type, pipeline status, lead source, tags, and any custom fields on your customer records. |
| **Job** | Title, location name, location, job notes, field notes, status, assigned team members, scheduled date/time, customer arrival window, created by, tags, and any custom fields on your job records. |
| **Estimate** | Title, estimate notes, internal notes, estimate date, author, status, location, reference, expiration date, tags, and any custom fields on your estimate records. |
| **Invoice** | Title, invoice notes, internal notes, invoice date, author, status, location, reference, due date, tags, and any custom fields on your invoice records. |
| **Project** | Title, notes, job notes, start date, end date, completion percentage, and any custom fields on your project records. |
| **Maintenance Agreement** | Title, job location, status, price per bill, total annual fee, agreement notes, job notes, and any custom fields on your maintenance agreement records. |
| **Asset** | Asset tag, title, asset notes, install date, location, location details, category, manufacturer, model, model number, serial number, model year, model details, warranty, condition, warranty information, and any custom fields on your asset records. |

For more detail on adding related field values to a form, see [How to Link Custom Forms to Jobs](/add-ons/custom-forms/link-to-jobs).

## Field formulas

A field formula lets a **Number Field** calculate its own value from other number fields and constants, so nobody has to work the math out by hand and type the answer in.

1. Select a **Number Field** on your form to open its settings.

   ![Custom form editor with the Drag a field onto the form palette open and Number Field highlighted](https://mintcdn.com/fieldpulse/meHjvjAbf_opaEiV/static/images/_api/10431393-creating-a-custom-form/31.png?fit=max\&auto=format\&n=meHjvjAbf_opaEiV\&q=85\&s=8862c0e1c44f34b5d951d41203c10a4a)

2. Select **Use Formula as Default Value** above the **Default Value** field.

   ![Field Attributes panel for a Number Field with the Use Formula as Default Value button above the Default Value box](https://mintcdn.com/fieldpulse/meHjvjAbf_opaEiV/static/images/_api/10431393-creating-a-custom-form/32.png?fit=max\&auto=format\&n=meHjvjAbf_opaEiV\&q=85\&s=84eb12ec4e018211a23983c4cd702079)

3. In the **Default Value** selector, choose an existing formula or select **Add or Edit Formulas**.

   ![Default Value selector open on a Number Field with the Add or Edit Formulas button](https://mintcdn.com/fieldpulse/meHjvjAbf_opaEiV/static/images/_api/10431393-creating-a-custom-form/33.png?fit=max\&auto=format\&n=meHjvjAbf_opaEiV\&q=85\&s=a283f07817ba9528ebeb968aec1ddb5f)

4. In the **Formulas** modal, select **Add Formula** and give the formula a name.

   ![Formulas modal on a custom form with the Add Formula button and no formulas created yet](https://mintcdn.com/fieldpulse/meHjvjAbf_opaEiV/static/images/_api/10431393-creating-a-custom-form/34.png?fit=max\&auto=format\&n=meHjvjAbf_opaEiV\&q=85\&s=4bc881a7377154156d34bff2896bfa23)

5. Select **Insert Numeric Field or Formula** to bring other number fields or existing formulas in as variables.

6. Connect the variables with arithmetic operators — add, subtract, multiply, divide. You can multiply a field by a set constant, and a formula can reference another formula so calculations build on each other.

   ![Formula builder showing two number variables joined by a plus sign, with the Insert Numeric Field or Formula button above](https://mintcdn.com/fieldpulse/meHjvjAbf_opaEiV/static/images/_api/10431393-creating-a-custom-form/35.png?fit=max\&auto=format\&n=meHjvjAbf_opaEiV\&q=85\&s=be516b6b4d6c7b4704c34fe2d65ee5c8)

7. Save the formula and close the modal.

8. Select the formula as the **Default Value** for the field.

Once a formula is set, the **Number Field** is read-only while someone fills out the form, because FieldPulse calculates the value. To take the formula off the field, select **Remove** in the field's settings.

## Conditional logic

Conditional logic makes a form adapt to the answers a person gives, so one form can replace several versions of the same form. You build rules on a field, and each rule watches other fields on the form. When the rule's conditions are met, the field changes. For example, a **Gate Code** field appears only when the **Gate Code Required for Entry?** checkbox is checked.

> [!NOTE]
>
> Only Admins can build rules, and rules are built on the web. People filling out a form with rules on the mobile app see the same behavior as on the web.

### Rule types

Each field can carry up to three rules, one of each type. A field can also carry no rules at all.

| **Rule type** | **What it does when its conditions are met** |
| - | - |
| **Display** | The field is hidden by default and appears when the conditions are met. |
| **Disable** | The field stays visible but is greyed out and locked. When the conditions are not met, the field is fully editable. |
| **Format** | The field stays visible and fillable, and its styling changes. |

Display, Disable, and Format work together on the same field. A field can be locked and highlighted at the same time. Rules apply only to the field they are built on. To lock or highlight several fields from the same answer, build a rule on each field.

Rules are checked again every time someone changes an answer, and the order you add them in does not matter.

### Add a rule to a field

1. Open the form template in **Company Settings** > **Custom Forms** and select the field.

2. In the **Field Attributes** panel, go to the **Conditional Logic** section and select **Add rule**.

3. Choose **Display**, **Disable**, or **Format**. A rule type already on the field is marked as in use and cannot be chosen again.

4. Add a condition. Each condition has three parts: a **trigger field**, an **operator**, and a **value**.

5. Select **Add new condition** to add more, or use the delete control on a row to remove one.

6. If the rule has more than one condition, choose **AND** or **OR**. The choice applies to every condition in that rule. **AND** means every condition must be met. **OR** means any one condition is enough.

7. Save the template.

![Field Attributes panel with the Conditional Logic section at 0 of 3 rules and the Add rule menu open on Display, Disable, and Format](https://mintcdn.com/fieldpulse/8vuRhwE2ZdWaCrHL/static/images/_api/10431393-creating-a-custom-form/36.png?fit=max\&auto=format\&n=8vuRhwE2ZdWaCrHL\&q=85\&s=8cd43bc0d03d460ce2639fa1e18e5ecb)

A trigger field can be any other field on the form, including fields on other pages. Format rules also offer **This field** at the top of the list, so the rule can react to the value in the field it styles.

### Operators by field type

The operators you can choose depend on the type of the trigger field.

| **Trigger field type** | **Operators** | **When the condition is met** |
| - | - | - |
| **Dropdown** (Select, Radio, MultiSelect) | **is** (or **is in** for MultiSelect), **is not** | **is** is met when the field holds any one of the values you chose. **is not** is met when the field holds none of them. You choose values from a multi-select list. |
| **Number** | **Specific value** or **Range** | **Specific value** compares the field to one number using one of these operators: is equal to, is not equal to, is greater than, is greater than or equal to, is less than, is less than or equal to. **Range** compares the field to a minimum and a maximum. Choose is between or is not between. |
| **Text** | **Contains any**, **Is exactly** | **Contains any:** enter one or more words or phrases as chips. The condition is met when the field contains any one of them. You can paste a comma-separated list and it splits into separate chips. **Is exactly:** enter one value. The condition is met when the field matches it completely. Text matching is not case sensitive. |
| **Date** | **Exact date**, **Date range** | **Exact date:** the condition is met when the field's date equals the date you pick. **Date range:** pick a **Start** and an **End**. The condition is met when the field's date falls within the range, including both days. If **End** is earlier than **Start**, an error appears and the condition does not save. The date inputs match the trigger field's type: Date, Date and Time, or Time only. |

To require several dropdown values at once, add one condition per value and set the rule to **AND**.

> [!NOTE]
>
> A blank trigger field counts as "not" any value, so an **is not** condition is met when the trigger field is left empty. For number, text, and date triggers, a blank field never meets a condition.

### Display rules

A Display rule hides the field until its conditions are met. The panel reminds you: *Field is hidden by default. It appears when the conditions below are met.*

When a field is hidden, the person filling out the form does not see the field, its label, or its value, and it does not appear on the form PDF. In the builder, a hidden field shows a **Hidden** placeholder so you can still select and edit it. The placeholder does not appear to the people filling out the form.

If a person enters a value, and the conditions then stop being met, the field hides again. If the conditions are met again during the same fill, the value returns. In the builder preview, a field in this state reads **Hidden, value retained** when its Layout Behavior is set to preserve space.

> [!NOTE]
>
> Entered values that have not been submitted are lost if the page is reloaded.

What happens to the space a hidden field leaves behind is controlled by **Layout Behavior When Field is Hidden**. See [How to Create a Custom Form](/add-ons/custom-forms/create-a-form).

![Display rule expanded in Field Attributes on a Date field reading Date is exactly, with the hidden-by-default caption, the Required auto-suspend warning, and the CDT time zone note](https://mintcdn.com/fieldpulse/8vuRhwE2ZdWaCrHL/static/images/_api/10431393-creating-a-custom-form/39.png?fit=max\&auto=format\&n=8vuRhwE2ZdWaCrHL\&q=85\&s=e37346fdb776f3ca8a93f91a508406cc)

### Disable rules

A Disable rule locks the field while its conditions are met. The panel reminds you: *Field stays visible but is greyed out and locked when the conditions below are met.*

Disable rules read in one direction only: disable the field **when** the conditions are met. The field is editable by default.

You can add an optional **disclaimer message** that appears under the locked field. For example, a **Camera Mounting Height** under 5 ft can disable the **Camera Type** field and show "Not available for low mount installs."

A disabled field keeps whatever value it holds, and that value is saved when the form is submitted. A Disable rule works only while the field is visible. If a Display rule is hiding the field, the Disable rule has no effect until the field appears.

![Disable rule expanded in Field Attributes with its caption, a Date condition, the Add new condition link, and the optional Disclaimer box](https://mintcdn.com/fieldpulse/8vuRhwE2ZdWaCrHL/static/images/_api/10431393-creating-a-custom-form/37.png?fit=max\&auto=format\&n=8vuRhwE2ZdWaCrHL\&q=85\&s=4f499403b46347d4a1a573287640e5c5)

### Format rules

A Format rule changes how the field looks while its conditions are met. The panel reminds you: *Field stays visible and fillable. Its styling changes when the conditions below are met.* Use it for things like tier colors (gold, silver, bronze) or alerts (red for out of range, green for in range).

Choose a **highlight color**:

| **Swatch** | **Typical use** |
| - | - |
| **Gold** | Default for a new Format rule. |
| **Silver** | Tier or neutral flag. |
| **Bronze** | Tier flag. |
| **Green** | In range or passing. |
| **Red** | Out of range or failing. |

To use any other color, select the multicolored swatch to open the color picker. Pick a color from the gradient, enter a hex code (#RRGGBB), switch between **HSV** and **RGB** values, or choose from the **Basic colors** grid. Select **OK** to apply it or **Cancel** to discard it.

Then turn on **Bold** for the text in the field. It is off by default. A live preview in the panel shows the result.

Format rules are the only rules that can use **This field** as a trigger, so a field can change color based on its own value. Format applies only while the field is visible, and the styling shows on the completed form.

![Format rule expanded in Field Attributes with a This field is checked condition, the Text format and Highlight color swatches, and the Sample value preview](https://mintcdn.com/fieldpulse/8vuRhwE2ZdWaCrHL/static/images/_api/10431393-creating-a-custom-form/38.png?fit=max\&auto=format\&n=8vuRhwE2ZdWaCrHL\&q=85\&s=edd1138aa7992881d0884271e8ec7de4)

#### Save custom colors

In the color picker, select the plus button to save the current color into the next open slot of the **Custom colors** row. The row holds up to eight colors.

Saved colors belong to your whole company. Every admin with access to the form editor sees them on every template, on any device. Remove a saved color from its slot when you no longer need it. Removing a color from the palette does not change any rule that already uses it.

## Notes & limitations

* A custom form holds a maximum of **20 pages**. The web app paginates every 10 pages; the mobile app paginates every 4 pages. See [How to Create a Custom Form](/add-ons/custom-forms/create-a-form).

* **Image/Video** fields accept jpg, pdf, mp4, and png files, and each field allows between 1 and 10 files.

* **Quick Select** holds up to 5 options.

* A **Number Field** with a formula is read-only while someone fills out the form.

* In Offline Mode, related-record fields do not populate on their own. The field shows the message *The value will be filled automatically when you are back online*, and the value fills in once the device reconnects. See [Custom Forms Offline Mode Details](/add-ons/custom-forms/offline-behavior).

![Related fields on a custom form in the mobile app showing the offline placeholder message in place of the customer name and job title](https://mintcdn.com/fieldpulse/a4AEbOEi8pBr9B-n/static/images/_api/10431393-creating-a-custom-form/30.png?fit=max\&auto=format\&n=a4AEbOEi8pBr9B-n\&q=85\&s=67d13ed9c1a894f6030c69345e49606d)

## FAQs

**Can I add fields that only my team sees, not the customer?**

Yes. Check **Internally Visible Field Only** in the field's attributes and the field stays off customer-facing displays, including PDFs, while your team still sees it. When a field is hidden the rest of the form adjusts around it, and you can designate an internal PDF for printing so internal fields appear on that copy — see [How to Create a Custom Form](/add-ons/custom-forms/create-a-form).

## Related articles

* [How to Create a Custom Form](/add-ons/custom-forms/create-a-form)
* [Custom Form Settings Details](/add-ons/custom-forms/settings)
* [How to Link Custom Forms to Jobs](/add-ons/custom-forms/link-to-jobs)
* [Custom Forms Offline Mode Details](/add-ons/custom-forms/offline-behavior)
* [Custom Forms Overview](/add-ons/custom-forms/overview)


## Related topics

- [Custom Forms Overview](/add-ons/custom-forms/overview.md)
- [Custom Form Settings Details](/add-ons/custom-forms/settings.md)
- [How to Create a Custom Form](/add-ons/custom-forms/create-a-form.md)
- [Setting Up Custom Forms](/add-ons/custom-forms/enabling.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.