Trigger Events

A webhook subscribes to the triggers it cares about. There are 38, grouped here by the resource they concern.

User

TriggerDescription
user.createdA new user account was created
user.updatedA user’s profile was modified
user.deletedA user account was deleted
user.bulk_deletedSeveral users were deleted in one batch
user.email_verifiedA user confirmed their email address
user.credentials.deletedA user’s credentials were removed
user.role.assignedA role was assigned to a user
user.role.unassignedA role was removed from a user

Authentication

TriggerDescription
auth.reset_passwordA password reset was performed
auth.device_flow.initiatedA device authorization flow was started
auth.device_flow.deniedThe user refused a device authorization
auth.device_flow.expiredA device code expired before anyone approved it

Client

TriggerDescription
client.createdA new OAuth2 client was registered
client.updatedA client’s configuration was modified
client.deletedA client was removed
client.role.createdA client-scoped role was created
client.role.updatedA client-scoped role was modified
client.maintenance.enabledMaintenance mode was turned on for the client
client.maintenance.disabledMaintenance mode was turned off
client.saml_config.updatedThe client’s SAML configuration changed
client.saml_attribute_mapper.createdA SAML attribute mapper was added
client.saml_attribute_mapper.deletedA SAML attribute mapper was removed

Redirect URIs and web origins

TriggerDescription
redirect_uri.createdA redirect URI was added to a client
redirect_uri.updatedA redirect URI was modified
redirect_uri.deletedA redirect URI was removed
web_origin.createdA web origin was added to a client
web_origin.deletedA web origin was removed

Roles

TriggerDescription
role.createdA new role was created
role.updatedA role was modified
role.deletedA role was deleted
role.permission.updatedA role’s permission bitmask changed

Realms

TriggerDescription
realm.createdA new realm was created
realm.updatedA realm was modified
realm.deletedA realm was deleted
realm.settings.updatedRealm settings were changed

Webhooks

TriggerDescription
webhook.createdA new webhook was registered
webhook.updatedA webhook was modified
webhook.deletedA webhook was removed

Yes, webhooks about webhooks

Subscribing to webhook lifecycle events is allowed, and it is the only way to audit changes to your webhook configuration from outside.

Choosing what to subscribe to

Start narrow

Subscribe to what you need and nothing more. Every subscription is a network call on every matching event. user.created, user.deleted, and client.deleted are a reasonable starting set.

Pair it with SeaWatch

Triggers and SeaWatch event types overlap without matching. SeaWatch records security audit events, including logins that failed. Webhooks push resource lifecycle events outward. You want both.

Ordering

Events fire in the order they happen within the realm, but delivery is asynchronous. A slow endpoint can receive a later event before it has acknowledged an earlier one, so write your handlers to be idempotent.