Capture Forms
A capture form is the set of fields an operator fills in during a crossing. Every yard asks for something slightly different — a bill of lading number, a chassis condition, a trailer temperature, a driver licence — so the fields are configuration rather than a fixed screen.
Capture forms are built by an Admin in Admin Configuration.
Four Forms, Not One
Each gate has up to four separate forms:
| Form | When it appears |
|---|---|
| In | Cargo check-in — an asset arriving |
| Out | Cargo check-out — an asset leaving |
| Visitor in | A person arriving, with no asset |
| Visitor out | That person leaving |
They are independent. Entry usually captures far more than exit — on the way out you often only need the seal and a signature.
Defaults and Per-Gate Overrides
Forms resolve in two layers:
- A tenant default used by every gate.
- An optional per-gate override for a gate that genuinely differs.
Configure the default first and let every gate inherit it. Add an override only where a gate really does capture something different — a reefer gate needing a temperature reading, say. Overrides replace the default form for that direction at that gate; they do not merge field-by-field, so an override has to carry the whole field set.
Keeping one default and few overrides is what keeps the gatehouse consistent.
Validation
Fields are validated as the operator types, and a check-in cannot be submitted while a required field is empty or a value fails its rules. This is deliberate — the gate is the only moment the information is available, and a blank field discovered at month-end cannot be filled in retroactively.
Where an operator must be able to proceed anyway, the override is recorded as a
required_field_override exception against the visit rather than silently accepted, so it can be
reviewed later.
Designing a Form That Works at the Gate
The gatehouse is the worst place in the yard to fill in a long form — the driver is waiting, the weather is bad, and the operator is often on a tablet.
- Ask only for what you will use. Every field is a few seconds per truck, multiplied by every truck, every day.
- Prefer selects over free text. A dropdown is faster to complete and produces data you can actually report on. Free text does not aggregate.
- Make optional things optional. Required fields that are frequently unknowable train operators to type placeholder junk, which is worse than an empty field.
- Order the fields the way the conversation goes — paperwork, then asset condition, then seal.
- Keep exit short. If your out form is as long as your in form, look hard at what it is really for.
Changing a Form
Edits apply to future crossings. Visits already recorded keep the values captured under the form in force at the time, so history stays faithful to what was actually asked.
This means removing a field does not erase it from past visits, and adding a required field does not retroactively invalidate them.