Run Controls
This page covers intent settings that apply during the run lifecycle — from creation through step execution to intent updates and inventory installation.
Required at Run Create
Setting key: required_at_run_create
What it does
Required at Run Create forces users to specify an intent designation when creating a run. Without this setting, intent is optional at run creation.
This ensures that every run starts with a clear quality designation, which downstream settings like Run Intent Side Effect can then use to automatically stamp intent onto inventory.
You can apply this requirement to all runs or scope it to specific procedure types.
When it runs
At run creation time — when a user submits the new run form.
Configuration options
enabled
true / false
Turns the requirement on or off. Default: false
procedure_types
Procedure type identifiers
Limits enforcement to the listed procedure types. Leave empty to apply to all run types.
Notes:
When
procedure_typescontains specific values, only runs of those procedure types require intent. All other run types remain optional.
Example scenario
Your organization only requires intent on Build procedure types. Set enabled: true and procedure_types: ["build"]. Users creating a Build run must select an intent. A user creating an Inspection run will not be required to select an intent.
Required at Run Step Start
Setting key: required_at_run_step_start
What it does
Required at Run Step Start prevents a technician from starting a run step unless the run has an intent designation set. If the run's intent field is empty, the step start action is blocked until intent is assigned.
This setting is useful when intent might not be required at run creation but must be confirmed before any active work begins. It serves as a second enforcement point — catching cases where a run slipped through creation without intent.
When it runs
When a user attempts to start a run step — the check occurs at the moment the step start action is triggered.
Configuration options
enabled
true / false
Turns the requirement on or off. Default: false
procedure_types
Procedure type identifiers
Limits enforcement to the listed procedure types. Leave empty to apply to all run types.
Notes:
This setting can be used in combination with
required_at_run_createfor layered enforcement, or independently as a fallback check.
Example scenario
Your organization creates runs from work orders that may be auto-generated, so intent is not always set at creation. You still want to ensure intent is confirmed before a technician begins working. Enable required_at_run_step_start so that when a technician tries to start Step 1 of a run, ION checks for intent. If it is missing, the technician sees a prompt to set it before proceeding.
Required on Run Intent Update
Setting key: required_on_run_intent_update
What it does
Required on Run Intent Update prevents users from clearing or unsetting the intent on a run after it has been set. Once intent is assigned to a run, it cannot be removed — it can only be changed to a different intent value.
This ensures that runs always carry a valid intent designation once one has been applied. Without this setting, a user could inadvertently (or intentionally) remove intent from a run mid-execution, losing the quality designation for that work order.
When it runs
When a user updates the intent field on a run — the check fires at the point of saving the update.
Configuration options
enabled
true / false
Turns the requirement on or off. Default: false
procedure_types
Procedure type identifiers
Limits enforcement to the listed procedure types. Leave empty to apply to all run types.
Notes:
This setting only blocks clearing intent. Changing from one intent value to another is still permitted.
When
procedure_typesis empty andenabledistrue, the restriction applies to all runs.
Example scenario
A Flight-grade run is in progress. A user accidentally attempts to clear the intent designation while editing the run details. With required_on_run_intent_update enabled, the update is rejected and the run retains its Flight designation. The user can change it to a different intent (e.g., Qualification) but cannot leave it blank.
Run Intent Side Effect
Setting key: run_intent_side_effect
What it does
Run Intent Side Effect automatically propagates the run's intent designation to the run's inventory — the inventory record that represents the unit being built by the run.
When a run has intent set, this setting ensures the assembly inventory it produces carries that same intent, without requiring a separate manual update.
When it runs
When intent is updated on a run — the run's assembly inventory is updated to match.
Configuration options
enabled
true / false
Turns the side effect on or off. Default: false
downgrade_inventory_on_mismatch
true / false
When the run's intent is lower quality than the assembly inventory's intent, downgrade the inventory to match the run. Default: true
Mismatch behavior
Assembly inventory has no intent
Run intent is copied to the inventory.
Run intent is higher quality than inventory intent
Blocked — an error is raised. You cannot assign a higher-quality intent to the run than the assembly inventory already has.
Run intent is lower quality than inventory intent
Controlled by downgrade_inventory_on_mismatch (see below).
downgrade_inventory_on_mismatch behavior (applies only when run intent is lower quality than inventory intent)
true
The assembly inventory is downgraded to match the run's lower intent.
false
The assembly inventory intent is left unchanged. No side effect is applied.
Example scenarios
Scenario 1 — Run creates new assembly inventory
A Development run is created to build a prototype unit. At run creation, ION creates a new assembly inventory record for that unit with no intent set. With run_intent_side_effect enabled, the new inventory is immediately stamped with Development intent. No manual step is needed.
Scenario 2 — Existing Flight-grade inventory is assigned to a Development run
A Development run is started, but the assembly inventory associated with the run was previously designated Flight. The run's intent is lower quality than the inventory's intent, so the block does not apply. Instead, downgrade_inventory_on_mismatch controls the outcome:
With
downgrade_inventory_on_mismatch: true: the assembly inventory is downgraded from Flight to Development to match the run.With
downgrade_inventory_on_mismatch: false: the assembly inventory retains its Flight designation. No side effect is applied.
Scenario 3 — Blocked attempting to set run intent above inventory intent
A Development assembly inventory is on the run and a user attempts to set the run's intent to Flight. Because Flight is a higher quality tier than Development, this is blocked with a validation error. The run's intent cannot exceed the quality of its assembly inventory.
Last updated
Was this helpful?

