Skip to main content

Overview

The Log is CXF’s audit trail. It automatically records who did what to which record — creations, updates (with field-level before/after diffs), deletions, restores, and changes to taxonomies, relationships, and ownership. You read that history on a record’s Log tab, in a real-time feed, and through the API. For the mental model, see Core concepts. Logs are written by the system — you don’t create them, you read them.

Where to find it

  • Log tab — on a record’s detail page, a timeline of everything that happened to it.
  • Real-time feed — a navbar feed shows recent changes as they happen.
  • API — query the log history programmatically.

Properties

Every log entry is system-generated and read-only:
PropertyTypeDescription
user_idreferenceThe user who performed the action.
actionenumWhat happened — see What gets logged.
action_detailsarrayThe per-change details (empty for deletions and restores).
object_type / object_idreferenceThe record that was changed.
object_titlestringA snapshot of the record’s title at the time.
connection_detailsobjectWhere the action came from: ip, user_agent, device_type.
created_atdatetimeWhen the action happened.

What gets logged

The action captures the kind of change: created, updated, deleted, restored, attached, detached, archived, published, unpublished, balance-updated, login, and more. For changes, action_details records exactly what changed, with typed entries:
TypeRecords
attributeA field change — slug, old_value, new_value (nested fields use a dotted slug).
taxonomyA taxonomy attached or removed.
relationshipA relationship attached or removed.
ownershipAn owner or follower added or removed.
balanceA balance change — old and new value.

Real-time feed

Owners and followers of a record see its changes in the navbar feed in real time. The feed is ownership-scoped — a Journey Manager sees activity for the records they own or follow (see Ownership).

Behaviour & rules

  • Read-only. Logs are generated automatically by the system; they can’t be created or edited.
  • Field-level diffs. Updates record only the fields that changed, each as old_value → new_value, including nested fields.
  • Deletes and restores have no details. Their action_details is empty — use the surrounding updated entries for field history.
  • Secrets are masked. Sensitive values (like API keys) are masked so they never appear in a log.
  • The real actor is attributed. Even when a change happens through automation or a background job, the log attributes it to the user behind it.

Seeds

Logs are a record of actions, not configuration — they aren’t part of Seeds.

Governance & permissions

A super admin or Master can read every log. A Journey Manager reads the logs of records they own or follow.

API access

The Log is read-only through the API: list and filter entries (for example by object), optionally scoped to the records a user owns or follows. See the API reference.

Ownership

Determines who sees a record’s log in the real-time feed.

Activities

User-authored comments, tasks, and approvals — a separate stream from the audit trail.