# Clerk (/integrations/clerk)





{/* MANUAL-CONTENT-START:intro */}

Use [Clerk](https://clerk.com/) to manage application users, organizations, memberships, invitations, and sessions with a Clerk secret key. Read or update profiles, ban or lock users, and revoke sessions from a workflow.

The integration also manages allowlist and blocklist identifiers, JWT templates, and actor tokens. These are backend administration operations; use the action reference to select the operation and required identifiers.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Create, update, delete, ban, lock, and list users. Manage organizations, their memberships, and invitations. Monitor and control user sessions. Maintain allowlist/blocklist identifiers, JWT templates, and actor tokens.

## Actions [#actions]

### List Users from Clerk [#list-users-from-clerk]

List all users in your Clerk application with optional filtering and pagination

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
  | `orderBy` | string | No | Sort field with optional +/- prefix for direction (default: -created\_at) |
  | `emailAddress` | string | No | Filter by email address (e.g., [user@example.com](mailto:user@example.com) or [user1@example.com](mailto:user1@example.com),[user2@example.com](mailto:user2@example.com)) |
  | `phoneNumber` | string | No | Filter by phone number (comma-separated for multiple) |
  | `externalId` | string | No | Filter by external ID (comma-separated for multiple) |
  | `username` | string | No | Filter by username (comma-separated for multiple) |
  | `userId` | string | No | Filter by user ID (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC or comma-separated for multiple) |
  | `query` | string | No | Search query to match across email, phone, username, and names (e.g., john or [john@example.com](mailto:john@example.com)) |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `users` | array | Array of Clerk user objects |
  | ↳ `id` | string | User ID |
  | ↳ `username` | string | Username |
  | ↳ `firstName` | string | First name |
  | ↳ `lastName` | string | Last name |
  | ↳ `imageUrl` | string | Profile image URL |
  | ↳ `hasImage` | boolean | Whether user has a profile image |
  | ↳ `primaryEmailAddressId` | string | Primary email address ID |
  | ↳ `primaryPhoneNumberId` | string | Primary phone number ID |
  | ↳ `emailAddresses` | array | User email addresses |
  | ↳ `id` | string | Email address ID |
  | ↳ `emailAddress` | string | Email address |
  | ↳ `phoneNumbers` | array | User phone numbers |
  | ↳ `id` | string | Phone number ID |
  | ↳ `phoneNumber` | string | Phone number |
  | ↳ `externalId` | string | External system ID |
  | ↳ `passwordEnabled` | boolean | Whether password is enabled |
  | ↳ `twoFactorEnabled` | boolean | Whether 2FA is enabled |
  | ↳ `banned` | boolean | Whether user is banned |
  | ↳ `locked` | boolean | Whether user is locked |
  | ↳ `lastSignInAt` | number | Last sign-in timestamp |
  | ↳ `lastActiveAt` | number | Last activity timestamp |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | ↳ `publicMetadata` | json | Public metadata |
  | `totalCount` | number | Total number of users matching the query |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Get User from Clerk [#get-user-from-clerk]

Retrieve a single user by their ID from Clerk

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to retrieve (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `imageUrl` | string | Profile image URL |
  | `hasImage` | boolean | Whether user has a profile image |
  | `primaryEmailAddressId` | string | Primary email address ID |
  | `primaryPhoneNumberId` | string | Primary phone number ID |
  | `primaryWeb3WalletId` | string | Primary Web3 wallet ID |
  | `emailAddresses` | array | User email addresses |
  | ↳ `id` | string | Email address ID |
  | ↳ `emailAddress` | string | Email address |
  | ↳ `verified` | boolean | Whether email is verified |
  | `phoneNumbers` | array | User phone numbers |
  | ↳ `id` | string | Phone number ID |
  | ↳ `phoneNumber` | string | Phone number |
  | ↳ `verified` | boolean | Whether phone is verified |
  | `externalId` | string | External system ID |
  | `passwordEnabled` | boolean | Whether password is enabled |
  | `twoFactorEnabled` | boolean | Whether 2FA is enabled |
  | `totpEnabled` | boolean | Whether TOTP is enabled |
  | `backupCodeEnabled` | boolean | Whether backup codes are enabled |
  | `banned` | boolean | Whether user is banned |
  | `locked` | boolean | Whether user is locked |
  | `deleteSelfEnabled` | boolean | Whether user can delete themselves |
  | `createOrganizationEnabled` | boolean | Whether user can create organizations |
  | `lastSignInAt` | number | Last sign-in timestamp |
  | `lastActiveAt` | number | Last activity timestamp |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata (readable from frontend) |
  | `privateMetadata` | json | Private metadata (backend only) |
  | `unsafeMetadata` | json | Unsafe metadata (modifiable from frontend) |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create User in Clerk [#create-user-in-clerk]

Create a new user in your Clerk application

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `emailAddress` | string | No | Email addresses for the user (comma-separated for multiple) |
  | `phoneNumber` | string | No | Phone numbers for the user (comma-separated for multiple) |
  | `username` | string | No | Username for the user (must be unique) |
  | `password` | string | No | Password for the user (minimum 8 characters) |
  | `firstName` | string | No | First name of the user |
  | `lastName` | string | No | Last name of the user |
  | `externalId` | string | No | External system identifier (must be unique) |
  | `publicMetadata` | json | No | Public metadata (JSON object, readable from frontend) |
  | `privateMetadata` | json | No | Private metadata (JSON object, backend only) |
  | `unsafeMetadata` | json | No | Unsafe metadata (JSON object, modifiable from frontend) |
  | `skipPasswordChecks` | boolean | No | Skip password validation checks |
  | `skipPasswordRequirement` | boolean | No | Make password optional |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Created user ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `imageUrl` | string | Profile image URL |
  | `primaryEmailAddressId` | string | Primary email address ID |
  | `primaryPhoneNumberId` | string | Primary phone number ID |
  | `emailAddresses` | array | User email addresses |
  | ↳ `id` | string | Email address ID |
  | ↳ `emailAddress` | string | Email address |
  | ↳ `verified` | boolean | Whether email is verified |
  | `phoneNumbers` | array | User phone numbers |
  | ↳ `id` | string | Phone number ID |
  | ↳ `phoneNumber` | string | Phone number |
  | ↳ `verified` | boolean | Whether phone is verified |
  | `externalId` | string | External system ID |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Update User in Clerk [#update-user-in-clerk]

Update an existing user in your Clerk application

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to update (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `firstName` | string | No | First name of the user |
  | `lastName` | string | No | Last name of the user |
  | `username` | string | No | Username (must be unique) |
  | `password` | string | No | New password (minimum 8 characters) |
  | `externalId` | string | No | External system identifier |
  | `primaryEmailAddressId` | string | No | ID of verified email to set as primary |
  | `primaryPhoneNumberId` | string | No | ID of verified phone to set as primary |
  | `publicMetadata` | json | No | Public metadata (JSON object) |
  | `privateMetadata` | json | No | Private metadata (JSON object) |
  | `unsafeMetadata` | json | No | Unsafe metadata (JSON object) |
  | `skipPasswordChecks` | boolean | No | Skip password validation checks |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Updated user ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `imageUrl` | string | Profile image URL |
  | `primaryEmailAddressId` | string | Primary email address ID |
  | `primaryPhoneNumberId` | string | Primary phone number ID |
  | `emailAddresses` | array | User email addresses |
  | ↳ `id` | string | Email address ID |
  | ↳ `emailAddress` | string | Email address |
  | ↳ `verified` | boolean | Whether email is verified |
  | `phoneNumbers` | array | User phone numbers |
  | ↳ `id` | string | Phone number ID |
  | ↳ `phoneNumber` | string | Phone number |
  | ↳ `verified` | boolean | Whether phone is verified |
  | `externalId` | string | External system ID |
  | `banned` | boolean | Whether user is banned |
  | `locked` | boolean | Whether user is locked |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Delete User from Clerk [#delete-user-from-clerk]

Delete a user from your Clerk application

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to delete (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deleted user ID |
  | `object` | string | Object type (user) |
  | `deleted` | boolean | Whether the user was deleted |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Ban User in Clerk [#ban-user-in-clerk]

Ban a user, preventing them from signing in

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to ban (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `banned` | boolean | Whether the user is banned |
  | `locked` | boolean | Whether the user is locked |
  | `lockoutExpiresInSeconds` | number | Seconds until lockout expires |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Unban User in Clerk [#unban-user-in-clerk]

Remove a ban from a user, allowing them to sign in again

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to unban (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `banned` | boolean | Whether the user is banned |
  | `locked` | boolean | Whether the user is locked |
  | `lockoutExpiresInSeconds` | number | Seconds until lockout expires |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Lock User in Clerk [#lock-user-in-clerk]

Lock a user account, blocking sign-in attempts

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to lock (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `banned` | boolean | Whether the user is banned |
  | `locked` | boolean | Whether the user is locked |
  | `lockoutExpiresInSeconds` | number | Seconds until lockout expires |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Unlock User in Clerk [#unlock-user-in-clerk]

Unlock a previously locked user account

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user to unlock (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `username` | string | Username |
  | `firstName` | string | First name |
  | `lastName` | string | Last name |
  | `banned` | boolean | Whether the user is banned |
  | `locked` | boolean | Whether the user is locked |
  | `lockoutExpiresInSeconds` | number | Seconds until lockout expires |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Get User OAuth Access Token from Clerk [#get-user-oauth-access-token-from-clerk]

Retrieve a user's OAuth access token for a connected external provider (e.g. Google, GitHub, Microsoft) obtained via Clerk SSO

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | The ID of the user (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `provider` | string | Yes | OAuth provider slug, e.g. google, github, microsoft, discord (without the oauth\_ prefix) |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `accessTokens` | array | OAuth access tokens for the connected provider |
  | ↳ `externalAccountId` | string | External account ID |
  | ↳ `token` | string | OAuth access token |
  | ↳ `expiresAt` | number | Expiration timestamp |
  | ↳ `provider` | string | OAuth provider slug |
  | ↳ `label` | string | Token label |
  | ↳ `scopes` | array | OAuth scopes granted to the token |
  | ↳ `publicMetadata` | json | Public metadata associated with the token |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Organizations from Clerk [#list-organizations-from-clerk]

List all organizations in your Clerk application with optional filtering

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
  | `includeMembersCount` | boolean | No | Include member count for each organization |
  | `query` | string | No | Search by organization ID, name, or slug (e.g., Acme Corp or acme-corp) |
  | `orderBy` | string | No | Sort field (name, created\_at, members\_count) with +/- prefix |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `organizations` | array | Array of Clerk organization objects |
  | ↳ `id` | string | Organization ID |
  | ↳ `name` | string | Organization name |
  | ↳ `slug` | string | Organization slug |
  | ↳ `imageUrl` | string | Organization image URL |
  | ↳ `hasImage` | boolean | Whether organization has an image |
  | ↳ `membersCount` | number | Number of members |
  | ↳ `pendingInvitationsCount` | number | Number of pending invitations |
  | ↳ `maxAllowedMemberships` | number | Max allowed memberships |
  | ↳ `adminDeleteEnabled` | boolean | Whether admin delete is enabled |
  | ↳ `createdBy` | string | Creator user ID |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | ↳ `publicMetadata` | json | Public metadata |
  | `totalCount` | number | Total number of organizations |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Get Organization from Clerk [#get-organization-from-clerk]

Retrieve a single organization by ID or slug from Clerk

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID or slug of the organization to retrieve (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC or my-org-slug) |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Organization ID |
  | `name` | string | Organization name |
  | `slug` | string | Organization slug |
  | `imageUrl` | string | Organization image URL |
  | `hasImage` | boolean | Whether organization has an image |
  | `membersCount` | number | Number of members |
  | `pendingInvitationsCount` | number | Number of pending invitations |
  | `maxAllowedMemberships` | number | Max allowed memberships |
  | `adminDeleteEnabled` | boolean | Whether admin delete is enabled |
  | `createdBy` | string | Creator user ID |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create Organization in Clerk [#create-organization-in-clerk]

Create a new organization in your Clerk application

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `name` | string | Yes | Name of the organization |
  | `createdBy` | string | Yes | User ID of the creator who will become admin (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `slug` | string | No | Slug identifier for the organization |
  | `maxAllowedMemberships` | number | No | Maximum member capacity (0 for unlimited) |
  | `publicMetadata` | json | No | Public metadata (JSON object) |
  | `privateMetadata` | json | No | Private metadata (JSON object) |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Created organization ID |
  | `name` | string | Organization name |
  | `slug` | string | Organization slug |
  | `imageUrl` | string | Organization image URL |
  | `hasImage` | boolean | Whether organization has an image |
  | `membersCount` | number | Number of members |
  | `pendingInvitationsCount` | number | Number of pending invitations |
  | `maxAllowedMemberships` | number | Max allowed memberships |
  | `adminDeleteEnabled` | boolean | Whether admin delete is enabled |
  | `createdBy` | string | Creator user ID |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Update Organization in Clerk [#update-organization-in-clerk]

Update an existing organization in your Clerk application

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization to update (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `name` | string | No | Name of the organization |
  | `slug` | string | No | Slug identifier for the organization |
  | `maxAllowedMemberships` | number | No | Maximum member capacity (0 for unlimited) |
  | `adminDeleteEnabled` | boolean | No | Whether admins can delete the organization |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Organization ID |
  | `name` | string | Organization name |
  | `slug` | string | Organization slug |
  | `imageUrl` | string | Organization image URL |
  | `hasImage` | boolean | Whether organization has an image |
  | `membersCount` | number | Number of members |
  | `pendingInvitationsCount` | number | Number of pending invitations |
  | `maxAllowedMemberships` | number | Max allowed memberships |
  | `adminDeleteEnabled` | boolean | Whether admin delete is enabled |
  | `createdBy` | string | Creator user ID |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `publicMetadata` | json | Public metadata |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Delete Organization from Clerk [#delete-organization-from-clerk]

Delete an organization from your Clerk application

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization to delete (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deleted organization ID |
  | `object` | string | Object type (organization) |
  | `deleted` | boolean | Whether the organization was deleted |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Organization Memberships from Clerk [#list-organization-memberships-from-clerk]

List members of a Clerk organization with optional filtering and pagination

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
  | `orderBy` | string | No | Sort field (e.g., created\_at) with +/- prefix for direction |
  | `role` | string | No | Filter by role, comma-separated for multiple (e.g., org:admin,org:member) |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `memberships` | array | Array of Clerk organization membership objects |
  | ↳ `id` | string | Membership ID |
  | ↳ `role` | string | Member role |
  | ↳ `roleName` | string | Human-readable role name |
  | ↳ `permissions` | array | Permissions granted by the role |
  | ↳ `organizationId` | string | Organization ID |
  | ↳ `userId` | string | Member user ID |
  | ↳ `firstName` | string | Member first name |
  | ↳ `lastName` | string | Member last name |
  | ↳ `imageUrl` | string | Member profile image URL |
  | ↳ `identifier` | string | Member identifier (e.g., email) |
  | ↳ `username` | string | Member username |
  | ↳ `banned` | boolean | Whether the member is banned |
  | ↳ `publicMetadata` | json | Public metadata |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of memberships |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Add Organization Member in Clerk [#add-organization-member-in-clerk]

Add a user as a member of a Clerk organization with a given role

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `userId` | string | Yes | ID of the user to add as a member |
  | `role` | string | Yes | Role to assign, e.g. org:admin or org:member |

  #### Output [#output-16]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Membership ID |
  | `role` | string | Member role |
  | `roleName` | string | Human-readable role name |
  | `permissions` | array | Permissions granted by the role |
  | `organizationId` | string | Organization ID |
  | `userId` | string | Member user ID |
  | `firstName` | string | Member first name |
  | `lastName` | string | Member last name |
  | `imageUrl` | string | Member profile image URL |
  | `identifier` | string | Member identifier (e.g., email) |
  | `username` | string | Member username |
  | `banned` | boolean | Whether the member is banned |
  | `publicMetadata` | json | Public metadata |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Update Organization Membership in Clerk [#update-organization-membership-in-clerk]

Change a member's role within a Clerk organization

<ReferenceDetails>
  #### Input [#input-17]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `userId` | string | Yes | ID of the member whose role is being changed |
  | `role` | string | Yes | New role to assign, e.g. org:admin or org:member |

  #### Output [#output-17]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Membership ID |
  | `role` | string | Member role |
  | `roleName` | string | Human-readable role name |
  | `permissions` | array | Permissions granted by the role |
  | `organizationId` | string | Organization ID |
  | `userId` | string | Member user ID |
  | `firstName` | string | Member first name |
  | `lastName` | string | Member last name |
  | `imageUrl` | string | Member profile image URL |
  | `identifier` | string | Member identifier (e.g., email) |
  | `username` | string | Member username |
  | `banned` | boolean | Whether the member is banned |
  | `publicMetadata` | json | Public metadata |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Remove Organization Member from Clerk [#remove-organization-member-from-clerk]

Remove a member from a Clerk organization

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `userId` | string | Yes | ID of the member to remove |

  #### Output [#output-18]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Membership ID |
  | `role` | string | Member role |
  | `roleName` | string | Human-readable role name |
  | `permissions` | array | Permissions granted by the role |
  | `organizationId` | string | Organization ID |
  | `userId` | string | Member user ID |
  | `firstName` | string | Member first name |
  | `lastName` | string | Member last name |
  | `imageUrl` | string | Member profile image URL |
  | `identifier` | string | Member identifier (e.g., email) |
  | `username` | string | Member username |
  | `banned` | boolean | Whether the member is banned |
  | `publicMetadata` | json | Public metadata |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create Organization Invitation in Clerk [#create-organization-invitation-in-clerk]

Invite a user by email to join a Clerk organization with a given role

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `emailAddress` | string | Yes | Email address of the user to invite |
  | `role` | string | Yes | Role to assign on acceptance, e.g. org:admin or org:member |
  | `inviterUserId` | string | No | User ID of the inviter |
  | `redirectUrl` | string | No | URL to redirect to after the invitation is accepted |
  | `expiresInDays` | number | No | Days until the invitation expires (1-365, default 30) |
  | `publicMetadata` | json | No | Public metadata (JSON object) |
  | `privateMetadata` | json | No | Private metadata (JSON object) |
  | `notify` | boolean | No | Whether Clerk sends the invitation email (default true) |

  #### Output [#output-19]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Invitation ID |
  | `emailAddress` | string | Invited email address |
  | `role` | string | Role to assign on acceptance |
  | `roleName` | string | Human-readable role name |
  | `organizationId` | string | Organization ID |
  | `inviterId` | string | User ID of the inviter |
  | `inviterEmail` | string | Inviter's email address |
  | `inviterFirstName` | string | Inviter's first name |
  | `inviterLastName` | string | Inviter's last name |
  | `status` | string | Invitation status |
  | `url` | string | Invitation URL |
  | `expiresAt` | number | Expiration timestamp |
  | `publicMetadata` | json | Public metadata |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Organization Invitations from Clerk [#list-organization-invitations-from-clerk]

List pending and past invitations for a Clerk organization

<ReferenceDetails>
  #### Input [#input-20]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `organizationId` | string | Yes | The ID of the organization (e.g., org\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
  | `status` | string | No | Filter by status: pending, accepted, revoked, or expired |
  | `emailAddress` | string | No | Filter by invited email address |
  | `orderBy` | string | No | Sort field (created\_at, email\_address) with +/- prefix (default: -created\_at) |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |

  #### Output [#output-20]

  | Parameter | Type | Description |
  | - | - | - |
  | `invitations` | array | Array of Clerk organization invitation objects |
  | ↳ `id` | string | Invitation ID |
  | ↳ `emailAddress` | string | Invited email address |
  | ↳ `role` | string | Role to assign on acceptance |
  | ↳ `roleName` | string | Human-readable role name |
  | ↳ `organizationId` | string | Organization ID |
  | ↳ `inviterId` | string | User ID of the inviter |
  | ↳ `inviterEmail` | string | Inviter's email address |
  | ↳ `inviterFirstName` | string | Inviter's first name |
  | ↳ `inviterLastName` | string | Inviter's last name |
  | ↳ `status` | string | Invitation status |
  | ↳ `url` | string | Invitation URL |
  | ↳ `expiresAt` | number | Expiration timestamp |
  | ↳ `publicMetadata` | json | Public metadata |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of invitations |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Sessions from Clerk [#list-sessions-from-clerk]

List sessions for a user or client in your Clerk application

<ReferenceDetails>
  #### Input [#input-21]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | No | User ID to list sessions for (e.g., user\_2NNEqL2nrIRdJ194ndJqAHwEfxC; required if clientId not provided) |
  | `clientId` | string | No | Client ID to list sessions for (required if userId not provided) |
  | `status` | string | No | Filter by session status (abandoned, active, ended, expired, pending, removed, replaced, revoked) |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |

  #### Output [#output-21]

  | Parameter | Type | Description |
  | - | - | - |
  | `sessions` | array | Array of Clerk session objects |
  | ↳ `id` | string | Session ID |
  | ↳ `userId` | string | User ID |
  | ↳ `clientId` | string | Client ID |
  | ↳ `status` | string | Session status |
  | ↳ `lastActiveAt` | number | Last activity timestamp |
  | ↳ `lastActiveOrganizationId` | string | Last active organization ID |
  | ↳ `expireAt` | number | Expiration timestamp |
  | ↳ `abandonAt` | number | Abandon timestamp |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of sessions |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Get Session from Clerk [#get-session-from-clerk]

Retrieve a single session by ID from Clerk

<ReferenceDetails>
  #### Input [#input-22]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `sessionId` | string | Yes | The ID of the session to retrieve (e.g., sess\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-22]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Session ID |
  | `userId` | string | User ID |
  | `clientId` | string | Client ID |
  | `status` | string | Session status |
  | `lastActiveAt` | number | Last activity timestamp |
  | `lastActiveOrganizationId` | string | Last active organization ID |
  | `expireAt` | number | Expiration timestamp |
  | `abandonAt` | number | Abandon timestamp |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Revoke Session in Clerk [#revoke-session-in-clerk]

Revoke a session to immediately invalidate it

<ReferenceDetails>
  #### Input [#input-23]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `sessionId` | string | Yes | The ID of the session to revoke (e.g., sess\_2NNEqL2nrIRdJ194ndJqAHwEfxC) |

  #### Output [#output-23]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Session ID |
  | `userId` | string | User ID |
  | `clientId` | string | Client ID |
  | `status` | string | Session status (should be revoked) |
  | `lastActiveAt` | number | Last activity timestamp |
  | `lastActiveOrganizationId` | string | Last active organization ID |
  | `expireAt` | number | Expiration timestamp |
  | `abandonAt` | number | Abandon timestamp |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Allowlist Identifiers from Clerk [#list-allowlist-identifiers-from-clerk]

List email/phone/web3-wallet identifiers on your Clerk instance allowlist

<ReferenceDetails>
  #### Input [#input-24]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `limit` | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
  | `offset` | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |

  #### Output [#output-24]

  | Parameter | Type | Description |
  | - | - | - |
  | `identifiers` | array | Array of Clerk allowlist identifier objects |
  | ↳ `id` | string | Allowlist identifier ID |
  | ↳ `identifier` | string | Email, phone, or web3 wallet identifier |
  | ↳ `identifierType` | string | Type of identifier |
  | ↳ `invitationId` | string | Associated invitation ID |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of allowlist identifiers |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create Allowlist Identifier in Clerk [#create-allowlist-identifier-in-clerk]

Add an email, phone number, or web3 wallet to your Clerk instance allowlist

<ReferenceDetails>
  #### Input [#input-25]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `identifier` | string | Yes | Email address, phone number, or web3 wallet to allow (wildcards like \*@example.com supported for email) |
  | `notify` | boolean | No | Whether to notify the identifier owner by email (default false) |

  #### Output [#output-25]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Allowlist identifier ID |
  | `identifier` | string | Email, phone, or web3 wallet identifier |
  | `identifierType` | string | Type of identifier |
  | `invitationId` | string | Associated invitation ID |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Delete Allowlist Identifier from Clerk [#delete-allowlist-identifier-from-clerk]

Remove an identifier from your Clerk instance allowlist

<ReferenceDetails>
  #### Input [#input-26]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `identifierId` | string | Yes | ID of the allowlist identifier to delete |

  #### Output [#output-26]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deleted allowlist identifier ID |
  | `object` | string | Object type (allowlist\_identifier) |
  | `deleted` | boolean | Whether the identifier was deleted |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List Blocklist Identifiers from Clerk [#list-blocklist-identifiers-from-clerk]

List email/phone/web3-wallet identifiers on your Clerk instance blocklist

<ReferenceDetails>
  #### Input [#input-27]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |

  #### Output [#output-27]

  | Parameter | Type | Description |
  | - | - | - |
  | `identifiers` | array | Array of Clerk blocklist identifier objects |
  | ↳ `id` | string | Blocklist identifier ID |
  | ↳ `identifier` | string | Email, phone, or web3 wallet identifier |
  | ↳ `identifierType` | string | Type of identifier |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of blocklist identifiers |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create Blocklist Identifier in Clerk [#create-blocklist-identifier-in-clerk]

Add an email, phone number, or web3 wallet to your Clerk instance blocklist to prevent sign-ups

<ReferenceDetails>
  #### Input [#input-28]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `identifier` | string | Yes | Email address, phone number, or web3 wallet to block |

  #### Output [#output-28]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Blocklist identifier ID |
  | `identifier` | string | Email, phone, or web3 wallet identifier |
  | `identifierType` | string | Type of identifier |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Delete Blocklist Identifier from Clerk [#delete-blocklist-identifier-from-clerk]

Remove an identifier from your Clerk instance blocklist

<ReferenceDetails>
  #### Input [#input-29]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `identifierId` | string | Yes | ID of the blocklist identifier to delete |

  #### Output [#output-29]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deleted blocklist identifier ID |
  | `object` | string | Object type (blocklist\_identifier) |
  | `deleted` | boolean | Whether the identifier was deleted |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### List JWT Templates from Clerk [#list-jwt-templates-from-clerk]

List custom JWT templates configured on your Clerk instance

<ReferenceDetails>
  #### Input [#input-30]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |

  #### Output [#output-30]

  | Parameter | Type | Description |
  | - | - | - |
  | `templates` | array | Array of Clerk JWT template objects |
  | ↳ `id` | string | JWT template ID |
  | ↳ `name` | string | JWT template name |
  | ↳ `claims` | json | Custom claims defined on the template |
  | ↳ `lifetime` | number | Token lifetime in seconds |
  | ↳ `allowedClockSkew` | number | Allowed clock skew in seconds |
  | ↳ `customSigningKey` | boolean | Whether a custom signing key is configured |
  | ↳ `signingAlgorithm` | string | Signing algorithm used |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `totalCount` | number | Total number of JWT templates |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Get JWT Template from Clerk [#get-jwt-template-from-clerk]

Retrieve a single custom JWT template by ID from Clerk

<ReferenceDetails>
  #### Input [#input-31]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `templateId` | string | Yes | ID of the JWT template to retrieve |

  #### Output [#output-31]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | JWT template ID |
  | `name` | string | JWT template name |
  | `claims` | json | Custom claims defined on the template |
  | `lifetime` | number | Token lifetime in seconds |
  | `allowedClockSkew` | number | Allowed clock skew in seconds |
  | `customSigningKey` | boolean | Whether a custom signing key is configured |
  | `signingAlgorithm` | string | Signing algorithm used |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Create Actor Token in Clerk [#create-actor-token-in-clerk]

Create an actor token to impersonate a user (God Mode / act-as-user), e.g. for support tooling

<ReferenceDetails>
  #### Input [#input-32]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `userId` | string | Yes | ID of the user to impersonate |
  | `actor` | json | Yes | Actor JSON object identifying who is impersonating, must include a "sub" field, e.g. \{"sub": "user\_support\_agent\_id"} |
  | `expiresInSeconds` | number | No | Seconds until the token expires (default 3600) |
  | `sessionMaxDurationInSeconds` | number | No | Max duration in seconds for sessions created with this token (default 1800) |

  #### Output [#output-32]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Actor token ID |
  | `status` | string | Actor token status |
  | `userId` | string | ID of the impersonated user |
  | `actor` | json | Actor object identifying who is impersonating |
  | `token` | string | Signed actor token (JWT) |
  | `url` | string | Sign-in URL for the actor token |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

### Revoke Actor Token in Clerk [#revoke-actor-token-in-clerk]

Revoke an actor token before it is used or expires

<ReferenceDetails>
  #### Input [#input-33]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `secretKey` | string | Yes | The Clerk Secret Key for API authentication |
  | `actorTokenId` | string | Yes | ID of the actor token to revoke |

  #### Output [#output-33]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Actor token ID |
  | `status` | string | Actor token status (should be revoked) |
  | `userId` | string | ID of the impersonated user |
  | `actor` | json | Actor object identifying who is impersonating |
  | `token` | string | Signed actor token (JWT) |
  | `url` | string | Sign-in URL for the actor token |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `success` | boolean | Operation success status |
</ReferenceDetails>

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

### Clerk Organization Created [#clerk-organization-created]

Trigger workflow when a Clerk organization is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-34]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `organizationId` | string | Clerk organization ID (data.id) |
  | `name` | string | Organization name (data.name) |
  | `slug` | string | Organization slug (data.slug) |
  | `createdBy` | string | User ID of the creator (data.created\_by) |
  | `membersCount` | number | Number of members (data.members\_count) |
  | `maxAllowedMemberships` | number | Maximum allowed memberships (data.max\_allowed\_memberships) |
  | `createdAt` | number | Organization creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Organization Deleted [#clerk-organization-deleted]

Trigger workflow when a Clerk organization is deleted

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-35]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `organizationId` | string | Deleted Clerk organization ID (data.id) |
  | `deleted` | boolean | Whether the organization was deleted (data.deleted) |
</ReferenceDetails>

### Clerk Organization Membership Created [#clerk-organization-membership-created]

Trigger workflow when a Clerk organization membership is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-36]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `membershipId` | string | Membership ID (data.id) |
  | `role` | string | Membership role, e.g. org:admin (data.role) |
  | `organizationId` | string | Organization ID (data.organization.id) |
  | `userId` | string | User ID of the member (data.public\_user\_data.user\_id) |
  | `createdAt` | number | Membership creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Organization Membership Deleted [#clerk-organization-membership-deleted]

Trigger workflow when a Clerk organization membership is deleted

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-37]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `membershipId` | string | Deleted membership ID (data.id) |
  | `deleted` | boolean | Whether the membership was deleted (data.deleted) |
</ReferenceDetails>

### Clerk Organization Membership Updated [#clerk-organization-membership-updated]

Trigger workflow when a Clerk organization membership is updated

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-38]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `membershipId` | string | Membership ID (data.id) |
  | `role` | string | Membership role, e.g. org:admin (data.role) |
  | `organizationId` | string | Organization ID (data.organization.id) |
  | `userId` | string | User ID of the member (data.public\_user\_data.user\_id) |
  | `createdAt` | number | Membership creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Organization Updated [#clerk-organization-updated]

Trigger workflow when a Clerk organization is updated

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-39]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `organizationId` | string | Clerk organization ID (data.id) |
  | `name` | string | Organization name (data.name) |
  | `slug` | string | Organization slug (data.slug) |
  | `createdBy` | string | User ID of the creator (data.created\_by) |
  | `membersCount` | number | Number of members (data.members\_count) |
  | `maxAllowedMemberships` | number | Maximum allowed memberships (data.max\_allowed\_memberships) |
  | `createdAt` | number | Organization creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Session Created [#clerk-session-created]

Trigger workflow when a Clerk session is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-40]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `sessionId` | string | Clerk session ID (data.id) |
  | `userId` | string | User the session belongs to (data.user\_id) |
  | `clientId` | string | Client ID for the session (data.client\_id) |
  | `status` | string | Session status (data.status) |
  | `createdAt` | number | Session creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Session Ended [#clerk-session-ended]

Trigger workflow when a Clerk session ends

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-41]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `sessionId` | string | Clerk session ID (data.id) |
  | `userId` | string | User the session belongs to (data.user\_id) |
  | `clientId` | string | Client ID for the session (data.client\_id) |
  | `status` | string | Session status (data.status) |
  | `createdAt` | number | Session creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Session Removed [#clerk-session-removed]

Trigger workflow when a Clerk session is removed

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-42]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `sessionId` | string | Clerk session ID (data.id) |
  | `userId` | string | User the session belongs to (data.user\_id) |
  | `clientId` | string | Client ID for the session (data.client\_id) |
  | `status` | string | Session status (data.status) |
  | `createdAt` | number | Session creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk Session Revoked [#clerk-session-revoked]

Trigger workflow when a Clerk session is revoked

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-43]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `sessionId` | string | Clerk session ID (data.id) |
  | `userId` | string | User the session belongs to (data.user\_id) |
  | `clientId` | string | Client ID for the session (data.client\_id) |
  | `status` | string | Session status (data.status) |
  | `createdAt` | number | Session creation timestamp (data.created\_at) |
</ReferenceDetails>

### Clerk User Created [#clerk-user-created]

Trigger workflow when a Clerk user is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-44]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `userId` | string | Clerk user ID (data.id) |
  | `firstName` | string | User's first name |
  | `lastName` | string | User's last name |
  | `username` | string | User's username |
  | `imageUrl` | string | Profile image URL |
  | `primaryEmailAddressId` | string | Primary email address ID |
  | `emailAddresses` | json | Array of email address objects |
  | `phoneNumbers` | json | Array of phone number objects |
  | `externalId` | string | External system ID linked to the user |
  | `createdAt` | number | User creation timestamp (data.created\_at) |
  | `updatedAt` | number | User last update timestamp (data.updated\_at) |
</ReferenceDetails>

### Clerk User Deleted [#clerk-user-deleted]

Trigger workflow when a Clerk user is deleted

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-45]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `userId` | string | Deleted Clerk user ID (data.id) |
  | `deleted` | boolean | Whether the user was deleted (data.deleted) |
</ReferenceDetails>

### Clerk User Updated [#clerk-user-updated]

Trigger workflow when a Clerk user is updated

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-46]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
  | `userId` | string | Clerk user ID (data.id) |
  | `firstName` | string | User's first name |
  | `lastName` | string | User's last name |
  | `username` | string | User's username |
  | `imageUrl` | string | Profile image URL |
  | `primaryEmailAddressId` | string | Primary email address ID |
  | `emailAddresses` | json | Array of email address objects |
  | `phoneNumbers` | json | Array of phone number objects |
  | `externalId` | string | External system ID linked to the user |
  | `createdAt` | number | User creation timestamp (data.created\_at) |
  | `updatedAt` | number | User last update timestamp (data.updated\_at) |
</ReferenceDetails>

### Clerk Webhook [#clerk-webhook]

Trigger workflow on any Clerk webhook event

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `signingSecret` | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |

  #### Output [#output-47]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., user.created, session.created) |
  | `object` | string | Always "event" |
  | `timestamp` | number | Timestamp in milliseconds when the event occurred |
  | `instance_id` | string | Identifier of your Clerk instance |
  | `data` | json | Raw event `data` object (shape varies by event type) |
</ReferenceDetails>
