Field Types

In Seal we have many different field types, allowing all sorts of data to be stored. Fields can be added to any entity via the Fields tab in the right hand sidebar. Screenshot 2025-08-28 at 19.28.13.png
FieldNotes
TextSingle or multi-line. Multi-line text fields support markdown text formatting.
Learn about how to use markdown here
NumberSimple number input
CheckboxBoolean
DateDate input, no timezone
Time & dateTime & date input, option to add timezone information
SelectCreate custom options for users to select between. Can be configured to allow users to select one or be able to select multiple.
UserSelect a User from Seal. Can be configured to allow users to select one or multiple.
ReferenceReference an entity within Seal. Data can be looked up through this link. Can be configured to allow users to select one or multiple entities.
FormulaEnable you to perform calculations across an entity’s fields. Learn more below.
SubmissionAllows you to create dependent entities from a template or type. Learn more below.
ScriptLink to a Script entity, then that script can be run in the context of the entity you are in.
JSONStores JSON as a string.
Saved searchView a search query as a table within the entity. Learn more below.

Formatting Fields

Formatting options available to a field depend on the type of data within them. Currently, formatting is available for the following data types:
  • Number
  • Time & date
These options are available in formula fields that return supported data types too!

Text

Text fields can be Multi-line to enable longer paragraphs of content. This can be formatted using markdown. See table below for markdown varieties.
SymbolDescription
[ ]Checkbox
#, ##, ###Heading 1, heading 2, heading 3 * Note that headers can be in lists, and indented as well.
``Codeblock
* or _Italics
** or __Bold
>Quoted text
-Bulletpoints
1.Numbered list
~~Strikethrough
You can also adjust indentation, for better organisation.

Number

For Number fields, the following formatting options are available:
  • 0.X: Displays the original number without formatting.
  • 0.00: Formats the number to two decimal places.
  • 0.000: Formats the number to three decimal places.
  • SCI: Displays the number in scientific notation.
  • SCI3: Scientific notation with the coefficient rounded to three significant figures.
  • Rounded: Rounds the number to the nearest integer

Date / Time & Date fields

Fields can be configured to customize both the format and the timezone. The same configuration can also be applied to formula fields that return a Datetime value. You can also set a Default Datetime format for your whole org in the Settings page.

Adjusting Format

Users can customize Date/Time & date formats using our presets or by creating custom formats. We support date-fns and Unicode Technical Standard #35 standards. Here are a couple of commonly used format patterns to get you started:
UnitPatternResult Examples
Calendar yeary44, 1, 1900, 2017
yy44, 01, 00, 17
yyyy0044, 0001, 1900, 2017
MonthM1, 2, …, 12
MM01, 02, …, 12
MMMJan, Feb, …, Dec
MMMMJanuary, February, …, December
Day of monthd1, 2, …, 31
do1st, 2nd, …, 31st
dd01, 02, …, 31
AM, PMa..aaAM, PM
aaaam, pm
Hour [1-12]h1, 2, …, 11, 12
hh01, 02, …, 11, 12
Hour [0-23]H0, 1, 2, …, 23
HH00, 01, 02, …, 23
Minutem0, 1, …, 59
mm00, 01, …, 59
Format patterns are case-sensitive.For example, M stands for month, while m stands for minute. Always double-check the case when creating custom formats to ensure accuracy.

Adjusting Timezone

Time & Date fields are displayed in the user’s local timezone by default. To ensure all users see the same timezone, disable “Use user’s local timezone” and select from the dropdown list. Use the search function to quickly find your timezone. The actual timestamp remains consistent and is adjusted according to the selected timezone settings. The chosen timezone will be flagged on the date picker when filling in fields to avoid any confusion. Screen Cast 2025-06-25 at 5.28.00 PM.gif Screen Cast 2025-06-25 at 5.47.17 PM.gif

Formulas

Formula fields in Seal enable you to perform calculations across an entity’s fields. Screen Cast 2025-08-28 at 7.41.37 PM.gif Use the @ symbol in the formula input to see the fields and properties (eg. CREATED_BY) available to use in the formula expression. Formula expressions can include the following fields:
  • Number
  • Text
  • Select
  • Time & date
  • Reference
  • Checkbox
  • Formula
What can I compute with formula fields?Seal’s formula fields cover a wide range of functionality, from simple calculations to complex computing.The underlying library handling the calculations is Math.js. See the table below for examples of common operators and how to use them in your formulas.For a full list, please refer to the Math.js library, or speak to our team.
Formula LanguageData typeDescription
+ - / *NumberAddition, subtraction, division, multiplication
==NumberEqual to
!=NumberNot equal to
< >Less than, greater than
<= >=Less than or equal to, greater than or equal to
orMixedOR statement
andMixedAND statement
notMixedNOT statement
concat( @Field1, @Field2 ) eg. concat( string( @quantity), @unit)MixedConcatenate multiple fields in a formula expression. Convert the field to a string using string() if the field types are different.
lookup( @referenceField , "Field name") orlookup( @referenceField , "Property")EntityLooking up a field in another entity via a reference field. Note that the field name you want to look up must be in quotation marks, e.g. "String". You can look up a multi-value field via a single-value reference — all values will be displayed. Screenshot 2025-08-28 at 20.01.38.png
dateAdd( @dateField, number, "unit") E.g. dateAdd( @dateField, 2, "years")DateFunction to add time periods to date fields. Supported units: 'days', 'months', 'years'
convertToDatetimeField( @datetimeField) E.g. convertToDatetimeField(@datetimeField1 - @datetimeField2)Time & DateFunction to convert a unix timestamp to a Time & date field.
formatDatetime(@datetimeField, "format string", "timezone") E.g. formatDatetime(@datetimeField, "yyyy-MM-dd HH:mm", "America/New_York") OR formatDatetime(@dateField, "format string") E.g. formatDatetime(@dateField, "MM-dd-yyyy")Time & Date, DateFunction to format a Time & date or Date field into a string. Date fields do not have the additional timezone section whereas Time & date fields must have it. The format string must adhere to the rules set out above Refer to the timezone support section below for more information about the timezone string.
? E.g. (@Field > 3 ? "Large" : "Small"Mixedif statements (conditional logic) Screenshot 2025-08-28 at 20.01.20.png
Formulas calculate in real time, so you can instantly verify the expression returns your desired result. Formulas get recomputed every time an edit is made to the entity they are on. Error messages are show in red text in the formula preview box. Screen Cast 2025-08-28 at 8.02.29 PM.gif Warning messages are shown in yellow below the preview box. Screenshot 2025-08-28 at 20.03.15.png

Timezone Support

Our platform provides flexible timezone handling by supporting three types of identifiers:
  • IANA names
  • Timezone abbreviations
  • Fixed-offset Etc/GMT codes

IANA Timezone Names

Using a standard IANA name pins a location to a specific region, the platform will automatically handle changes for Daylight Saving Time, so timestamps are always correct for that location throughout the year. For a complete list, you can visit this comprehensive list of tz database time zones.

Fixed UTC Offset Timezones

If you require a timezone with a static UTC offset that does not change during the year, you can use either a timezone abbreviation or an Etc/GMTcode .
Be aware that many abbreviations are ambiguous. While some abbreviations can be ambiguous (e.g. CST can have multiple meanings globally), our platform uses the specific UTC offsets defined in the table below. Please refer to this list to confirm which offset corresponds to each abbreviation.
The Etc/GMT format is a more explicit way to define a fixed offset. Important Note: The Etc/GMT notation uses a POSIX-style sign, which is the reverse of what is commonly expected.
  • Etc/GMT-X corresponds to UTC+X. For example, Etc/GMT-10 is 10 hours ahead of UTC.
  • Etc/GMT+X corresponds to UTC-X. For example, Etc/GMT+5 is 5 hours behind UTC.

Setting Out of Specifications

Users can set an Out-of-Specification expression on Number, Formula, Text, and Select fields, using the formula language mentioned above. The expression must resolve to a boolean true or false . Screenshot 2025-08-28 at 22.27.00.png If the expression is true, the field will be highlighted and you will see an icon warning that the value is out-of-specification. Screenshot 2025-08-28 at 22.27.48.png Add and edit the field ‘out of spec’ expression from the field three-dot-menu. Screen Cast 2025-08-28 at 10.28.41 PM.gif Use the @ symbol to see available field value suggestions. Reference the field value that you want to validate against any condition using the operators available in Seal’s formula language. Screenshot 2025-08-28 at 22.30.15.png You can compare the field value to other field values within the same entity. Screenshot 2025-08-28 at 22.30.32.png

Out-of-Spec Expression Additions

The out-of-spec (OOS) expression extends the capabilities of the standard formula language. This section outlines specific operators and techniques unique to OOS within the formula language framework.
OperatorsData TypeDescription
now()-The current date and time
@Field == true E.g. @Cell checked == trueCheckboxIf the field is checked
@Field == false E.g. @Cell checked == falseCheckboxIf the field is unchecked
@Field == null E.g. @Number == nullAnyIf the field is blank

Submission Fields

Submission is a field type that allows tables of data to be embedded in a Document or Record. This allows for more powerful and flexible units of work. Submission fields create child entities from a given template or type, the parent entities have an ownership relationship to the children. This means that:
  • Entities in the table are automatically published when the parent is published
  • If a child entity is put into draft, the parent will also go into draft and automatically point to the updated child.
When a submission field points to a type, each row can be made from a different template within that type. Screen Cast 2025-06-20 at 2.33.16 PM.gif

How to embed a Submission Table:

  1. Create a new ‘Submission’ field.
Screen Cast 2025-08-28 at 10.36.23 PM.gif
  1. Click on Configure, and choose a template or type.
Screen Cast 2025-08-28 at 10.37.34 PM.gif
  1. Adding the Submission field as a block in page content will display the table. It is possible to hide irrelevant columns by clicking on ‘Configure Table’.
Screen Cast 2025-08-28 at 10.38.13 PM.gif Submission tables can also be viewed in the search page:
  1. Add the Submission field.
  2. When a clicked, a pop out in a modal with the submission table will appear.
Screen Cast 2025-08-28 at 10.39.10 PM.gif

Adding columns to Submission Fields

You can add columns directly into a Submission table. Doing so will add that as a field to all existing and future child instances in the submission field. You are also able to configure these fields directly from the column in the table. Adding these columns to the table does not affect or add them to the child template used in the submission field, only the instances made within that particular field. In templates, you will be able to add placeholder columns. These, similarly to placeholder rows, will become real when the template is instantiated. Screen Cast 2025-08-28 at 10.40.14 PM.gif
Note:
  • This cannot be done if any entities in the submission are non-editable (published or in review)
  • This cannot be done if the Submission field points to a type or an ‘active version’ template

Saved Search Fields

Saved search fields allow you to render search results within an entity with page content. You may use the same filter language as in the normal search page. This query then gets saved on publish. The search results will remain live even after your entity is published.

Creating a Saved Search Field

Screen Cast 2025-08-28 at 10.46.06 PM.gif

Filtering by a Reference Field

It is possible to create a filter to only show entities that reference the entity you are on. This screenshot shows a saved search field filtered to show entities that reference the containing entity. Screenshot 2025-08-28 at 22.48.15.png
  • To create a filter like this, we use the normal filtering logic for when we want to filter by a field value - following the pattern field:"Field name"="Field value"
  • For reference fields, the pattern goes field:Reference=ref(entity_id,version)
    • The version after the comma is optional, if you include it, it will show you all entities that reference that entity at that specific version.
    • If you do not include the version, it will show you all entities that reference any version of the entity,
  • In saved search config, you can easily find the containing entity’s id by using @ID
    • In the example above therefore, the config is: field:"Part number"=ref(@ID)
    • This returns a list of all entities that have a reference field called “Part number” that references this specific entity: “Part 12345”
    • Note there is no version included, as the table is showing entities that reference all versions of the part.