Skip to content

Audit log

The audit log is a read-only record of significant actions in a workspace. It lives at /settings/audit-log and requires admin access.

It is gated by the AUDIT_LOGS entitlement, which is Enterprise only — Free, Pro, and Business all resolve to no access, and the page renders a blurred sample table behind an upgrade prompt.

Two sources are merged into one timeline, sorted newest first.

SourceEntries
Audit logAuthenticated actions taken by a workspace user
Survey access logAnonymous participant access to surveys, surfaced with the entity type SURVEY_ACCESS and the action ACCESS

Access-log entries have no actor identity: the actor column shows Anonymous, and the actor name and email are null.

ColumnContents
TimestampRelative age — just now, 17m ago, 3h ago, 12d ago, then a date past 30 days. The full local timestamp appears on hover
ActorName over email. Unknown when the actor cannot be resolved, Anonymous for ACCESS entries
ActionOne of the nine action types below, as a badge
Entity TypeThe kind of object acted on, e.g. api_key, DATA_RETENTION_POLICY, AUDIT_LOG, SURVEY_ACCESS
Entity IDThe object’s identifier, truncated to 16 characters with the full value on hover and a copy control
DetailsExpands to the entry’s metadata as formatted JSON. Shows -- when the entry has none

Each entry also stores an IP address and user agent. For access-log entries the metadata carries the requested endpoint, HTTP method, and status code.

ActionMeaning
ACCESSAn object was read. Used for anonymous survey access
ARCHIVEAn object was archived
CONFIGUREA configuration value was changed
CREATEAn object was created
DELETEAn object was deleted or revoked
EXPORTData was exported
LOGINA session was started
LOGOUTA session was ended
UPDATEAn object was modified

Actions verified as writing audit entries include API key creation and revocation (CREATE / DELETE on api_key), retention policy changes (CONFIGURE on DATA_RETENTION_POLICY, with the previous value in metadata), retention runs, and audit log exports.

Four filters sit above the table and are held in the URL, so a filtered view can be linked or bookmarked.

FilterValues
ActionAll Actions, or one of the nine action types
Entity TypeAll Entity Types, or one of the entity types actually present in this workspace’s log
Start DateA date; entries on or after it
End DateA date; entries on or before it

Clear Filters appears once any filter is set, and changing a filter resets to page one. The table paginates at 50 entries per page; the API accepts up to 100.

The entity type list is derived from the workspace’s own data, so it grows as new kinds of object are acted on.

Export CSV downloads the current filtered view as audit-log-YYYY-MM-DD.csv, with these columns:

Timestamp,Actor Name,Actor Email,Action,Entity Type,Entity ID,Metadata

Timestamps are ISO 8601. An entry with no resolvable actor is exported with the actor name System. Metadata is JSON-encoded into a single field.

Two properties are worth knowing:

  • Exports are capped at 10,000 rows. Narrow the date range to stay under it.
  • Exporting is itself audited. Each export writes an EXPORT entry against the entity type AUDIT_LOG, recording the row count and the filters that produced it.

Audit entries are never deleted by a retention policy. The purge that removes expired feedback explicitly excludes them.