Field Types

Deep-dive on the 14 custom field types in PrimeTask - text, textarea, number, currency, date, datetime, dropdown, multi-select, checkbox, rating, progress, URL, email, phone, relationship - with what each stores, validation, display, and supported operations.

PrimeTask supports 14 custom field types, organised by purpose. Each type stores a specific kind of data, displays it in a way that matches the data type, and supports a specific set of operations (filtering, sorting, rollup aggregation). This article is the reference catalogue - pick the type that matches what you want to track.

For the broader system, see Custom Fields Overview.

Requires Pro

Custom field types are part of the Pro tier. Manage your license from License Settings.

At a glance

GroupTypesBest for
Texttext, textarea, url, email, phoneFree-form text and contact details
Numbersnumber, currency, rating, progressQuantitative values with optional min/max
Datesdate, datetimeTime-based fields
Selectiondropdown, multi_select, checkboxPicking from defined options
RelationshipsrelationshipLinking to other entities

Operation support matrix

Different field types support different operations:

TypeFilterableSortableRollup-eligibleInline-editable
text, textarea, url, email, phoneYesYesNoNo (opens panel)
numberYesYessum, avg, min, maxYes
currencyYesYessum, avg, min, maxYes
date, datetimeYesYesNoYes
dropdownYesYesNoYes
multi_selectYesYesNoYes
checkboxYesYescount trueYes
ratingYesYessum, avg, min, maxYes
progressYesYessum, avg, min, maxYes
relationshipNoNoVia target fieldNo (opens picker)

For filter/sort details, see Task Filters & Sorting.

Pick the field type by the job

Use number or currency for calculations, selection fields for consistent categories, and relationship fields when values need to connect entities.

Text group

Text

A single-line free-form text field.

  • Stores: A string
  • Validation: Optional required flag, optional placeholder
  • Display: Plain text (truncated when narrow)
  • Use for: Name extensions, codes, identifiers, short notes
  • Example: External reference ID, Client account number

Textarea

A multi-line text field.

  • Stores: A string with line breaks preserved
  • Validation: Optional required flag, optional placeholder
  • Display: Multi-line in the field panel; truncated single-line in compact contexts (badges, list cells)
  • Use for: Notes, descriptions, longer-form details
  • Example: Bug repro steps, Engagement scope

URL

A web address.

  • Stores: A URL string
  • Validation: URL format check (must look like a valid URL)
  • Display: Clickable link that opens in your browser; the URL is shown truncated when long
  • Use for: External references, project resources, dashboards
  • Example: Repository URL, Live demo link

Email

An email address.

  • Stores: An email string
  • Validation: Email format check
  • Display: Clickable mailto: link that opens your email app
  • Use for: Contact emails on tasks, secondary emails
  • Example: Stakeholder email, Account manager email

Phone

A phone number.

  • Stores: A phone string (any format - no strict validation)
  • Validation: Optional required flag (no format check)
  • Display: Click-to-call (tel: link) on supported platforms
  • Use for: Contact phone numbers
  • Example: Office line, On-call number

Numbers group

Number

A numeric value.

  • Stores: A number (integer or decimal)
  • Validation: Optional minimum and maximum value
  • Display: Locale-formatted number
  • Rollup operations: sum, avg, min, max
  • Use for: Counts, quantities, scores, durations
  • Example: Story Points, Estimated Hours, Headcount

Currency

A monetary value with an optional currency code.

  • Stores: An object amount + currency code pair - each entity can use a different currency code
  • Validation: Optional min/max
  • Display: Symbol + amount (e.g., $1,234.56, €500.00, ₿0.05)
  • Currencies supported (14): USD, EUR, GBP, JPY, CNY, CAD, AUD, CHF, INR, KRW, PLN, BRL, MXN, BTC
  • Currency role: Optional tag - Budget, Estimate, Expense, Revenue, Payment, Value - drives Cost Summary and financial metrics
  • Rollup operations: sum, avg, min, max
  • Use for: Budgets, expenses, revenue, deal values, contracts, hourly rates
  • Example: Project Budget (Budget role), Contract Value (Value role)

For the financial tracking system, see Rollups & Financial Tracking.

Rating

A 1–5 star rating (customisable min/max).

  • Stores: A number, defaults 1–5
  • Validation: Min and max are configurable (e.g., 1–10 if you need a wider scale)
  • Display: Filled and empty stars (★☆)
  • Rollup operations: sum, avg, min, max
  • Use for: Feedback scores, priority signals, quality assessments
  • Example: Customer Satisfaction, Lead Quality

Progress

A percentage 0–100 (customisable min/max).

  • Stores: A number, defaults 0–100
  • Validation: Min and max are configurable
  • Display: Progress bar with percentage label
  • Rollup operations: sum, avg, min, max
  • Use for: Custom progress trackers (when the built-in task progress isn't enough)
  • Example: Documentation Completion, Migration Progress

Dates group

Date

A calendar date.

  • Stores: An ISO date string (no time)
  • Validation: Optional required flag
  • Display: Locale-formatted date (respects your Date & Time settings)
  • Use for: Single-day events, deadlines, anniversaries
  • Example: Contract Sign Date, Renewal Date

Datetime

A date and time.

  • Stores: An ISO datetime string
  • Validation: Optional required flag
  • Display: Locale-formatted date + time
  • Use for: Scheduled events, timestamps, appointment slots
  • Example: Demo Slot, Client Meeting Time

Selection group

Dropdown

A single value chosen from a defined list.

  • Stores: The chosen option's ID
  • Validation: Options are required at field creation; the value must be one of them
  • Options: Each option has an ID, label, colour, and order
  • Colours available: 18 colours (slate, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose)
  • Display: A coloured badge with the option's label
  • Use for: Status, severity, category, tier
  • Example: Severity (Critical / High / Medium / Low), Sprint (Sprint 1 / Sprint 2 / Sprint 3)

Multi-Select

Multiple values from a defined list.

  • Stores: An array of option IDs
  • Validation: Minimum 0 selections (not required by default)
  • Options: Same structure as Dropdown - id, label, colour, order
  • Display: Multiple coloured badges side by side
  • Use for: Tags, categories, channels, audiences
  • Example: Tech Stack (React / Node / Postgres), Channels (Email / Slack / SMS)

Checkbox

A boolean toggle.

  • Stores: true or false
  • Validation: Optional required flag
  • Display: A checkmark or empty box
  • Rollup operations: count (counts the number of true values across linked entities)
  • Use for: Yes/no flags, completion markers, confirmations
  • Example: Approved, Sent, Reviewed

Relationships

Relationship

Link to one or more other entities - tasks, projects, contacts, or companies.

Relationship fields unlock connections

Use relationship fields when tasks, projects, contacts, or companies need to point to each other.

  • Stores: An array of entity IDs (or a single ID for single-link)
  • Configuration:

- Target type - one of any, task, project, contact, company - Allow multiple - single-link or multi-link - Direction - directional (one-way) or bidirectional (reverse links automatic) - Rollup config - optional - aggregate a field from all linked entities (sum, avg, min, max, count)

  • Display: Entity badges with name, avatar/logo, and (for tasks) status colour dot
  • Use for: Linking related work, picking team members, linking to a client
  • Examples: Linked Tasks, Client Company (single link), Tech Reviewers (multi-link), Linked Contractors (multi-link with rollup of Hourly Rate)

For the relationship system in depth (bidirectional sync, backlinks, the Connections zone), see Relationship Fields & Connections.

For rollup aggregations on relationship fields, see Rollups & Financial Tracking.

Type-specific configuration options

Some types have additional configuration options on the Field Editor:

Field type is set at creation

Choose the field type carefully. If the purpose changes later, create a new field with the right type.

OptionApplies to
Min / Max valuenumber, currency, rating, progress
Currency codecurrency
Currency rolecurrency
Options (id/label/colour/order)dropdown, multi_select
Placeholder texttext, textarea, url, email, phone
Default valuemost types (sets the initial value for new entities)
Relationship targetrelationship
Allow multiplerelationship
Directionrelationship
Rollup configrelationship

Things worth knowing

Field type is immutable after creation

You can change a field's name, options, visibility, scope, and most other settings at any time - but not its type. Once you create a Number field, it stays a Number field. To change a type, delete and recreate the field (you'll lose existing values on entities).

Currency stores both amount and currency code per entity

Unlike other field types, Currency stores a amount + currency code pair. This lets each entity use a different currency for the same field. Useful for multi-currency portfolios - Project A's Budget might be in USD, Project B's in EUR.

Dropdown and Multi-Select options have IDs, not just labels

When you remove an option from a Dropdown's options list, entities that had the removed option will silently ignore it (the orphaned ID stays in their data but doesn't render). To clean up, manually clear those entities' values. Renaming a label doesn't break anything since the ID stays the same.

Checkbox rollups count true values

When you put a rollup on a relationship field that targets a Checkbox field, the operation Count counts the number of true values across linked entities. Useful for "How many tasks are flagged as Approved?"

Use checkbox rollups for approvals

Checkbox fields are useful when a linked set needs a simple count of approved, done, or selected items.

Min/Max isn't enforced strictly during edit

When you set a Min/Max on a number-style field, the editor warns if your value falls outside the range - but the data still saves. This is intentional so existing data doesn't break when you change the range later.

URL, Email, and Phone get clickable display

These three field types render as clickable links with the appropriate protocol - https:// opens in your browser, mailto: opens your email app, tel: initiates a call (on supported platforms). The validation only checks format; it doesn't reach the URL/email to test if it's live.

Relationship fields don't appear in standard sort or filter

Relationship fields can be filtered by "is set / is not set" but not by individual linked entities (use the Connections zone or the relationship picker for that). Sorting by a relationship field isn't supported.

Rating and Progress are special number types

Rating and Progress are essentially numeric fields with custom display. Internally they store numbers - you can sort, filter, and roll them up like any number. The display (stars / progress bar) is what makes them feel different.

Each field has space for an optional description

Use the description to remind your team what the field is for and how to fill it. Descriptions show as help text below the field on edit forms.

Common questions

"Can I have a number field with decimals?"

Yes - Number accepts integer and decimal values. The Min/Max and display format respect locale settings.

"How many options can a Dropdown have?"

There's no hard cap, but practically you'll want fewer than ~50 to keep the picker usable. For long lists (countries, industries), consider using a multi-select with searchable options.

"Why doesn't my URL field validate before saving?"

URL validation only checks the format ("looks like a URL") - it doesn't reach out to verify the URL exists or is reachable. Mistyped URLs save successfully but fail when clicked.

"Can I use a Phone field as a number?"

No - Phone is a string field. PrimeTask doesn't validate or normalise the format, so any text saves. Use Number for actual numeric values.

"What's the difference between Date and Datetime?"

Date stores just the calendar day. Datetime adds a specific time of day. Use Datetime when the time matters (meetings, scheduled calls); use Date for day-only events (birthdays, deadlines without specific times).

"Can I roll up a Text field?"

No - text-type fields aren't rollup-eligible. Only numeric types (number, currency, rating, progress) and Checkbox (count of trues) support rollups.

"Can a relationship field point to multiple entity types?"

Yes - set the target type to any and the relationship picker lets you choose tasks, projects, contacts, or companies.

"How does Bidirectional differ from Directional?"

A directional relationship is one-way - A links to B, but B doesn't know about A. A bidirectional relationship maintains backlinks automatically - A links to B, and B's Connections zone shows A as an incoming link. See Relationship Fields & Connections.

"What happens to existing values when I change a field's options?"

Adding new options is safe - existing values stay. Removing options leaves orphaned IDs in entity data (those entities show no option). Renaming options updates the display label everywhere immediately.

Where to go next

If you want to…Read this
Pick a template instead of building from scratchField Templates
Set up relationship fields with rollupsRelationship Fields & Connections
Use rollup aggregations and currency rolesRollups & Financial Tracking
Control where each field shows upField Visibility & Tabs
Filter and sort by custom field valuesTask Filters & Sorting
Configure fields from SettingsCategory Management Settings
Return to the Custom Fields hubCustom Fields Overview

Related Articles