Appearance
Core concepts
Five ideas explain most of how Blok behaves. They're worth ten minutes now because every module reuses them.
Organizations
An organization is one company's Blok. All data belongs to exactly one org, and nothing crosses between them. A customer, a work order, a form submission is always this org's. When you log in you're acting inside one org, and the app never shows you another's data.
This is enforced in the database, not just the interface, so it holds for integrations and exports too.
Entities
An entity is a kind of record: customers, properties, projects, work orders, estimates, invoices, employees, subcontractors, leads.
They all behave consistently on purpose. Every entity gets a list you can filter, sort, search, save views of, and export; a detail page you can rearrange; custom fields; and an updates thread. Learning one list teaches you all of them.
Statuses
Most entities move through a lifecycle. A project goes from lead to estimating to scheduled to complete; a work order from requested to dispatched to completed.
Two things follow from statuses being configurable per organization:
- Order matters. The order you put statuses in is the lifecycle order. It drives sorting, the option order in dropdowns, and the chevron strip above a list.
- Names are yours. If you rename Assigned to Dispatched, that's what it says everywhere: lists, charts, the detail page.
Some statuses are terminal, meaning the work is over (cancelled, skipped). Terminal statuses are hidden from the default "open work" view so a list shows what still needs attention.
Custom fields
Any entity can carry custom fields you define: text, number, date, select, formula. They appear on the detail page, as list columns, in exports, and in webhook payloads, exactly like built-in fields.
Two rules keep them safe:
- Custom fields are data, never behaviour. They can't change how the app works, only what it stores.
- Changing a field's type is archive-and-recreate, not an in-place edit. That way a value captured last year still means what it meant when it was captured.
Archive vs trash
Blok almost never deletes anything outright.
- Archive takes a record out of daily view while keeping it findable.
- Trash (soft delete) removes it from lists but keeps the row, so history and anything referencing it stay intact.
This is why a retired form's past submissions still open, and why an old invoice's work orders still resolve.