Checklist Field Updates

Checklist Field Updates

Field Updates allow checklist templates to write data back into the system. When a user fills out a checklist form, Field Updates can automatically set values on Assets, CMLs, Projects, Findings, Measurements, and other records — eliminating manual data entry.

How It Works

  1. A template author adds field_name and field_action to a line item in a checklist template
  2. When a user fills in that line, the system extracts the value from the checklist results
  3. A FieldUpdate record is created that maps the user's input to the destination field
  4. Depending on the field, the update is either applied immediately or held until the project is published

Quick Example

A checklist template line that updates a CML's access method:

ColumnValue
Keycml_access
LabelHow is this CML accessed?
Line Typechoice
OptionsLadder, Man Lift, Scaffold, Ground Level
Field Namechecklist.context.cml.access
Field Actionset
Field Sourcevalue

When the inspector selects "Scaffold" in the checklist, the CML's access field is updated to "Scaffold".

Template Line Configuration

To make a checklist line trigger a Field Update, add these columns to the template:

ColumnRequiredDescription
field_nameYesThe destination path (see Available Field Updates below)
field_actionYesset (update a value) or create (create a new record)
field_sourceNoWhich part of the user's input to use. Default: value. Options: value, notes, * (all sub-fields)
field_contextNoAdditional context string. Default: --

Extra Arguments (context_*)

You can pass hardcoded values to Field Updates by prefixing template line extra arguments with context_:

context_location_code: XYZ
context_units: mm

These values are carried along with the Field Update and made available to the handler, even though the user didn't enter them.

Available Field Updates

Checklist Fields (Applied Immediately)

These updates are applied every time the checklist is saved.

Field NameDescriptionTypical Line Type
checklist.asset_idSet which asset the checklist is associated withchoice-site
checklist.project_idSet which project the checklist is associated withchoice-project
checklist.summarySet the checklist summary texttextarea
checklist.work_done_onSet the work completion datedate
checklist.flags.*Set checklist flag values (custom key after flags.)choice, text

Project Fields (Applied Immediately)

Field NameDescriptionTypical Line Type
checklist.project.descriptionSet the project descriptiontextarea
checklist.project.prioritySet the project prioritytext, choice
checklist.project.work_done_onSet the project work done datedate
checklist.project.startSet the project start datedate
checklist.project.endSet the project end datedate
checklist.project.labels.*Set project label values (custom key after labels.)choice, text

Follow-Up Tasks (Applied Immediately)

Field NameDescriptionTypical Line Type
checklist.follow_up.requiredCreate a follow-up task on the checklistchoice
checklist.follow_up.completedMark a follow-up task as completedchoice

Inspection Media (Applied Immediately)

Field NameDescriptionTypical Line Type
checklist.context.media.nameSet the media file nametext
checklist.context.media.descriptionSet the media descriptiontext
checklist.context.media.componentSet the media component locationtext, choice
checklist.context.media.location_zoneSet the media location zonetext, choice
checklist.context.media.location_codeSet the media location codetext, choice
checklist.context.media.ignoreFlag media to be ignoredchoice

CML Fields (Applied on Publish)

These updates are held until the project is published. This ensures CML metadata is only updated after the project has been reviewed and approved.

Field NameDescriptionTypical Line Type
checklist.context.cml.nameSet the CML nametext
checklist.context.cml.descriptionSet the CML descriptiontextarea
checklist.context.cml.accessSet the CML access methodchoice, text
checklist.context.cml.componentSet the CML componentchoice, text
checklist.context.cml.location_zoneSet the CML location zonechoice, text
checklist.context.cml.location_codeSet the CML location codechoice, text
checklist.context.cml.geo_pointSet the CML geographic coordinatescollect-position
checklist.context.cml.installed_onSet the CML installation datedate

Asset Fields (Applied on Publish)

These updates are held until the project is published, same as CML fields.

Field NameDescriptionTypical Line Type
checklist.context.asset.nameSet the asset nametext
checklist.context.asset.descriptionSet the asset descriptiontextarea
checklist.context.asset.serial_numberSet the asset serial numbertext
checklist.context.asset.manufacturerSet the asset manufacturertext
checklist.context.asset.modelSet the asset modeltext
checklist.context.asset.locationSet the asset locationtext
checklist.context.asset.geo_pointSet the asset geographic coordinatescollect-position
checklist.context.asset.installed_onSet the asset installation datedate
checklist.context.asset.manufactured_onSet the asset manufacture datedate

Creating Findings (Applied Immediately)

Field NameDescriptionTypical Line Type
checklist.project.defectCreate or update a single findingcollect-finding
checklist.project.defect.listCreate, update, or delete multiple findingscollect-finding-list

For collect-finding, use field_source: * to capture all sub-fields (severity, type, component, description, images, etc.) from the line.

For collect-finding-list, the system manages the full lifecycle of findings — creating new ones, updating existing ones by client_id, and removing findings that are no longer in the list.

Creating Measurements (Applied Immediately)

Field NameDescriptionTypical Line Type
checklist.project.measurementCreate a measurement on a CMLcollect-measurement
checklist.context.measurement.extras.*Set extra fields on measurements from this checklisttext, choice

Use collect-measurement inside a repeat-line-group that repeats over CMLs. See UT Checklist Measurement Collection for a full setup guide.

When Updates Are Applied

CategoryWhen AppliedExamples
ImmediateEvery time the checklist is savedChecklist fields, project fields, follow-up tasks, findings, measurements, media metadata
On PublishWhen the project status changes to PublishedCML fields, asset fields

Updates that are applied "on publish" are created as FieldUpdate records when the checklist is saved, but they are not written to the destination model until the project manager publishes the project. This provides a review gate for critical metadata changes.

Idempotency

Field Updates are safe to re-run. The system uses get_or_create to ensure only one FieldUpdate record exists per unique combination of field name, source line, and checklist. Re-saving a checklist re-applies existing Field Updates with the latest values — it does not create duplicates.

Display Fields

When you set a coded value like access, component, location_zone, location_code, severity, type, or sub_type, the system automatically populates the corresponding display field (e.g., access_display) based on the active profile. You do not need to set display fields manually.

Tips for Template Authors

  • Start simple. Begin with immediate fields like checklist.summary or checklist.project.description before moving to CML/Asset updates.
  • Use field_source: value (the default) for most cases. Only use * for collect-finding and collect-measurement which need multiple sub-fields.
  • Test with a dry run. Create a test project, fill in the checklist, and verify the destination fields are updated before rolling out to production.
  • On-publish fields need a publish step. If you configure CML or Asset field updates, remind your team that the project must be published for those changes to take effect.
  • Extra arguments are powerful. Use context_* keys to hardcode values that should always accompany the update (e.g., context_units: mm for measurements).