Core Concepts

Four objects account for almost everything in CheckFlow. Understanding how they nest — and which one holds the data — makes the rest of the documentation straightforward.

The Model

TEMPLATE ── the blueprint, written once
│ contains
TASK ── a completable step (a HEADING is a divider, not a task)
│ contains
CONTROL ── content the reader sees, or an input that captures an answer
── run the template ──▶
CHECKLIST ── one instance of the template
│ contains a copy of every task and control,
│ plus the answers people give
THE RECORD of one run of your process

Read it in one sentence: a template contains tasks, tasks contain controls, and running a template produces a checklist that holds the answers.

Template and Checklist

A template is the blueprint. You write it once and it defines what every run will look like: the tasks, their content, who they are assigned to, when they are due, and which rules govern them.

A checklist is one run of that template. Create an Invoice Approval template once, then run a checklist each time an invoice needs approving.

TemplateChecklist
How manyOne per processOne per run
HoldsTasks, content, behaviourA copy of all of that, plus the answers
Changing it affectsEvery checklist created afterwardsOnly that checklist
VersionedYes, on each saveNo

The rule to remember: changing a template does not reach back into checklists that already exist. That is deliberate — a completed checklist is a record of what happened at the time, and editing the template must not rewrite history. See Template Versioning.

Task and Heading

A task is one completable step. It has a checkbox and a status, and it can carry a due date, assignees and tags.

A heading looks similar in the task list but has no checkbox. It is a read-only divider for grouping a long list into sections. It cannot be completed, assigned or reported on.

Task status is not just complete or incomplete. A task can also be Not Applicable — skipped deliberately — or halted, meaning blocked until an earlier task is done, or hidden by a conditional logic rule.

Controls

Everything inside a task is a control, and there are two kinds.

Content controlsInput controls
PurposeShow informationCapture an answer
Editable by the readerNoYes
Can block task completionNoYes, if marked required
ExamplesText, Image, Video, File, Mail-To, Embed, SeparatorShort Text, Dropdown, Date & Time, Members, File Upload, Table

Content controls are written once in the template and appear unchanged in every checklist. Input controls are empty in the template and filled in during the run — which is why the answers live in the checklist rather than the template.

See Control Types for the full capability matrix.

Where the Answers Live

This is worth stating on its own, because it explains a lot of otherwise surprising behaviour.

Answers belong to the checklist. The template holds the questions; the checklist holds the answers. So:

  • Editing a template never changes an answer somebody already gave.
  • Deleting a checklist destroys its answers permanently — there is no copy in the template. See Managing Checklists.
  • Reporting on answers means reporting across checklists, which is why Reports is organised by checklist rather than by template.

What Sits Around the Model

Once the four core objects make sense, everything else attaches to one of them:

FeatureAttaches toWhat it does
Conditional logicTemplateShows and hides tasks and controls based on an answer
Halt tasksTaskBlocks later tasks until this one is complete
ParametersTemplateValues supplied when the checklist is created
Dynamic valuesControlFills one control from another, or from global data
Data SetsControlSupplies a control's options from managed reference data
TagsChecklist, task, library itemCross-cutting labels for finding related things
SchedulesTemplateCreates checklists automatically on a recurrence
PermissionsUserControls who can reach each of the above

Related Pages