Steps
Adding a step
In the app builder's Stepspanel, pick a published form for the app's record type from the dropdown and click Add step. Only forms that belong to this record type (or belong to none) are offered — the server will not accept any other kind, so there is nothing to pick that would not work. An app holds at most 30 steps.
The first step you add should be the form that actually registersthe record — the one that says “this is a new school” or “this is a new household”. Add that one first and it defaults to Filled once automatically; every step after it defaults to Repeatable, allowed 0–20 responses, and marked optional — sensible starting values you can change per step. If an app ends up with steps but none of them registers the record, a warning appears: there would be no way for a respondent to actually start a new one.
Reorder steps with the up/down arrows on each row — that order isthe session, the same order a respondent works through them in. Every change here, including reordering, saves itself immediately; there is no separate “save steps” button; only the app's own name and dashboard cards need the page's Save button.
Step title and instructions
Open a step (the ⚙ icon, or click the row) to configure it. Step title is what a respondent actually reads as the section heading mid-session, so it is worth making it friendlier than whatever the underlying form happens to be called internally. Instructionsis optional free text shown above the step's questions — a line explaining what to do before they start answering.
How many times a step can be filled
| Mode | What it means, concretely |
|---|---|
| Filled once | Filled exactly once per session — the respondent-details block of a monitoring visit, say. There is nothing to add or remove. |
| Repeatable | Filled any number of times, with Add and Remove controls next to it — every school visited on a round, every child in a household, every training session delivered that quarter. |
Household details
RegistersFilled onceOne per session — nothing to add or remove.
Children in this household
AttachesRepeatableOne entry per child. Add as many as the household actually has.
Counted per: what a repeatable step's number actually counts
A repeatable step's minimum and maximum (below) need to know what they are counting — this session's sitting, or the record's whole history. Counted per makes that explicit:
| Counted per | What it means |
|---|---|
| Sitting | Resets each time the app is opened — a fresh count for this visit only, regardless of how many times this record has been visited before. |
| Record | Counts across the record's whole history — every entry ever filed against it, in every past sitting, all added together. |
| Record, per cycle | Counts fresh each reporting cycle — resets when a new window opens, even though it is still the same record. See The reporting cycle in The app builder. |
How many entries: minimum and maximum
A repeatable step also takes a minimum and a maximum, up to 100 either way. A minimum of one means the whole session cannot be submitted without at least one entry filled in; a maximum simply caps it. Leave the maximum blank for no upper limit.
Steps that do not always apply
Turn on Optional step and a respondent can leave the whole step empty — useful when something like an issue log genuinely does not apply to every visit. This is different from the minimum above: a step can have a minimum of one entry andbe optional at the same time, which means “if you fill this in at all, give at least one — but you may skip it entirely.” Give it a conditioninstead, and it only appears when an earlier answer calls for it — a follow-up block that only shows up once the first answer in the session was “yes”, the same way a paper form might say “if yes, continue to Section B”.
Site issue log
AttachesRepeatableOptionalSkipped entirely unless the visit actually turned up an issue.
A step that is hidden by its condition is neither validated nor submitted — exactly like conditional logic on a plain form, nobody can be blocked by a question they were never even shown.
Dating an entry: when did this actually happen
For a step counted per Record or Record, per cycle, Date this happenedlets you point at one of the step's own Date questions — the record's timeline (see Records and timeline) then orders entries by that real-world date instead of by when they were typed up. Leave it set to When it was submitted if the step has no date question of its own, or if the submission time is close enough to be the same thing — filling in the respondent-details block within one sitting, for example.
No duplicate answers for
On a repeatable step, pick one or more of the step's own questions here to block two entries from sharing the same answer on them — a household's “Children in this household” step keyed on “Child name” refuses a second entry for a name already recorded, catching an accidental duplicate right in the field rather than leaving it for someone to spot later in the export.
Everything is checked together, not step by step
Copy from last time
For a step that is filled again and again against the same record — a monthly check, a follow-up visit — you can turn on Copy from last timein the step's settings. A worker adding the next entry then sees a button that fills it with the previous answers, so they only change what has moved.
It is opt-in per step because answers that are copied without being re-checked are a data-quality risk, and it leaves out what must not be copied: dates and times, photos and other files, signatures, locations and scans, and the step's dating question and any No duplicate answers for fields. The worker still reviews every answer before submitting. It is offered in the ImpactLens Appand on follow-ups, not on a child's first registration, which has no “last time”.
Leaving and coming back: drafts
With Allow drafts turned on, a session can be left partway through and picked up later — the difference between a visit that gets interrupted by a phone call or a patchy signal, and one that has to be started over from nothing. With it off, a session has to be completed in one sitting, start to finish.
A draft nobody has touched for 30 days is marked abandoned automatically, so old half-written reports do not pile up looking as if they could still be finished.
Windows: tying a step to a reporting period
A window is a reporting period — a quarter, a term, a campaign. Once an app has windows configured, and none happens to be open right now, it tells a visitor plainly that they are between cycles, rather than quietly accepting data that would not belong to any period at all. Every session gets stamped with the window it was collected in, which is exactly what makes an honest quarter-on-quarter comparison possible later — nobody has to guess which entries belong to which reporting period after the fact.
Windows can also repeat automatically on a schedule instead of being set by hand each time, and a field worker can file a late report into a window that has just closed. See The reporting cycle in The app builder for the full settings.
Layout applies to the whole app, not one step at a time
The Design → Layout setting — stacked, or two columns on a wide screen — applies to every step at once, deliberately. A form that switches from one column to two halfway through a session would read as something having gone wrong, not as a design choice. Both layouts collapse to a single column on a phone regardless.