Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

SSO connection events

Webhook events Scalekit sends when an organization's SSO connection is created, enabled, disabled or deleted, with sample payloads and fields.

Scalekit sends a webhook when an organization’s SSO connection is created, enabled, disabled or deleted. Use these events to keep your app’s record of which organizations can sign in with SSO in step with Scalekit, for example to show or hide an SSO button or to require SSO for an organization’s users.

To receive them, add an endpoint in Developers > Webhooks and select the events. See Implement webhooks, and verify every delivery as described in Verify webhook signatures.

EventSent when
organization.sso_createdAn SSO connection is created for an organization
organization.sso_enabledAn SSO connection is enabled, so the organization’s users can sign in with it
organization.sso_disabledAn SSO connection is disabled, so its users can no longer sign in with it
organization.sso_deletedAn SSO connection is deleted

Scalekit doesn’t send a webhook when a connection’s configuration changes, such as its IdP metadata, certificate or attribute mapping. To read a connection’s current configuration, call Get connection details. For how IdP certificate rotation works, see Certificate expiry and rotation.

Every SSO connection event has the same top-level fields. The connection is in data. Keys can arrive in any order, so parse the body as JSON rather than matching it as text.

FieldTypeDescription
spec_versionstringWebhook payload version. Currently "1"
idstringUnique event ID, prefixed with evt_. Use it to ignore duplicate deliveries
typestringEvent type, such as organization.sso_enabled
occurred_atstringWhen the event occurred, in RFC 3339 format
environment_idstringEnvironment the event belongs to
organization_idstringOrganization the connection belongs to
objectstringAlways Connection
dataobjectThe connection. All four events carry the same fields
FieldTypeDescription
idstringConnection ID, prefixed with conn_. It’s the connection_id you pass in an authorization URL
organization_idstringOrganization that owns the connection
connection_typestringSAML or OIDC
providerstringIdentity provider, such as OKTA or MICROSOFT_AD
enabledboolean or nullWhether users can sign in with the connection. null when the value wasn’t recorded with the event
statusstring or nullSetup progress: DRAFT, IN_PROGRESS or COMPLETED. null when the value wasn’t recorded with the event

Sent when an SSO connection is created for an organization, from the dashboard, the admin portal or the API. A new connection is usually disabled and in DRAFT until your customer’s IT admin finishes setup and enables it.

organization.sso_created
{
"spec_version": "1",
"id": "evt_94567862441607493",
"type": "organization.sso_created",
"occurred_at": "2025-10-14T09:27:18.488720586Z",
"environment_id": "env_74418471961625391",
"organization_id": "org_83544995172188677",
"object": "Connection",
"data": {
"id": "conn_94567862424830277",
"organization_id": "org_83544995172188677",
"connection_type": "OIDC",
"provider": "OKTA",
"enabled": false,
"status": "DRAFT"
}
}

Sent when an SSO connection is enabled. From now on, the organization’s users can sign in through it.

organization.sso_enabled
{
"spec_version": "1",
"id": "evt_94568078213382471",
"type": "organization.sso_enabled",
"occurred_at": "2025-10-14T09:29:27.098914861Z",
"environment_id": "env_74418471961625391",
"organization_id": "org_83544995172188677",
"object": "Connection",
"data": {
"id": "conn_94567862424830277",
"organization_id": "org_83544995172188677",
"connection_type": "OIDC",
"provider": "OKTA",
"enabled": true,
"status": "COMPLETED"
}
}

Sent when an SSO connection is disabled. Sign-in requests that target this connection now fail with connection_not_active or no_active_connections (see the error reference), so route the organization’s users to another sign-in method until it’s enabled again.

organization.sso_disabled
{
"spec_version": "1",
"id": "evt_94557976165089560",
"type": "organization.sso_disabled",
"occurred_at": "2025-10-14T07:49:05.809554456Z",
"environment_id": "env_74418471961625391",
"organization_id": "org_83544995172188677",
"object": "Connection",
"data": {
"id": "conn_83545002856153607",
"organization_id": "org_83544995172188677",
"connection_type": "OIDC",
"provider": "OKTA",
"enabled": false,
"status": "COMPLETED"
}
}

Sent when an SSO connection is deleted. If your customer creates a new connection, it has a new connection ID, so the sub of their users changes. See Choose a stable user identifier.

organization.sso_deleted
{
"spec_version": "1",
"id": "evt_94557997639926040",
"type": "organization.sso_deleted",
"occurred_at": "2025-10-14T07:49:18.604546332Z",
"environment_id": "env_74418471961625391",
"organization_id": "org_83544995172188677",
"object": "Connection",
"data": {
"id": "conn_83545002856153607",
"organization_id": "org_83544995172188677",
"connection_type": "OIDC",
"provider": "OKTA",
"enabled": false,
"status": "COMPLETED"
}
}