Skip to main content

Savant Audit Log Guide

This guide explains how to read an audit event and what each field means

Savant automatically records an audit event for every significant action taken in your organization - sign-ins, permission changes, workflow edits, runs, and data downloads. These logs provide a tamper-evident, UTC-timestamped record of who did what and when, designed to support SOX and other compliance audits.

Anatomy of an Audit Event

Every audit event is a JSON record with the same top-level structure. Here is an example of a completed workflow run:

Event ID

1021b3d3-22d5-4979-a020-dbfad12e25e6

Timestamp

2026-07-11T10:20:39.533Z

Trace ID

f6167e1a85a0a7b4999f9d4cb7314cbe

Organization ID

vghqrjoxbt

Organization Name

Savant

Workspace ID

general

Workspace

John's Workspace, Danny's Workspace, Tushar's Workspace

Actor Email

Actor Name

Actor Role

Analyst

Actor Role (Metadata)

Analyst

Event Category

CANVAS

Action

node_added

Result

SUCCESS

Event Type

CANVAS_NODE_ADDED

Login Method

oauth:google-oauth2, password

Session End Reason

NA

Failure Reason

Wrong email or password

Affected User

NA

Affected User Role

NA

Before Role

9 values, but they are JSON config/state snapshots (node config, data edges, connection status), not role names — likely a field-mapping issue worth flagging

After Role

{"config":{"connector":"csv","id":"ngzyxlymzx","name":"athletes new.csv","type":"csv"},"id":"source_xmd29w","name":"athletes new.csv","type":"source"}

Role Scope

NA

Permission Source

NA

Deactivation Type

NA

Flow ID

source_xmd29w

Folder ID

qjzlqsowcb, rczboyakhm

Flow Name

Analysis 2026-07-11T10:13Z

Flow Version

1

Governance Status

NA

Node Count

0

Previous Name

NA

New Name

NA

Submitter

NA

Comment

NA

Source Folder

NA

Destination Folder

NA

Export Format

NA

Export Filename

NA

Cloned Flow ID

NA

Cloned Flow Name

NA

Run ID

32 distinct 16-char IDs, e.g. adebfszndgdthhvd

Trigger

manual

Run Type

run_now, schedule

Duration (ms)

numeric, 29 distinct, range ~3,596 to 157,632

Nodes Executed

2, 3, 4, 5

Error Message

NA

Error Node

NA

Flow Creator

Connector

anthropic, onedrive, openai, snowflake

Connection Name

NA

Connection Type

application

Path

NA

Namespace

NA

Node ID

filter_0xrzuw, summarize_1r3jw0, summarize_srabos

Node Name

Count of Flows, Count of folders, Filter

Node Type

filter, summarize

Canvas Node Count

05

Canvas Edge Count

03

Config

null

Config Truncated

NA

Schedule Frequency

NA

Schedule Time

NA

Schedule Timezone

NA

Schedule Enabled

NA

Reading this event top to bottom:

  • Whouser_email and actor_type identify the acting user and their workspace role.

  • Whatevent_type names the exact event; action gives a plain-verb summary.

  • Whereorganization_id and workspace_id place the action in your tenant.

  • Whentimestamp records the moment in UTC.

  • Outcomeresult states whether the action succeeded, and metadata carries the event-specific details, e.g., which workflow ran, how long it took, and how many rows were processed.

Field Glossary

Every audit event contains the following top-level fields. Fields marked required are always populated.

  • event_id (required) — Unique identifier (UUID) for the event. Use it to deduplicate records and reference a specific event with support.

  • timestamp (required) — When the event occurred, in ISO 8601 format. All timestamps are UTC.

  • organization_id (required) — The organization (tenant) where the action occurred. Shows N/A when no organization context exists, e.g., an event recorded before sign-in completes.

  • workspace_id (required) — The workspace where the action occurred. Shows N/A when no workspace context applies.

  • organization_name — Human-readable organization name.

  • workspace_name — Human-readable workspace name.

  • user_email — Email address of the user who performed the action. Automated actions, e.g., scheduled workflow runs, show [email protected].

  • actor_username — Carries the same value as user_email; retained for backward compatibility.

  • actor_type — The workspace role of the acting user at the time of the action, e.g., ADMIN, ANALYST, or SYSTEM for automated actions.

  • trace_id — Identifier that links all events generated by the same request. Useful when investigating an incident with support.

  • event_type (required) — The specific event that occurred, e.g., LOGIN_SUCCESS, FLOW_CREATED. See the full reference below.

  • action — Short human-readable description of the action, e.g., login, create_workflow.

  • result — Outcome of the action: SUCCESS or FAILURE.

  • failure_reason — Why the action failed. Populated only when result is FAILURE.

  • before_state — JSON snapshot of the resource before the action, used for change tracking, e.g., a user's previous role or a schedule's previous configuration. Empty for events that create or access a resource.

  • after_state — JSON snapshot of the resource after the action, e.g., the newly assigned role or updated schedule. Empty for events that delete or access a resource.

  • metadata — JSON object with event-specific context. It always identifies the affected resource (resourceType, resourceId, resourceName) and its category, plus additional keys that vary by event type, e.g., login method for authentication events or run metrics for workflow executions.

Event Categories

Every event belongs to one of seven categories, recorded in metadata.category:

  • AUTHENTICATION — Sign-ins, sign-outs, sessions, MFA, and password changes.

  • RBAC — User lifecycle, role assignments, permission grants and revocations, and access denials.

  • SYSTEM — Workspaces, folders, connections, datasets, secrets, governance settings, notifications, and data downloads.

  • FLOW — Workflow lifecycle, approval and publishing governance, executions, apps, and exports.

  • CANVAS — Edits to the workflow canvas: nodes, edges, and saves.

  • AUTOMATION — Workflow schedules and automation configuration changes.

  • API — API calls and API token lifecycle.

Events recorded by earlier versions may carry the categories DATA_ACCESS, CONFIGURATION, or ADMINISTRATIVE. These remain valid for historical records.

Event Type Reference

The complete list of event types, grouped by category.

Authentication

LOGIN_SUCCESS, LOGIN_FAILED, LOGOUT, MFA_VERIFIED, PASSWORD_CHANGED, SESSION_EXPIRED

RBAC

USER_CREATED, USER_DEACTIVATED, ROLE_CHANGED, PERMISSION_GRANTED, PERMISSION_REVOKED, ACCESS_DENIED

System

WORKSPACE_CREATED, WORKSPACE_DELETED, WORKSPACE_RENAMED, WORKSPACE_ACCESSED, FOLDER_CREATED, FOLDER_DELETED, FOLDER_MOVED, FOLDER_RENAMED, FOLDER_UPDATED, FOLDER_ACCESS_DENIED, FOLDER_MEMBER_ACTION_DENIED, SECRET_CREATED, SECRET_UPDATED, SECRET_DELETED, DATASET_CREATED, DATASET_MOVED, DATASET_COPIED, DATASET_ACCESSED, DATASYSTEM_CONNECTED, CONNECTION_MOVED, CONNECTION_COPIED, CONNECTION_DELETED, CONNECTION_MODIFIED, CONNECTION_ACCESSED, GOVERNANCE_CONFIG_CHANGED, NOTIFICATION_DISPATCHED, DATA_DOWNLOADED

Flow

FLOW_CREATED, FLOW_DELETED, FLOW_RENAMED, FLOW_CLONED, FLOW_MOVED, FLOW_MODIFIED, FLOW_EXPORTED, FLOW_SUBMITTED, FLOW_APPROVED, FLOW_REJECTED, FLOW_PUBLISHED, FLOW_UNPUBLISHED, FLOW_ACCESSED, FLOW_RUN_STARTED, FLOW_RUN_COMPLETED, FLOW_RUN_FAILED, FLOW_RUN_CANCELLED, FLOW_APP_CREATED, FLOW_APP_PUBLISHED, FLOW_TEST_RAN, PUBLISHED_APP_OPENED, TEMPLATE_MOVED, TEMPLATE_COPIED

Canvas

CANVAS_NODE_ADDED, CANVAS_NODE_REMOVED, CANVAS_NODE_RENAMED, CANVAS_NODE_CONFIG_CHANGED, CANVAS_EDGE_ADDED, CANVAS_EDGE_REMOVED, CANVAS_SAVED, CANVAS_CLEARED

Automation

FLOW_SCHEDULE_CREATED, FLOW_SCHEDULE_UPDATED, FLOW_SCHEDULE_DELETED, AUTOMATION_CONFIG_CHANGED

API

API_CALL_LOGGED, API_TOKEN_CREATED, API_TOKEN_REVOKED


Audit Log Events Troubleshoot

Why does the actor show as [email protected]?
The action was performed automatically by the platform rather than a signed-in user - most commonly a scheduled workflow run. The actor_type for these events is SYSTEM.

Why is organization_id or workspace_id shown as N/A?
The event occurred before an organization or workspace context was established, e.g., a failed sign-in attempt happens before the platform knows which organization the user belongs to.

What are before_state and after_state?
They are snapshots of a resource on either side of a change, so an auditor can see exactly what changed. For example, a role update records the previous role in before_state and the new role in after_state. Events that create a resource have no before state, and events that delete a resource have no after state.

How do I identify failed or denied actions?
Filter on result equal to FAILURE and read failure_reason for the explanation. Access denials, e.g., ACCESS_DENIED and FOLDER_ACCESS_DENIED, are always recorded as failures and include the action the user attempted.

Why do metadata fields differ between events?
The metadata object carries context specific to each event type — a sign-in records the authentication method, while a workflow run records duration and row counts. The resource identifiers (resourceType, resourceId, resourceName) and category are present on every event.

What timezone are timestamps recorded in?
All timestamps are UTC, in ISO 8601 format. Convert to your local timezone when correlating with user reports.

Did this answer your question?