Use a Form in a process

The custom_form node presents a reusable Form in a User Journey. The process references the Form definition at design time, then automatically pins an exact revision when a process snapshot is saved.

Select the Form with custom_form

The parameter form_id designates the definition frm_…. The node title and description control the context presented for this interaction; the field schema comes from the selected Form.

Use this node when the same schema must be shared across several processes or evolve as an independent artifact. If the questions are computed during execution, use dynamic_form.

The custom Form node references a reusable Form and exposes collected values to the process.
The custom Form node references a reusable Form and exposes collected values to the process. Enlarge

Saving the process pins the Form revision

Form Working revision
Save processus pin fdr_… + hash
custom_form snapshot exact
Validated responses

The process selects the Form definition, then its snapshot records the exact Working revision and content hash. Executions reread this snapshot, not future Working.

When a process revision is created, Ormuz resolves the current Form Working revision and records form_revision_id, its revision number, and form_content_hash in the snapshot. The runtime then verifies that this revision still belongs to the expected Form and that its hash matches.

Changing a Form does not change existing process snapshots

Moving a Form's Working pointer affects future process snapshots that resolve it. An already-saved process revision continues to use the Form revision it pinned.

Fields become usable outputs

custom_form returns the Form identifier and submitted values after validation. The editor may also derive dynamic outputs from fields known in the schema so downstream bindings use their semantic types: email, phone, URL, integer, rate, country, currency, amount, address, date, boolean, file, or choice enum. An amount remains an integer in minor units and keeps its currency context; an address remains an object common.address that can be bound directly without reconstructing line1, postal_code or city.

The classification declared on a field continues to apply to its collected value. A sensitive or secret field therefore remains subject to data-protection.

Promoting the process requires a published dependency

A Process Release must be able to reproduce all of its versioned dependencies. If it contains a custom_form, the pinned Form revision must therefore have been promoted to a Form Release. The content hash is checked to detect any inconsistency between the process snapshot and the referenced revision.

Form Release before Process Release

If Form Working has been saved but not promoted, the process may remain editable and testable with its snapshot, but promotion to Release is blocked until the corresponding Form revision is published.