Skip to content
EntryLayer Operational data entry for Snowflake

Workflow States

EntryLayer workflows define the review lifecycle for submissions. A workflow is made of states, categories, allowed transitions, labels, colors, and project-level behavior such as reopen/send-back support.

Use this page when configuring review states through the Workflow Editor, composing UPDATE_WORKFLOW, applying templates, or explaining why a submission is editable or read-only.

CategoryPurposeTypical behavior
editableWork can be drafted or correctedFields can be edited when permissions allow it.
in_reviewWork is submitted or under reviewFields are usually read-only for submitters.
approvedWork has completed approvalTerminal or near-terminal state.
rejectedWork needs correction or has failed reviewMay send work back to editable state.

State labels are configurable. Categories are the stable behavior anchors that the app uses when deciding editability and transition style.

Persisted submissions store workflow state metadata. Source-connected projects can also show a virtual not_started row state.

State kindDescription
Persisted workflow stateA saved EntryLayer submission with a configured workflow state id/category.
not_started virtual stateA source-backed row visible in the project queue before local workflow tracking has started.

not_started is not the same as a persisted submission status. Once a source-backed row is materialized into a submission, normal workflow behavior begins.

{
"states": [
{"label": "Draft", "category": "editable", "order_in_category": 0},
{"label": "Submitted", "category": "in_review", "order_in_category": 0},
{"label": "Approved", "category": "approved", "order_in_category": 0},
{"label": "Rejected", "category": "rejected", "order_in_category": 0}
],
"within_category_modes": {},
"allow_send_back": true,
"allow_reopen": true
}

Apply a replacement workflow only after reading the existing configuration:

CALL ENTRYLAYER.API.GET_WORKFLOW('proj_123');
CALL ENTRYLAYER.API.UPDATE_WORKFLOW(
'proj_123',
PARSE_JSON('{"states":[{"label":"Draft","category":"editable","order_in_category":0}],"within_category_modes":{},"allow_send_back":true,"allow_reopen":true}')
);
CommandUse it forGuardrail
LIST_WORKFLOW_TEMPLATESFind built-in or reusable workflow templatesRead-only and safe to retry.
APPLY_WORKFLOW_TEMPLATEReplace a project workflow from a templateBackend may reject unsafe changes when submissions exist.
CLONE_WORKFLOWCopy workflow config from another projectCopies workflow only, not layout, fields, access, or submissions.

Workflow changes are project metadata, not form draft content. Form design changes still follow the draft/publish lifecycle described in Form Design Model.

When workflow and form design are changed together, use this sequence:

  1. GET_PROJECT_DRAFT
  2. Apply form design changes.
  3. GET_WORKFLOW
  4. Apply workflow changes.
  5. PUBLISH_PROJECT_DRAFT for user-visible form changes.
  6. Verify with GET_PROJECT_LAYOUT and GET_WORKFLOW.

Workflow transitions are part of the audit trail and include the actor, old state, new state, timestamp, and optional comment. Admin inspection can use App Public Views for workflow state metadata and SQL procedures for project-level workflow configuration.

  • GET_WORKFLOW
  • UPDATE_WORKFLOW
  • LIST_WORKFLOW_TEMPLATES
  • APPLY_WORKFLOW_TEMPLATE
  • CLONE_WORKFLOW
  • APP_PUBLIC.WORKFLOW_STATES