> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clerk Webhook Setup Guide

> Configure Clerk to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](https://docs.stackone.com/connectors/clerk.md#getting-started) on the Clerk connector page.

## Get the Native Webhook URL

StackOne generates a unique **Native Webhook URL** once the account is connected. Find it on the **Native Webhook URL** field in the Linked account.

**1. Copy the Native Webhook URL**

Open the connected account's details in StackOne Hub and copy the value of the **Native Webhook URL** field. This is the address Clerk will send events to.

## Add the endpoint in Clerk

Clerk has no API to create a webhook endpoint — it must be added by hand in the Clerk Dashboard, using the **Add Endpoint** form.

**1. Open the Webhooks page**

Sign in to your [Clerk Dashboard](https://dashboard.clerk.com), select your application and the environment you are connecting, then open **Configure → Developers → Webhooks**.

![The Clerk Dashboard Webhooks page showing an empty endpoint list and the Add Endpoint button](https://mintcdn.com/stackone-60/ZJVvrdfjveKe9xCb/connectors/clerk/images/events-setup-webhooks-page.png?fit=max\&auto=format\&n=ZJVvrdfjveKe9xCb\&q=85\&s=7e1e26cb7d31e92de3028d1b14c5b36e)

**2. Create the endpoint**

Click **+ Add Endpoint**. Paste the Native Webhook URL you copied into the **Endpoint URL** field.

<ul>
  <li>An optional **Description** can be added to identify the endpoint.</li>
</ul>

![The Clerk Add Endpoint form with the Endpoint URL field and event checklist](https://mintcdn.com/stackone-60/ZJVvrdfjveKe9xCb/connectors/clerk/images/events-setup-add-endpoint.png?fit=max\&auto=format\&n=ZJVvrdfjveKe9xCb\&q=85\&s=3b3ef1a03b61a90d06282a9f6065ef55)

**3. Subscribe to events and save**

Under **Subscribe to events**, select every event you want StackOne to receive (see **Available webhook events** below), then click **Create**.

<ul>
  <li>Only events selected here are delivered — Clerk does not send events you have not subscribed to.</li>
  <li>The endpoint's **Signing Secret** is used by StackOne to verify each delivery; you do not need to copy it yourself.</li>
</ul>

![The created Clerk webhook endpoint showing its URL and subscribed events](https://mintcdn.com/stackone-60/ZJVvrdfjveKe9xCb/connectors/clerk/images/events-setup-endpoint-created.png?fit=max\&auto=format\&n=ZJVvrdfjveKe9xCb\&q=85\&s=a08276eb6288908a3727171fea4b4583)

## Available webhook events

The following Clerk events can be enabled. Only events selected in the Clerk Dashboard are delivered — Clerk will not send events that are not subscribed.

**1. User events**

Events related to user accounts.

<ul>
  <li>**User Created** (`user.created`) — Fired when a new user signs up or is created</li>
  <li>**User Updated** (`user.updated`) — Fired when a user's profile data changes</li>
  <li>**User Deleted** (`user.deleted`) — Fired when a user account is removed</li>
</ul>

**2. Session events**

Events related to user sign-in sessions.

<ul>
  <li>**Session Created** (`session.created`) — Fired when a user successfully signs in</li>
  <li>**Session Ended** (`session.ended`) — Fired when a user signs out or their session expires</li>
  <li>**Session Removed** (`session.removed`) — Fired when a session is removed after its sign-ins have ended or expired</li>
  <li>**Session Revoked** (`session.revoked`) — Fired when a session is forcefully terminated</li>
</ul>

**3. Organization events**

Events related to organizations.

<ul>
  <li>**Organization Created** (`organization.created`) — Fired when a new organization is created</li>
  <li>**Organization Updated** (`organization.updated`) — Fired when an organization's settings change</li>
  <li>**Organization Deleted** (`organization.deleted`) — Fired when an organization is deleted</li>
</ul>

**4. Organization domain events**

Events related to verified domains on an organization.

<ul>
  <li>**Organization Domain Created** (`organizationDomain.created`) — Fired when a domain is added to an organization</li>
  <li>**Organization Domain Updated** (`organizationDomain.updated`) — Fired when a domain's verification status or enrollment mode changes</li>
  <li>**Organization Domain Deleted** (`organizationDomain.deleted`) — Fired when a domain is removed from an organization</li>
</ul>

**5. Organization membership events**

Events related to organization members.

<ul>
  <li>**Organization Membership Created** (`organizationMembership.created`) — Fired when a user joins an organization</li>
  <li>**Organization Membership Updated** (`organizationMembership.updated`) — Fired when a membership's role changes</li>
  <li>**Organization Membership Deleted** (`organizationMembership.deleted`) — Fired when a user is removed from an organization</li>
</ul>

**6. Organization invitation events**

Events related to invitations to join an organization.

<ul>
  <li>**Organization Invitation Created** (`organizationInvitation.created`) — Fired when a user is invited to join an organization</li>
  <li>**Organization Invitation Accepted** (`organizationInvitation.accepted`) — Fired when an invited user accepts the invitation</li>
  <li>**Organization Invitation Revoked** (`organizationInvitation.revoked`) — Fired when a pending invitation is revoked</li>
</ul>

**7. Role events**

Events related to organization roles.

<ul>
  <li>**Role Created** (`role.created`) — Fired when a new organization role is created</li>
  <li>**Role Updated** (`role.updated`) — Fired when a role's name, key, description or permissions change</li>
  <li>**Role Deleted** (`role.deleted`) — Fired when an organization role is deleted</li>
</ul>

**8. Permission events**

Events related to custom permissions.

<ul>
  <li>**Permission Created** (`permission.created`) — Fired when a new custom permission is created</li>
  <li>**Permission Updated** (`permission.updated`) — Fired when a custom permission's name, key or description changes</li>
  <li>**Permission Deleted** (`permission.deleted`) — Fired when a custom permission is deleted</li>
</ul>

## Delivery format

Details of how Clerk delivers events to StackOne.

**1. One event per request**

Each request body is a single event object (not batched). Clerk signs every request with Svix (`svix-id`, `svix-timestamp`, `svix-signature` headers), which StackOne verifies before routing the event to its handler.

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.