Sensitive actions are approval-gated and audit logged

DO
Audit trail

Every sensitive action leaves evidence

The audit log records who acted, what changed, why it changed, and when. It is not a decorative activity feed.

Immutable in production

Production audit rows should be append-only, protected by RLS, and written in the same transaction as the sensitive business change.

WhenActorActionRecordReasonChange
Jun 16
Jun 16, 2026
Max
owner
approved campaign
Campaign
campaign-meta-readiness
Compliance review passed and weekly capacity confirmed.
No field diff stored
Jun 18
Jun 18, 2026
Elena
marketer
updated campaign copy
Campaign
campaign-meta-checklist
Replaced urgency language with planning language.
No field diff stored
Jul 15
Jul 15, 2026
System
admin
scored lead
Lead
lead-01
Deterministic lead scoring rules v1.0.
No field diff stored
Jul 13
Jul 13, 2026
Jordan
sales
moved deal to quote sent
Deal
deal-02
No reason supplied
No field diff stored
Jul 11
Jul 11, 2026
Max
owner
created invoice
Invoice
invoice-01
Accepted quote and deposit approval.
No field diff stored
Jul 12
Jul 12, 2026
System
admin
recorded payment
Payment
payment-01
Stripe demo webhook.
No field diff stored
Jul 11
Jul 11, 2026
Max
owner
paused campaign
Campaign
campaign-google-veteran
Stop-loss threshold reached with zero qualified leads.
No field diff stored
Jul 13
Jul 13, 2026
System
admin
flagged bookkeeping exception
Expense
expense-11
Missing receipt and uncategorized expense.
No field diff stored
Jul 14
Jul 14, 2026
Elena
marketer
prepared budget recommendation
Campaign
campaign-meta-readiness
Profit ROAS exceeded scale threshold.
No field diff stored
Jul 14
Jul 14, 2026
Jordan
sales
sent quote
Quote
quote-04
No reason supplied
No field diff stored
Jul 14
Jul 14, 2026
System
admin
categorized expense
Expense
expense-21
Merchant matched advertising category with 0.91 confidence.
No field diff stored
Jul 15
Jul 15, 2026
Max
owner
approved recommendation
Recommendation
rec-03
Campaign remains paused.
No field diff stored