Skip to main content

Custom Fields

What custom fields are, what are the different types of custom fields, and how they work

Written by Mykyta Medvediev

Overview

Custom Fields allow you to extend the standard data model with additional fields tailored to your specific business needs. You can add custom fields to the following entities:

  • Cases

  • Line Items

  • Products

  • Doctors

  • Offices

  • Customers

  • Billing Accounts

  • Exception Tasks

  • Exception Task Templates

  • Production Tasks

  • Production Task Templates

  • Users

Custom fields are fully integrated into the system and appear alongside standard fields in forms, detail views, and data tables.

Pilot is continually adding new entities and custom fields. If you'd like us to add another entity, simply email [email protected]


Field Types

Custom fields support a variety of data types to accommodate different kinds of information:

  • Text Fields

    • Single Line Text

      • Maximum 100 characters

      • Best for short text entries like names, codes, or identifiers

      • Example uses: Reference numbers, scanner IDs, account codes

    • Multi Line Text

      • Maximum 2,000 characters

      • Ideal for longer text entries like notes, descriptions, or comments

      • Example uses: Special instructions, detailed notes, custom requirements

  • Number

    • Numeric values with up to 5 decimal places

    • Supports both integers and decimals

    • Example uses: Measurements, quantities, pricing multipliers

  • Selection Fields

    • Dropdown Select

      • Single selection from a predefined list of options

      • Users can only choose one option from the list

      • Example uses: Scanner type, material preference, region

    • Multiple Checkboxes

      • Multiple selections from a predefined list of options

      • Users can select zero, one, or multiple options

      • Example uses: Available services, applicable features, supported materials

    • Single Checkbox

      • Simple yes/no or true/false value

      • Displays as a checkbox that can be checked or unchecked

      • Example uses: Rush order flag, priority customer, new patient

  • Date and Time Fields

    • Date Picker

      • Calendar-based date selection

      • Stores date only (no time component)

      • Example uses: Expected delivery date, contract renewal date

    • Time Picker

      • Time selection (hours and minutes)

      • Stores time only (no date component)

      • Example uses: Preferred delivery time, appointment time

    • Date & Time Picker

      • Combined date and time selection

      • Stores both date and time components

      • Example uses: Scheduled appointment, expected completion timestamp

  • User Field

    • Selection of a user from your organization

    • Displays user's name and profile picture

    • Stores reference to the selected user

    • Example uses: Account manager, assigned technician, sales representative

  • Automatically Calculated Fields

    • Formula - separate section below

    • Rollup - separate section below

    • Property Sync - separate section below

Formulas

Allow you to construct simple formulas using boolean logic and various Excel-like functions to automatically calculate a field.

Syntax

  • Use properties: [properties.property_name]

  • Operators: +, -, *, /, <, >, <=, >=, =, !=, &&, ||, !

  • Numbers: 100, 1.5

  • Strings: "text" or 'text'

  • Booleans: true, false

Available Properties

You can only use the properties from the target entity. Cross-entity property reference is not allowed - use Rollup or Property Sync if you want to reference a property from another entity

Functions

Math:

  • abs(number) - Absolute value

  • max(num1, num2) - Maximum of two numbers

  • min(num1, num2) - Minimum of two numbers

  • power(base, exponent) - Raise number to power

  • add(num1, num2) - Add two numbers

  • subtract(num1, num2) - Subtract num2 from num1

  • sqrt(number) - Square root

  • round_down(number, precision) - Round down to decimal places

  • round_nearest(number, precision) - Round to nearest decimal places

  • round_up(number, precision) - Round up to decimal places

String:

  • concatenate(str1, str2, ...) - Combine strings (up to 100)

  • contains(text, substring) - Check if text contains substring (case-sensitive)

  • starts_with(text, substring) - Check if text starts with substring (case-sensitive)

  • lowercase(text) - Convert to lowercase

  • uppercase(text) - Convert to uppercase

  • string_length(text) - Get string length

Date:

  • add_days(date, days) - Add days to date

  • subtract_days(date, days) - Subtract days from date

  • time_between(date1, date2) - Time difference in milliseconds

  • month(date) - Get month number (1-12)

  • year(date) - Get year number

Conversion:

  • number_to_string(number) - Convert number to string

  • string_to_number(string) - Convert string to number

Conditional:

  • if(condition, valueIfTrue, valueIfFalse?) - Conditional expression

  • is_known(property) - Check if property has a value

Examples

[properties.line_item_amount] * 1.08
if(is_known([properties.discount]), [properties.price] - [properties.discount], [properties.price])

Rollups

Rollup fields automatically calculate aggregated values from associated records (e.g., sum line item totals on a case, count cases for a doctor).

To create:

  1. Select Association: Choose which related entity to aggregate (e.g., Case → Line Items)

  2. Choose Rollup Type:

    • Count: Total number of records

    • Sum: Add up values from a numeric property

    • Average: Calculate mean of a numeric property

    • Min/Max: Find minimum or maximum value

  3. Add Conditions (Optional): Filter which records to include (e.g., only line items > $100)

Example

Doctor field: "Total Revenue"

  • Association: Cases

  • Rollup Type: Sum

  • Property: Total Amount

  • Condition: Status = "Invoiced"

  • Result: Sums all invoiced case totals for each doctor

Auto-Calculation

  • Values recalculate automatically when associated records change

  • Cannot be manually edited (always computed)

  • Updates happen in real-time when dependencies change

Use Cases

  • Customer/Doctor metrics (total cases, revenue, remake rate)

  • Case aggregations (total line items, sum of costs)

  • Financial summaries (outstanding balance, payments received)

Property Sync

Property sync fields automatically display values from associated records, keeping data synchronized without manual updates.

To create:

  1. Select Source Entity: Choose which related entity to pull data from (e.g., Billing Account on a Case)

  2. Select Source Property: Choose which property to sync (e.g., Phone Number)

  3. Set Sync Criteria:

    • First Created: Syncs from the oldest associated record

    • Most Recently Created: Syncs from the newest associated record

Example

Create a "Customer Phone" field on Cases that syncs the phone number from the associated Billing Account. When the Billing Account's phone changes, the Case automatically shows the updated value.

Key Features

  • Read-only: Values update automatically, cannot be edited directly

  • Real-time: Updates when source property changes or associations are modified

Requirements

  • An association must exist between the entities

  • Source property must be accessible on the related entity


Field Configuration

Required Flag

When a custom field is marked as Required, it must have a value before certain actions can be performed:

  • For Cases:

    • Cases cannot be scheduled if required custom fields are not filled out

    • Users will receive an error message indicating which required fields are missing

    • All required fields must be completed before the case can move to scheduled status

  • For everything else:

    • The entity cannot be created if required custom fields are not filled out

    • The creation form will validate and prevent submission until all required fields are completed

    • Users will see clear error messages indicating which required fields need values

Uniqueness Constraint

The Unique flag ensures that no two entities of the same type can have the same value for that field. This is useful for enforcing business rules around identifiers or reference numbers.

Applicable Field Types:

  • Single Line Text

  • Multi Line Text

  • Number

The uniqueness constraint is not applicable to other field types (dropdowns, checkboxes, dates, times, user fields, formulas, rollups, and property syncs).

Validation Rules:

  • The system checks for duplicate values across all entities of the same type

  • Empty or null values are not considered duplicates (multiple entities can have no value)

  • Validation occurs during creation and updates

For Cases:

  • Cases cannot be scheduled if they violate uniqueness constraints

  • An error message will indicate which field has a duplicate value and that it must be unique

For Products, Doctors, and Customers:

  • The entity cannot be created if uniqueness constraints are violated

  • An error message will specify which field value is already in use by another entity

Default Values

Default values are automatically populated when creating new entities, saving time and ensuring consistency.

Field Types with Default Values:

  • Single Line Text / Multi Line Text: Pre-filled text value

  • Number: Pre-set numeric value

  • Single Checkbox: Default checked (true) or unchecked (false) state

  • Dropdown Select: Pre-selected option from the available choices

  • Multiple Checkboxes: Pre-selected options (can be multiple)

  • User: Pre-selected user from your organization

  • Formula: Pre-filled text value

Field Types Without Default Values:

  • Date Picker

  • Time Picker

  • Date & Time Picker

  • Property Sync

  • Rollups

These temporal fields do not support default values as date/time values are typically specific to each entity instance.


Usage

Creating Custom Fields

  1. Navigate to Settings > Custom Fields

  2. Select the entity type

  3. Click "Create New Field"

  4. Configure the field:

    1. Label: The display name for the field

    2. Type: Select the appropriate field type

    3. Required: Check if the field must have a value

    4. Unique: Check if values must be unique (only for text and number fields)

    5. Options: Add available choices (for dropdown and checkbox fields)

    6. Formula: Add and validate formula (for formula type)

    7. Property Sync: select an entity and its property, from which you want to sync the value (for property sync)

    8. Rollup: select an entity, from which you want to aggregate a property (for rollup)

    9. Default Value: Set a default value (if applicable)

Managing Custom Fields

  • Custom fields can be edited after creation, including changing labels, types, and constraints

  • Changing field types may require updating existing values to match the new type's validation rules

  • Deleting a custom field will remove all associated data for that field across all entities

  • The order of custom fields can be adjusted to control how they appear in forms and views


Best Practices

  • Use clear, descriptive labels that indicate what information should be entered

  • Mark fields as required only when the information is truly necessary for business processes

  • Use unique constraints for identifiers, reference numbers, or codes that should not be duplicated

  • Provide sensible default values to speed up data entry and ensure consistency

  • Choose the most appropriate field type for your data (e.g., use dropdowns instead of text fields when there are a limited number of valid options)

  • For dropdown and multi-select fields, order options logically (alphabetically, by frequency of use, or by business priority)

Did this answer your question?