Automations
Learn when automations run and how to use On create, On update, and On delete in Ninox.
Automations run logic automatically when a defined event happens. Use them to keep data consistent and reduce manual work.
What automations do
An automation follows a simple pattern: when this happens, run this logic.
Use automations when the same action should happen every time the same event occurs.
Typical examples are:
setting default values for new records
recalculating dependent values after a change
reacting when a record is deleted
If users should decide when logic runs, a button is usually the better choice.
Automation events in Ninox
In the current UI, Ninox offers these automation events:
On create runs when Ninox creates a record. Use it to assign an internal number, set defaults, or create related data. You can find it in the table settings.
On update runs when a record changes. Use it to normalize input, update dependent fields, or keep related data in sync.
On delete runs when Ninox deletes a record. Use it when other data or follow-up logic must react to that deletion.
Use automations for logic that should always run in the background. Use buttons when users should stay in control.
Best practices
Automations are powerful, but they can make an app harder to understand if too much logic runs automatically.
Use these rules:
keep automation logic short
avoid hidden side effects when possible
test automations with real user workflows
document important automatic behavior clearly
use buttons instead of automations when users should decide
Be careful with automations that update data. They can trigger more write activity and make debugging harder.
Automation logic that writes data runs inside write transactions. Slow automation logic can delay other write actions.
Keep this in mind especially when an automation:
updates many records
calls external services
runs large
selectqueries
For more detail, see Best practices and common pitfalls.
Example uses
Here are typical uses for each event:
On create can set
today(), assign the next invoice number, and set a default status.On update can refresh totals, standardize field values, or sync related records.
On delete can react to record removal in related workflows.
Last updated
Was this helpful?