Manage inventory fields

Published

May 21, 2026

Manage the fields that appear on records in your inventory across your organization’s record types. Choose from an array of field types with different properties and use cases.

Prerequisites

Inventory field types

Aggregation
Automatically compute a read-only value from downstream artifacts2 linked to this record.
  1. Select the type of artifacts to aggregate from.3

  2. Select an aggregation function:4

    • COUNT - Count matching entities — Count the number of matching artifacts for that type.
    • MIN - Earliest/minimum value — Return the least recent value from a selected Date type artifact field for that type.
    • MAX - Latest/maximum value — Return the most recent value from a selected Date type artifact field for that type.
  3. (Optional) Click Add Rule under filters to narrow which artifacts are included in the aggregation.

4 For MIN or MAX, also select the Date type artifact field to aggregate on.

Open Validation Issue count

For an aggregation field that returns a count of open Validation Issues on the related record:

  • artifacts — Validation Issue
  • aggregation function — COUNT - Count matching entities
  • filters — Status IN open
Earliest logged Model Limitation

For an aggregation field that returns the earliest date a Model Limitation was first logged:

  • artifacts — Model Limitation
  • aggregation function — MIN - Earliest/minimum value
  • artifact field — Created At
Most recent Policy Exception

For an aggregation field that returns the most recent date a Policy Exception was updated:

  • artifacts — Policy Exception
  • aggregation function — MAX - Latest/maximum value
  • artifact field — Updated At
Attachments
Upload supporting files for your record.5 Files must be less than 50 MB each in size.
Calculation
Define a formula(params) function that reads field values from the params dictionary and returns a read-only value. Formulas are written in Starlark6, a small, sandboxed scripting language with a Python-style syntax and a set of built-in helper functions for working with dates, numbers, and lists.
NoneA note on calculated fields

​ValidMind runs calculated field formulas on the Starlark formula engine. Formulas authored on earlier releases were written in Python and have been migrated to Starlark automatically. When creating or editing formulas, you now must use the Starlark syntax.

Available helpers

Reference these helpers in your formulas — they cover the date, number, and list operations the engine does not expose directly:

Helper Returns Description
today() "YYYY-MM-DD" Current date as an ISO string.
safe_parse_date(value, default=None) "YYYY-MM-DD" or default Parses ISO dates/datetimes or millisecond/second epoch timestamps.
to_iso(value) "YYYY-MM-DD" or None Alias for safe_parse_date with no default.
add_days(date, n) "YYYY-MM-DD" or None Adds n days to an ISO date.
add_months(date, n) "YYYY-MM-DD" or None Adds n months to an ISO date.
days_between(a, b) int or None Days between two ISO dates (ab).
days_since(date) int or None Days from date to today.
months_between(a, b) int or None Full-month difference between two ISO dates.
get_year(date) / get_month(date) / get_day(date) int or None Components of an ISO date.
safe_int(value, default=0) int Tolerates strings and missing values.
safe_float(value, default=0.0) float Tolerates strings and missing values.
list_count(list, value) int Number of times value appears in list.
zfill(value, width) string Zero-pads value to width characters.
  1. Select from the drop-down of available record fields to allow your formula access to the field’s values.7
  2. Replace the demonstration formula with your own in the code box provided.8
  3. Click Test Calculation to open the testing area.
  4. Enter sample values in the testing area then click Test Calculation to validate your formula.

7 Fields are grouped by field type.

8 Reference fields with dictionary-style access — params["fieldKey"] — and use the available helpers for date and number work.

You have inventory fields named materiality and complexity that classify a record’s risk.

Example formula

A calculated field that returns a combined risk tier based on materiality and complexity:

def formula(params):
    if params["materiality"] == "High Risk":
        return "High Risk"
    if params["materiality"] == "Low Risk" and params["complexity"] == "High Risk":
        return "Medium Risk"
    return "Low Risk"
Checkbox
A true/false value set by a toggle.
Date
  • Date value in yyyy-mm-dd format.
  • Selection is in the current user’s timezone; other users viewing this field will see the value automatically in their timezone.
  • Set the date format for date fields under your profile.9
Date Time
  • Date value in yyyy-mm-dd, 24hr format.
  • Selection is in the current user’s timezone; other users viewing this field will see the value automatically in their timezone.
  • Set the date format for date time fields under your profile.10
Email
Text value in valid email (user@domain.com) format.
Long Text
Toggle Enable rich text formatting to create a template using the rich text editor.
Multiple Select
Click Add Option to define a list of options.
Number
Text value in valid number format. Number display (comma, fullstop, etc.) is determined by your browser’s locale. Select a number type:
  • Simple — Define the decimal places that the number should be displayed up to and any large number abbreviations.
  • Currency — Define the currency you would like the field to display in, as well as the decimal places that the number should be displayed up to and any large number abbreviations.

A screenshot showing a simple number field type

Simple number field type

A screenshot showing a currency number field type

Currency number field type
Single Line Text
Simple text value.
Single Select
Click Add Option to define a list of options.
URL
Text value in valid URL format.
User
  • Select list pre-populated with users from your User Directory.11
  • Toggle allow linking to multiple records on to allow multi-selection of users.

View, search, and filter inventory fields

  1. In the left sidebar, click Settings.

  2. Under Inventory, select Inventory Record Fields.

    Displayed in groups12 as lists are the inventory fields available to records in your organization with a quick view of:13

    • Number of workflows that field is used in14
    • The field key
    • The field type15
    • Field description
    • Whether or not the field is required when creating new records
    • Quick actions you can take on the inventory field
  3. Narrow down existing inventory fields available to your organization by searching or filtering for results:

13 
NoneMissing column headers?

Click, hold, and drag to the right to reveal additional columns.

14 This count only applies to custom fields.

Working with workflows

  1. Click Search to search by keywords within an inventory field.

  2. Select whether to search in the Title or Description.

  3. Click Search to narrow down your results by your entered keywords.

    Expand any inventory field group to see more fields.

  1. Click Filter to filter fields by any of the following criteria:

    • required on creation — Whether or not the field was set up as required during registration.
    • types — What type of field it is.
    • used in workflows — What workflows are using this field.16
    • workflow triggered by field — What workflows are initiated when this field is edited.17
    • write permissions — Which inventory record stakeholder types have permissions to edit this field.18
  2. Click Apply Filters to narrow down your results by your configured criteria.

    Expand any inventory field group to see more fields.

NoneNote that searching and filtering of fields stack.

For example, if you first search by keyword for date under Title without clearing that search, any additional filters applied will only apply to the results returned by that initial search.

Add or edit inventory fields

  1. In the left sidebar, click Settings.

  2. Under Inventory, select Inventory Record Fields.

    Here you can edit existing inventory fields, or add a new one:

To add a new inventory field, click Add Field:

  1. Inventory fields require you to enter a title (name), select a field type,19 and indicate what inventory record types20 the field is available on.

  2. Include optional information for your field:

    • Enter a custom field key.21
    • Enter a description to indicate the purpose of the field displayed on the list of fields.
    • Enter help text to provide guidance to users on how best to fill out that field.
    • Check off whether or not the field should be Required on Inventory Record registration.
    • Assign a field to a group.22
    • Assign write permissions to allow granular access to editing this field gated by inventory record stakeholder types or user roles. Leave this field blank for default permissions where only the Customer Admin role has write access.23
  3. When you are satisfied with the setup of your inventory field, click Save.

21 If left blank, a key will be automatically generated in camelCase format.

22 Ungrouped fields will be listed under No Group: Add inventory field groups

23 
NoneAll other users will have read-only access unless specified under the write permissions.

Combining different inventory field types provides a flexible way to automatically track record review schedules. This example creates fields that calculate the next review date based on approval date and validation frequency, adjusted by risk tier, and then computes the days remaining until that review.

Built-in helper functions for working with dates include:

  • today() — Today’s date as an ISO string ("YYYY-MM-DD").
  • safe_parse_date(value) — Parses ISO dates/datetimes or millisecond/second epoch timestamps into an ISO string.
  • add_months(date, n) — Adds n months to an ISO date.
  • days_between(a, b) — Returns the number of days between two ISO dates.

Calculate the next review date

Determine the next review date based on an approval date and a frequency of validation that adjusts based on the risk tier:

  1. Create an Approved Date date field.

  2. Create a Frequency of Validation string field with the following options:

  • Weekly
  • Monthly
  • Yearly
  1. Create a Risk Tier calculation field that depends on the frequency of validation:

    def formula(params):
        if params["frequencyOfValidation"] == "Weekly":
            return "Tier 1"
        elif params["frequencyOfValidation"] == "Monthly":
            return "Tier 2"
        elif params["frequencyOfValidation"] == "Yearly":
            return "Tier 3"
        else:
            return "N/A"
  2. Create a Next Review Date calculation field that depends on the Approved Date and Risk Tier fields:

    def formula(params):
        """Return the next review date based on the approved date and risk tier."""
        if params["dmApprovedDate"] == "":
            return "N/A"
    
        approved_date = safe_parse_date(params["dmApprovedDate"])
    
        review_frequency = {
            "Tier 1": 3,    # Quarterly
            "Tier 2": 6,    # Semi-annually
            "Tier 3": 12,   # Annually
        }
    
        months = review_frequency.get(params["dmRiskTier"])
        if not months:
            return "N/A"
    
        return add_months(approved_date, months)

You can now determine the next review date in workflows by making a workflow depend on Approved Date. To test, change the Approved Date after the fact and see how Next Review Date changes.

Calculate the days remaining until the next review

  1. Create a Days Remaining calculation field that depends on the Next Review Date field:

    def formula(params):
        """Return the number of days until the next review date."""
        next_review_date = params.get("nextReviewDate", "")
        if not next_review_date:
            return "Not applicable"
    
        difference = days_between(next_review_date, today())
        return "%d days remaining" % difference

You can now check the number of days remaining until the next review.

Edit Default Fields

Default Fields are fields created by default by ​ValidMind.24 To modify a default field:

24 ​ValidMind default fields:

  1. Under the Default Fields grouping, click on the inventory field you want to edit.

    Expand any inventory field group to see more fields.25

  2. Toggle the following options on or off:

    • disable field — Hide this field from all records in your inventory.26
    • show on registration — Show this field during record registration.27
    • require on registration — Require input in this field during record registration.
  3. Click Save Configuration to apply your changes.

Edit custom inventory fields

Custom inventory fields are fields created by your organization. Expand any inventory field group to see more fields.28

To edit an existing custom inventory field:

  1. Click on the custom inventory field you want to edit.

  2. Make your desired changes to your inventory field, then click Save.

    Field keys for custom inventory field can be renamed under the actions column.29

Rename custom field keys

To rename the field keys for custom inventory fields:

  1. Hover over the actions column on the far-right for the field whose key you want to rename.

  2. When the appears, click on it and select Rename Key.

  3. Enter in the new key and click Check Availability.

  4. If the key is not already in use, you’ll be presented with a list of dependencies to review.

    Verify that these dependencies are correct and as expected.

  5. Click Rename Key to apply your changes to the key.

    Confirm that the dependencies updated are corrected and as expected.

Add inventory field groups

To group inventory fields, first create an inventory field group:

  1. In the left sidebar, click Settings.

  2. Under Inventory, select Inventory Record Fields.

  3. Click Add Group and enter in a name and a optional description for the group.

  4. Click Create Group to add the new group.

  5. Assign the desired fields to the group.30

Delete inventory fields

ImportantInventory field deletion is permanent.

Deleting an inventory field will remove it from all records using that field, even if the field has been populated.

  1. In the left sidebar, click Settings.

  2. Under Inventory, select Inventory Record Fields.

  3. Hover over the field you would like to delete.

  4. When the appears under the Actions column, click on it and select Delete Field.

  5. Click Yes, Delete Field to confirm permanent deletion.