Home
Home/Developers/Audit logs/Integrations/Clerk
Ed25519 signaturesSHA-256 hashes8 SDKs
Status
Sign inStart free
Home
Start here
Overview
Authentication
Errors
FAQ
API
Events
Canonical JSON and hashes
Documents
Anchoring a file
AI attestations
Attestation schema
Verifying attestations
Traces
Sealing a trace
Audit logs
Organizations
Streams
Portal
Public proof
Event schema
Exporting events
Integrations
Clerk
Auth0
Embeddable viewer
All endpoints
Reference
SDKs
Node.js
Python
Go
Java
Ruby
Rust
.NET
PHP
REST
Verification
Docs · Integrations

Clerk

Point Clerk's webhooks at Invoance and every sign-in, membership change and role update becomes a signed audit event. The Svix signature is checked first.

Clerk webhook docsAll integrations
sha-256 · 3a352297…2592
sha-256 · ba9bd2ac…5e6e
Set up
  1. Create the source

    In the dashboard open Audit Logs, then Integrations, and connect Clerk. Copy the webhook URL. It is shown once and stored as a hash.

  2. Add the endpoint in Clerk

    In the Clerk Dashboard open Configure, then Webhooks, then Add endpoint, and paste the URL.

  3. Subscribe to events

    Pick events from the map below. Start with the core rows; the high-volume rows fire on every sign-in, sign-out and user change.

  4. Paste the signing secret

    Copy the endpoint's signing secret, whsec_ plus a base64 key, into the source. If Clerk rotates it, set the new value on the source; the URL stays the same.

Event map
Clerk eventBecomesOrganizationVolume
organizationMembership.createdmember.addeddata.organization; created with its name when newcore
organizationMembership.deletedmember.removeddata.organizationcore
organizationMembership.updatedrole.changeddata.organizationcore
organization.createdorganization.createddata.id, with data.namecore
user.createduser.creatednone; org-less policy appliescore
user.deleteduser.deletednone; org-less policy appliescore
session.revokedsession.revokeddata.last_active_organization_id, if setcore
session.createduser.signed_indata.last_active_organization_id, if sethigh
session.removeduser.signed_outdata.last_active_organization_id, if sethigh
user.updateduser.updatednone; org-less policy applieshigh
  • The three membership events keep the Clerk role in metadata.role and name the organization as the target.
  • session.revoked names the session id as the target; the actor is always the user.
  • user.* events take the actor's name from first and last name, or the first email address.
  • session.ended is not mapped: a sign-out fires both session.ended and session.removed, and mapping both would double count.
  • An event type not in the map is skipped as unmapped_type, counted and never billed.
DeliveryResponse codes and skip reasons
Authsvix-id, svix-timestamp and svix-signature on every delivery; the timestamp must be within 300 seconds of server time.
Success200 {"received": true, "event_id": "aevt_..."}
Bad signature401 invalid_signature. Not counted as received.
RetriesDeduplicated by svix-id. A redelivery never stores a second event.
SizeOne event per delivery, up to 64 KB; a larger event is skipped as payload_too_large.
TimeThe envelope timestamp, unix milliseconds, becomes occurred_at. Missing or invalid falls back to the receive time.
Contextevent_attributes.http_request.client_ip and user_agent are stored as context.location and context.user_agent.

Proof infrastructure. Records are hashed, signed with your organization's Ed25519 key, and stored append-only, so anyone can check them later.

Products

  • Audit Logs
  • Event Ledger
  • AI Attestation
  • Document Anchoring
  • Traces

Developers

  • Documentation
  • API reference
  • SDKs
  • How it works
  • How traces seal
  • System status

Verify

  • Audit Log
  • Event
  • AI Attestation
  • Document
  • Trace

Company

  • Company overview
  • What is Invoance
  • Pricing
  • Security
  • Compliance teams
  • Finance teams
  • Partners
  • Brand assets
  • Resources
  • Help center
  • Contact
© 2025 – 2026 Invoance, Inc. All rights reserved.© 2026 Invoance, Inc. All rights reserved.
PrivacyLegal noticeLegal FAQ