Skip to main content

Activity log

Every campaign carries a per-campaign activity feed — who edited what, who reviewed an AI diff, who left a comment. It’s the audit trail for collaborative campaign work, distinct from the per-user notification delivery channel.

TL;DR

  • One activity log per campaign, accessible from the campaign detail “Activity” tab.
  • Records edits, status promotions, AI proposals, comments, implementation-task resolutions.
  • Updates in real-time so multiple reviewers see each other’s actions live.
  • Distinct from the Notification Center widget — the activity log is a dashboard-side feed, not a user-facing channel.

What gets recorded

Per the spec: Each entry carries:
  • Actor — the user (dashboard team member) who performed the action.
  • Timestamp — when it happened.
  • Type — one of the categories above.
  • Payload — type-specific detail (the diff, the comment text, the status transition, …).

How to use it

Real-time updates

The activity tab streams updates as they happen — multiple reviewers see each other’s edits and comments live without refreshing. The mechanism is server-side; the dashboard subscribes once when the tab opens. The streaming channel is dedicated to collaborative team feeds — flat per-campaign updates, one or a few reviewers at a time. The Notification Center widget streams over a different channel optimised for per-user notification inboxes; don’t conflate the two. The activity log isn’t exposed to your customer’s widget: it’s a team-collaboration surface inside the dashboard, not a delivery channel and not part of the public SDK.

Retention

Activity entries are retained per the org’s plan, typically aligning with the per-message delivery retention. Aged-out entries are archived rather than deleted — the audit trail survives for compliance even when day-to-day display drops them from the dashboard.

Distinct from the Notification Center channel

A common mistake: thinking the activity log and the user-facing Notification Center are the same thing. They’re not: The naming overlap (“activity”) is unfortunate; treat them as separate domains.

FAQ

The real-time stream may have disconnected briefly (laptop sleep, flaky wifi). Refreshing the activity tab re-syncs from the last entry you saw and pulls anything missed. If the comment still doesn’t appear, check the timestamp filter — a “last hour” filter hides older entries.
Aligned with the per-message delivery retention on your plan (typically 90 days for the standard plan). Entries older than the window are archived rather than deleted; an audit-export call can fetch them for compliance reviews.
Two paths: the dashboard’s “Export activity” button (CSV) for the active retention window, and a backend audit-export endpoint for older archived entries. Both are scoped to the campaign and respect organisation membership.
Long-lived connections occasionally drop (load balancer timeouts, idle disconnects). The dashboard auto-reconnects on visibility change and re-syncs from the last entry you saw to fill any gap. If you see persistent stalls, refresh the tab.
Not today — the activity log is a dashboard-side surface. If you have an audit pipeline that needs activity events, the right surface is a future webhook (on the roadmap); meanwhile, the periodic export covers most needs.
Plain text + emoji today. Markdown-flavored rendering is on the roadmap. The text is stored verbatim, so future Markdown support will retroactively render existing comments.

See also

Campaigns

Campaign lifecycle and versioning.

Orchestrator

AI proposals and the implementation-task system.

Observability

Tracing actions across the platform.

Notification Center overview

The user-facing channel — distinct from the activity log.