Krino does not impose a transaction schema. You define the shape of the objects you send, and the field names stay the names you chose.

Tables

A table corresponds to an event type: card_payment, loan_application, withdrawal. You pass this name as object_type when asking for a decision.

Field types

The two required fields

Both must exist on every table.
String
required
Identifies the record. A second payload with the same object_id does not create a new row — it becomes a new version of the existing record.
Timestamp
required
Says which moment the record belongs to. Format yyyy-MM-dd HH:mm:ss.
Send updated_at in your own runtime’s timezone, and make sure that timezone matches the TIMEZONE setting of the deployment. A mismatch silently miscalculates velocity rules — the window shifts and nobody notices.

Pivot

Marking a field as the pivot groups decisions by that field’s value. It is usually the customer number. The pivot drives case creation: decisions sharing a pivot value collect into one file. Without a pivot every decision stands alone, and one customer’s ten transactions become ten separate investigations.

Changing the schema

Adding a field is safe; it simply reads as empty on older records. Deleting a field or changing its type affects the rules that depend on it — check the Analytics screen for which rules use it before you remove it.