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

# Overview

> Architecture for the Clerk Webhook endpoint

## Purpose

Syncs organization member changes to the database automatically when Clerk events occur.

## Handled Events

| Event                            | Action                          |
| -------------------------------- | ------------------------------- |
| `organization.created`           | Create org record, sync members |
| `organization.updated`           | Update org name, sync members   |
| `organization.deleted`           | Clear members                   |
| `organizationMembership.created` | Re-sync all members             |
| `organizationMembership.deleted` | Re-sync all members             |
| `organizationMembership.updated` | Re-sync all members             |

## Architecture

```mermaid theme={null}
flowchart TD
    Clerk["Clerk Webhook"]
    
    subgraph verify [Verification]
        VerifySig["Verify Svix signature"]
    end
    
    subgraph sync [Sync]
        FetchMembers["Fetch members from Clerk"]
        UpdateDB["Update clerk_organization_details"]
    end
    
    Clerk --> VerifySig
    VerifySig --> FetchMembers
    FetchMembers --> UpdateDB
```

## Signature Verification

Uses Svix headers (`svix-id`, `svix-timestamp`, `svix-signature`) and `CLERK_WEBHOOK_SECRET`.

## Code Location

```
src/app/webhooks/clerk_webhook/routes.py
```
