Help

AdministeringSecurityConcept

The audit log

What the audit log records and deliberately doesn't, how CapitolMath staff access shows in it, how far back it goes, and how to export it.

Applies toOwner · Admin

Open in CapitolMath

The audit log records who did what in your organization: sign-ins, members and licenses, API keys, saved views, exports, widgets, webhooks, scorecards and plan changes — and every time CapitolMath staff opened or changed the organization. It's there so an Owner, an Admin or your auditor can answer "who changed this, and when?" without asking anyone.

Owners and Admins read it from Organization → Audit log, under Activity, which shows the newest entries — changes to the organization's settings and its workflow among them; select Open the full log and export it → for all of them, with filters and the CSV download. Team members can't see it: it's a record of everyone's activity across the organization.

What's recorded#

Each entry says When, Who — a member, An API key, CapitolMath (automatic) or CapitolMath staff — What, what it was done To, and the network address it came From. Most actions succeed; one that failed or was refused is marked so. Select an entry to see its detail, including which fields changed.

The audit log: the CapitolMath staff access bar, the filters and Download CSV, and entries showing When, Who, What, To and From
Organization → Audit log, newest entries first.
What the audit log records
ActionRecorded as
Sign-in
Signed inauth.login
Signed outauth.logout
Opened the single sign-on setupauth.sso_setup_started
Changed the single sign-on connectionauth.sso_configured
Signed in with single sign-on for the first timeauth.sso_tested
Changed whether single sign-on is requiredauth.sso_enforcement_changed
Signed in without single sign-on while it was requiredauth.break_glass_used
Members & keys
Invited a membermember.invited
Re-sent an invitationmember.invitation_resent
Changed an invitationmember.invitation_changed
Withdrew an invitationmember.invitation_rescinded
Joined the organizationmember.joined
Removed a membermember.removed
Left the organizationmember.left
Changed a member's rolemember.role_changed
Gave a member a Full licensemember.licence_granted
Took away a member's Full licensemember.licence_revoked
Asked to change a member's emailmember.email_change_requested
Canceled an email changemember.email_change_cancelled
Changed a member's namemember.name_changed
Recovered ownership of the organizationmember.ownership_recovered
Turned on permissions for a membermember.permission_granted
Turned off permissions for a membermember.permission_revoked
Copied a member's permissions from another membermember.permissions_copied
Reset a member's permissions to their role's defaultsmember.permissions_reset
Gave a member Read All on tracked itemsmember.read_all_tracked_granted
Changed a member's photomember.photo_changed
Created a groupgroup.created
Changed a groupgroup.updated
Deleted a groupgroup.deleted
Created an API keyapikey.created
Revoked an API keyapikey.revoked
An API key lost audit-log accessapikey.audit_access_removed
An older API key was moved into this organizationapikey.moved_to_account
Completed a quarterly access reviewaccess.review_completed
Started a conversation with the assistantchat.session_started
Data leaving CapitolMath
Downloaded a CSVexport.csv
Downloaded a bulk datasetexport.bulk
Downloaded everything in the organizationexport.account
Created a widgetwidget.created
Changed a widgetwidget.updated
Published a widgetwidget.published
Unpublished a widgetwidget.unpublished
Replaced a widget's embed codewidget.token_rotated
Deleted a widgetwidget.deleted
Exported the assistant's transcriptschat.transcript_exported
Created a webhookwebhook.created
Changed a webhookwebhook.updated
Changed where a webhook sendswebhook.destination_changed
Took over a webhook by changing itwebhook.transferred
Activated a webhookwebhook.activated
Paused a webhookwebhook.paused
Resumed a webhookwebhook.resumed
Sent a webhook testwebhook.tested
Rotated a webhook's signing secretwebhook.secret_rotated
Replayed webhook eventswebhook.replayed
Deleted a webhookwebhook.deleted
A failing webhook was disabledwebhook.auto_disabled
A webhook paused because someone else changed its viewwebhook.paused_by_view_edit
A webhook paused because someone else changed a scorecard its view rates bywebhook.paused_by_scorecard_edit
Set up Slack or Teams for their own notificationsnotification.destination_added
Removed their Slack or Teams notificationsnotification.destination_removed
Downloaded a scorecardscorecard.exported
Saved views
Deleted a conversation with the assistantchat.transcript_deleted
Saved a viewview.created
Changed a saved viewview.updated
Deleted a saved viewview.deleted
Renamed a view categorycategory.renamed
Deleted a view categorycategory.deleted
Merged view categoriescategory.merged
Legislator scorecards
Created a scorecardscorecard.created
Changed a scorecardscorecard.updated
Deleted a draft scorecardscorecard.deleted
Made a new version of a scorecard methodologyscorecard.methodology_versioned
Submitted a scorecard for reviewscorecard.submitted_for_review
Sent a scorecard back for changesscorecard.returned
Approved a scorecardscorecard.approved
Published a scorecardscorecard.published
Withdrew a published scorecardscorecard.unpublished
Archived a scorecardscorecard.archived
Froze a scorecard's scoresscorecard.frozen
Set a scorecard to update with new votesscorecard.unfrozen
Tracking
Started tracking a billworkflow.tracked
Stopped tracking a billworkflow.untracked
Carried a tracked bill forward to another billworkflow.carried_forward
Changed a tracked bill's fieldsworkflow.field_changed
Reassigned tracked billsworkflow.owner_reassigned
Changed who a tracked bill is shared withworkflow.shares_changed
Changed the tracking statusesworkflow.statuses_edited
Renamed position labelsworkflow.labels_renamed
Changed the tracking tagsworkflow.tags_edited
Changed the workflow settingsworkflow.settings_changed
Turned AI writing of the Weekly digest on or offworkflow.digest_writing_changed
Changed the custom fieldsworkflow.custom_fields_edited
Wrote a noteworkflow.note_written
Logged a meetingworkflow.meeting_logged
Edited a noteworkflow.note_edited
Deleted a noteworkflow.note_deleted
Read a note kept to its author, with Read Allworkflow.note_read_all
Attached a file to a noteworkflow.attachment_added
Removed a file from a noteworkflow.attachment_removed
Opened a file attached to a noteworkflow.attachment_opened
A file attached to a note failed the malware checkworkflow.attachment_blocked
Turned on a triage sourceworkflow.triage_source_on
Turned off a triage sourceworkflow.triage_source_off
Changed a triage sourceworkflow.triage_source_changed
Sent bills to an Inboxworkflow.triage_sent
Assigned Inbox bills to someone elseworkflow.triage_assigned
Dismissed bills from the Inboxworkflow.triage_dismissed
Undid a dismissal from the Inboxworkflow.triage_dismissal_undone
Made a reportworkflow.report_created
Changed a report's settingsworkflow.report_changed
Deleted a reportworkflow.report_deleted
Changed who a report is shared withworkflow.report_shared
Saved a report as one of our templatesworkflow.report_template_saved
Took over a paused reportworkflow.report_taken_over
Made a link to a reportworkflow.report_link_created
Revoked a link to a reportworkflow.report_link_revoked
Made a PDF or Word file of a reportworkflow.report_file_created
Downloaded a report's PDF or Word fileworkflow.report_file_downloaded
Added a report recipientworkflow.report_recipient_added
Removed a report recipientworkflow.report_recipient_removed
Approved or declined an outside recipientworkflow.report_recipient_decided
Sent a scheduled reportworkflow.report_sent
Skipped a scheduled report (nothing changed, or no one to send to)workflow.report_send_skipped
A scheduled report's email failedworkflow.report_send_failed
Left a recipient out of a scheduled reportworkflow.report_recipient_refused
A recipient unsubscribed from a reportworkflow.report_unsubscribed
Added tasksworkflow.task_created
Changed a taskworkflow.task_changed
Deleted a taskworkflow.task_deleted
Updated tasks togetherworkflow.tasks_updated
Reassigned a departing member's open tasksworkflow.tasks_reassigned
Handed a former member's tracked bills and tasks to an Ownerworkflow.orphans_handed_on
Added a clientworkflow.client_created
Changed a clientworkflow.client_changed
Archived a clientworkflow.client_archived
Made an archived client active againworkflow.client_unarchived
Deleted a client (restorable for 30 days)workflow.client_deleted
Restored a deleted clientworkflow.client_restored
Erased a deleted client after 30 daysworkflow.client_erased
Changed who a client is shared withworkflow.client_shared
Changed a client's account managerworkflow.client_manager_changed
Added someone to a client's account teamworkflow.client_person_added
Removed someone from a clientworkflow.client_person_removed
Changed someone's access to a clientworkflow.client_access_changed
Moved a client member to another clientworkflow.client_member_reassigned
Refused a change that would cross the client wallworkflow.wall_refused
Added an automation ruleworkflow.rule_created
Changed an automation ruleworkflow.rule_changed
Turned on an automation ruleworkflow.rule_on
Turned off an automation ruleworkflow.rule_off
Removed an automation ruleworkflow.rule_deleted
Reordered the automation rulesworkflow.rules_reordered
Applied an automation rule to the bills it matches nowworkflow.rule_applied_now
An automation rule changed a tracked billworkflow.rule_applied
Undid an automation rule's changeworkflow.rule_change_undone
Asked for a briefbrief.created
Took over a brief by changing who it's forbrief.transferred
Changed a brief's settingsbrief.settings_changed
Refreshed a briefbrief.refreshed
Finished updating a briefbrief.update_finished
Discarded a brief's updatebrief.update_discarded
Deleted a briefbrief.deleted
Changed a passage of a client's briefbrief.passage_changed
Shared a client copy with the client's membersbrief.shared
Stopped sharing a client copybrief.unshared
Downloaded a briefbrief.downloaded
A client member downloaded a shared client copybrief.shared_copy_downloaded
Logged a meeting from a meeting briefbrief.meeting_logged
Plan & billing
Plan changedbilling.plan_changed
Scheduled a plan changebilling.plan_change_scheduled
Canceled a scheduled plan changebilling.plan_change_cancelled
Changed the plan's statebilling.entitlement_changed
Billing status changedbilling.status_changed
Payment method changedbilling.payment_method_updated
Asked to pay yearly by invoicebilling.invoice_requested
Withdrew a request to pay by invoicebilling.invoice_request_withdrawn
CapitolMath approved paying by invoicebilling.invoice_request_approved
CapitolMath declined paying by invoicebilling.invoice_request_declined
Organization settings
Created the organizationorg.created
Changed organization detailsorg.settings_changed
Added the organization's logoorg.logo_added
Replaced the organization's logoorg.logo_replaced
Removed the organization's logoorg.logo_removed
Changed the contract contactorg.contract_contact_changed
Started verifying a domainorg.domain_claim_started
Verified a domainorg.domain_verified
Closed the organizationorg.closed
The organization was reopenedorg.reopened
CapitolMath staff access
CapitolMath staff viewed this organizationstaff.org_data_accessed
CapitolMath staff acted as a member of this organizationstaff.impersonation_used
CapitolMath staff changed organization detailsstaff.org_updated
CapitolMath staff viewed site usage by personstaff.usage_by_person
CapitolMath staff changed the organization's statusstaff.org_status_changed
CapitolMath staff corrected public data you followstaff.corpus_edited
CapitolMath staff scheduled a legacy ingeststaff.ingest_schedule_overridden
CapitolMath staff overrode an ingest's cadencestaff.ingest_cadence_overridden
CapitolMath staff paused or resumed an ingeststaff.ingest_paused
CapitolMath staff deleted a quarantined billstaff.bill_deleted
CapitolMath staff resent follower notificationsstaff.notify_resent
CapitolMath staff changed when a tier of checks runsstaff.checks_schedule_changed
CapitolMath staff turned the checks' pre-launch mode on or offstaff.checks_prelaunch_changed
CapitolMath staff started a run of the checksstaff.checks_run_requested

Filter the log by kind of action, by who acted, by outcome (Succeeded, Failed, Refused) and by dates From and To.

What's deliberately not recorded#

  • What anyone looked at. Nothing records which bills, legislators or hearings someone opened, or what they searched for. A log of every bill an organization read would be a record of its strategy — valuable to an attacker and discoverable in litigation — so it isn't kept at all. Exports are recorded, because they're data leaving CapitolMath.
  • The values themselves. An entry says a saved view, a name or an email address changed, not what it now says — the detail shows "changed (the value isn't recorded)". Invitations are recorded by a fingerprint of the address, never the address.
  • Secrets. No API key, webhook signing secret or password is ever written to the log.
  • Who views your widgets. Embedded widgets don't track the people who see them, and the log doesn't either.

CapitolMath staff access#

When CapitolMath staff open your organization for support, change its details or status, or correct public data your organization relies on, it's written to your log, not only to ours. The CapitolMath staff access bar at the top of the log counts those entries; select Show only staff access to list them. If there have been any in the period your plan keeps, the Organization page says so too.

Entries can't be changed#

Neither you nor CapitolMath can edit or delete an entry. Each one is chained to the one before it, so a removed or altered entry would show. Once a day, a fingerprint of the log is also published in a public repository; once yours is included, the log page offers Download the proof and a standalone verifier to check it with, independently of CapitolMath.

How far back it goes#

Your plan decides how far back the log reaches — see Audit log kept for in Plans and what they include. The log page shows the window and the date it starts from. Moving to a plan with a longer window shows older entries again: they're never deleted while the organization is open.

Exporting it#

  • Download CSV on the log page exports the entries matching your current filters. The file holds ids rather than names.
  • GET /v1/audit-events delivers the log to a security tool by API, with ids rather than names. It needs an API key given the Read the audit log permission, which only an Owner or Admin can give a key, on a plan that includes the audit-log API (Developer and above). If the key's creator stops being an Owner or Admin, the key loses that permission. See Authentication and permissions and the API reference.