Built-In Automation Hooks
Business operations generate side effects. When an invoice is marked paid, the payment date should be recorded. When an order is cancelled, related shipments should be flagged for review. When a user changes a record's status, the change should be logged with the timestamp and the actor.
These aren't optional behaviors for serious business applications — they're the connective tissue that makes processes reliable. But they're also tedious to configure individually for every record type and every operation.
Built-in automation hooks handle the common cases automatically.
Automatic Change Logging
Every record modification generates a log entry. The platform captures: the user who made the change, the timestamp, which fields changed, and the previous and new values.
This happens without any configuration. You don't enable logging; you don't mark fields as "tracked." Every change to every record is logged, creating a complete audit trail automatically.
Referential Integrity Checks
Before deleting any record, the platform checks whether other records reference it. A customer that has open orders can't be deleted without resolving those orders first. A product category with assigned products can't be removed without handling the product assignments.
These checks run as automatic pre-delete hooks, not as after-the-fact error handling. The attempt to delete fails gracefully with a clear explanation of what dependency needs to be resolved.
Validation on Every Write
Field-level validation rules defined in the object definition run on every write — create, update, import, API call. The same validation rules that protect the form also protect direct writes from any source.
This means validation is a property of the data model, not a property of the form. Even records imported in bulk, created through automation, or written via integration are subject to the same rules.
Auto-Population Hooks
Certain fields populate automatically based on operational context. Created-at timestamps populate when records are first saved. Modified-at timestamps update on every change. Created-by and modified-by track the user responsible for each operation.
These are not fields that need to be defined or configured — they're present on every object type as system fields, managed by the platform's write hooks.
Sequential IDs and Counters
Auto-numbering sequences run as creation hooks. When a record is created, the sequence fires, generates the next identifier in the configured format, and populates the identifier field — all within the same transaction as the record creation.
The hook-based approach ensures IDs are generated atomically and consistently, regardless of concurrent creation volume.