[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-clerk-clerk-webhooks":3,"mdc-27j1ry-key":34,"related-org-clerk-clerk-webhooks":6811,"related-repo-clerk-clerk-webhooks":6999},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"clerk-webhooks","implement Clerk webhooks for data syncing","Clerk webhooks for real-time events and data syncing. Verify with verifyWebhook from the framework-specific package. Handle user, session, organization, billing, and payment events. Build event-driven features like database sync, notifications, and integrations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"clerk","Clerk","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fclerk.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Backend","backend","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"API Development","api-development",{"name":21,"slug":22,"type":15},"Webhooks","webhooks",59,"https:\u002F\u002Fgithub.com\u002Fclerk\u002Fskills","2026-07-18T05:12:25.403914","MIT",4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI Skills to enhance working with Clerk","https:\u002F\u002Fgithub.com\u002Fclerk\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ffeatures\u002Fclerk-webhooks","---\nname: clerk-webhooks\ndescription: Clerk webhooks for real-time events and data syncing. Verify with verifyWebhook\n  from the framework-specific package. Handle user, session, organization, billing, and\n  payment events. Build event-driven features like database sync, notifications, and\n  integrations.\nallowed-tools: WebFetch\nlicense: MIT\nmetadata:\n  author: clerk\n  version: 1.2.0\ncompatibility: Requires CLERK_WEBHOOK_SIGNING_SECRET (svix signing secret from Clerk dashboard)\n---\n\n# Webhooks\n\nOutput complete, working webhook handlers with `verifyWebhook(req)` verification in every handler.\n\n## When to Use Webhooks\n\nWebhooks are **asynchronous and eventually consistent**. Delivery is fast but not guaranteed to be immediate, and may occasionally fail (Svix retries on a fixed schedule). Use them for:\n\n- Database sync (a separate users \u002F orgs table that follows Clerk)\n- Notifications (welcome emails, Slack pings, internal alerts)\n- Integrations triggered by lifecycle events\n\nDo NOT rely on webhook delivery as part of a synchronous flow such as onboarding (\"user signs up, then we read X from our DB\"). For data the user just created, read it from the [Clerk session token](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fguides\u002Fsessions\u002Fsession-tokens) or call the Backend API directly. Webhooks fill the gap when you need data about *other* users or events the session token doesn't carry.\n\n## Verify Every Webhook\n\nUse `verifyWebhook(req)` from the framework-specific package (`@clerk\u002Fnextjs\u002Fwebhooks`, `@clerk\u002Fexpress\u002Fwebhooks`, etc.). It reads `CLERK_WEBHOOK_SIGNING_SECRET` automatically and throws on bad signatures. Skipping verification, even for notification-only handlers, exposes the endpoint to spoofed events.\n\n## Make the Webhook Route Public\n\nWebhook routes must be excluded from Clerk middleware protection. Without this, Clerk returns 401.\n\n```typescript\n\u002F\u002F proxy.ts (Next.js \u003C=15: middleware.ts)\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver'\n\nconst isPublicRoute = createRouteMatcher(['\u002Fapi\u002Fwebhooks(.*)'])\n\nexport default clerkMiddleware(async (auth, req) => {\n  if (!isPublicRoute(req)) await auth.protect()\n})\n```\n\n## Complete Webhook Handler (Next.js App Router)\n\n```typescript\n\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { db } from '@\u002Flib\u002Fdb'\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F ALWAYS verify - never skip, even for notification-only handlers\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET automatically\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  if (evt.type === 'user.created') {\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    const name = `${first_name ?? ''} ${last_name ?? ''}`.trim()\n    await db.users.create({ data: { clerkId: id, email, name } })\n  }\n\n  if (evt.type === 'user.updated') {\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    await db.users.update({ where: { clerkId: id }, data: { email, first_name, last_name } })\n  }\n\n  if (evt.type === 'user.deleted') {\n    const { id } = evt.data\n    await db.users.delete({ where: { clerkId: id } })\n  }\n\n  if (evt.type === 'organizationMembership.created') {\n    const { organization, public_user_data, role } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n    await db.teamMembers.create({ data: { orgId, userId, role } })\n  }\n\n  if (evt.type === 'organizationMembership.deleted') {\n    const { organization, public_user_data } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n    await db.teamMembers.delete({ where: { orgId_userId: { orgId, userId } } })\n  }\n\n  return new Response('OK', { status: 200 })\n}\n```\n\n## Full Example: Welcome Email (Resend) + Slack Notification on user.created\n\nNotification-only handlers still verify the signature. Same pattern as the database-sync handler:\n\n```typescript\n\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { Resend } from 'resend'\n\nconst resend = new Resend(process.env.RESEND_API_KEY)\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F Step 1: ALWAYS verify the webhook signature - NEVER skip this\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET env var\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  \u002F\u002F Step 2: Listen for user.created event\n  if (evt.type === 'user.created') {\n    \u002F\u002F Step 3: Extract user email and name from webhook payload\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    const name = `${first_name ?? ''} ${last_name ?? ''}`.trim()\n\n    \u002F\u002F Step 4: Call Resend API to send welcome email\n    await resend.emails.send({\n      from: 'noreply@yourdomain.com',\n      to: email,\n      subject: 'Welcome!',\n      html: `\u003Cp>Hi ${name}, welcome to our app!\u003C\u002Fp>`,\n    })\n\n    \u002F\u002F Step 5: Post notification to Slack channel\n    await fetch(process.env.SLACK_WEBHOOK_URL!, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\u002Fjson' },\n      body: JSON.stringify({\n        text: `New user signed up: ${name} (${email})`,\n      }),\n    })\n  }\n\n  \u002F\u002F Always return 200 to acknowledge receipt\n  return new Response('OK', { status: 200 })\n}\n```\n\n**Also include proxy.ts (Next.js \u003C=15: middleware.ts) to make the route public:**\n```typescript\n\u002F\u002F proxy.ts (Next.js \u003C=15: middleware.ts)\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver'\nconst isPublicRoute = createRouteMatcher(['\u002Fapi\u002Fwebhooks(.*)'])\nexport default clerkMiddleware(async (auth, req) => {\n  if (!isPublicRoute(req)) await auth.protect()\n})\n```\n\n## Full Example: Organization Membership Sync to Database\n\n```typescript\n\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { db } from '@\u002Flib\u002Fdb' \u002F\u002F your database client\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F ALWAYS verify signature - never skip, even for simple handlers\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET env var\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  if (evt.type === 'organization.created') {\n    const { id, name } = evt.data\n    await db.workspaces.create({\n      data: { orgId: id, name, createdAt: new Date() },\n    })\n  }\n\n  if (evt.type === 'organizationMembership.created') {\n    \u002F\u002F Extract organization ID, user ID, and role from payload\n    const { organization, public_user_data, role } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n\n    \u002F\u002F Add to team_members table\n    await db.team_members.create({\n      data: { orgId, userId, role },\n    })\n\n    \u002F\u002F Create workspace record for new member\n    await db.workspaces.create({\n      data: { orgId, userId, createdAt: new Date() },\n    })\n  }\n\n  if (evt.type === 'organizationMembership.deleted') {\n    \u002F\u002F Extract organization ID and user ID from payload\n    const { organization, public_user_data } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n\n    \u002F\u002F Remove from team_members table\n    await db.team_members.delete({\n      where: { orgId, userId },\n    })\n\n    \u002F\u002F Remove workspace record\n    await db.workspaces.deleteMany({\n      where: { orgId, userId },\n    })\n  }\n\n  \u002F\u002F Return 200 status on success\n  return new Response('OK', { status: 200 })\n}\n```\n\n## Other Frameworks\n\nFor Express, Astro, Fastify, Nuxt, React Router, and TanStack Start, use the framework-specific `verifyWebhook` adapter. Each Clerk SDK package ships its own (`@clerk\u002Fexpress\u002Fwebhooks`, `@clerk\u002Fastro\u002Fwebhooks`, `@clerk\u002Ffastify\u002Fwebhooks`, etc.).\n\nSee `references\u002Fframeworks.md` for full handler examples per framework.\n\n## Type Narrowing for `evt.data`\n\n`verifyWebhook` returns `WebhookEvent`, a discriminated union of all event types. Narrow with `evt.type` to get type-safe access to `evt.data`:\n\n```typescript\nconst evt = await verifyWebhook(req)\n\nif (evt.type === 'user.created') {\n  \u002F\u002F evt.data is now UserJSON, autocompletes id, email_addresses, etc.\n  console.log(evt.data.id)\n}\n```\n\nFor manual typing of nested payloads, import the JSON types from your framework's webhook subpath: `DeletedObjectJSON`, `EmailJSON`, `OrganizationInvitationJSON`, `OrganizationJSON`, `OrganizationMembershipJSON`, `SessionJSON`, `SMSMessageJSON`, `UserJSON`.\n\n## Payload Field Reference\n\n### User events (`user.created`, `user.updated`, `user.deleted`)\n```typescript\nconst {\n  id,                  \u002F\u002F Clerk user ID\n  email_addresses,     \u002F\u002F array; [0].email_address is primary email\n  first_name,\n  last_name,\n  image_url,\n  public_metadata,\n} = evt.data\n```\n\n### Organization events (`organization.created`, `organization.updated`, `organization.deleted`)\n```typescript\nconst {\n  id,    \u002F\u002F org ID\n  name,  \u002F\u002F org name\n  slug,\n} = evt.data\n```\n\n### Organization Membership events (`organizationMembership.created`, `organizationMembership.updated`, `organizationMembership.deleted`)\n```typescript\nconst {\n  organization,        \u002F\u002F { id, name, ... }\n  public_user_data,    \u002F\u002F { user_id, first_name, last_name, ... }\n  role,                \u002F\u002F e.g. 'org:admin', 'org:member'\n} = evt.data\n\u002F\u002F Access: organization.id, public_user_data.user_id, role\n```\n\n## Supported Events (Full Catalog)\n\n**User**: `user.created` `user.updated` `user.deleted`\n\n**Session**: `session.created` `session.ended` `session.removed` `session.revoked`\n\n**Organization**: `organization.created` `organization.updated` `organization.deleted`\n\n**Organization Membership**: `organizationMembership.created` `organizationMembership.updated` `organizationMembership.deleted`\n\n**Organization Domain**: `organizationDomain.created` `organizationDomain.updated` `organizationDomain.deleted`\n\n**Organization Invitation**: `organizationInvitation.accepted` `organizationInvitation.created` `organizationInvitation.revoked`\n\n**Communication**: `email.created` `sms.created`\n\n**Waitlist**: `waitlistEntry.created` `waitlistEntry.updated`\n\n**Permission**: `permission.created` `permission.updated` `permission.deleted`\n\n**Role**: `role.created` `role.updated` `role.deleted`\n\n**Subscription**: `subscription.created` `subscription.updated` `subscription.active` `subscription.pastDue`\n\n**Subscription Item**: `subscriptionItem.created` `subscriptionItem.active` `subscriptionItem.updated` `subscriptionItem.canceled` `subscriptionItem.upcoming` `subscriptionItem.ended` `subscriptionItem.abandoned` `subscriptionItem.incomplete` `subscriptionItem.pastDue` `subscriptionItem.freeTrialEnding`\n\n**Payment**: `paymentAttempt.created` `paymentAttempt.updated`\n\n## Webhook Reliability\n\n**Retries**: Svix retries failed webhooks on a set schedule (see [Svix Retry Schedule](https:\u002F\u002Fdocs.svix.com\u002Fretries)). Return 2xx to succeed, 4xx\u002F5xx to retry. Use the `svix-id` header as an idempotency key to deduplicate retried events.\n\n**Replay**: Failed webhooks can be replayed from Dashboard.\n\n## Common Pitfalls\n\n| Symptom | Cause | Fix |\n|---------|-------|-----|\n| Verification fails (Next.js) | Wrong import or usage | Use `@clerk\u002Fnextjs\u002Fwebhooks`, pass `req` directly |\n| Verification fails (Express) | Using `express.json()` | Use `express.raw({ type: 'application\u002Fjson' })` for webhook route |\n| Route not found (404) | Wrong path | Use `\u002Fapi\u002Fwebhooks` or preserve existing path |\n| Not authorized (401) | Route is protected by middleware | Make route public in `clerkMiddleware()` |\n| No data in DB | Async job pending | Wait\u002Fcheck logs |\n| Duplicate entries | Only handling `user.created` | Also handle `user.updated` |\n| Timeouts | Handler too slow | Queue async work, return 200 first |\n\n## Testing & Deployment\n\n**Local**: Use the Clerk CLI's first-party tunnel — no auth or linked project needed:\n\n```sh\nclerk webhooks listen --token \"$(clerk webhooks token)\" --forward-to http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fwebhooks\n```\n\nAdd the printed relay URL (`https:\u002F\u002Fwebhooks.clerk.com\u002Fin\u002Fc_...\u002F`) as a webhook endpoint in the Dashboard — events don't flow until you do. `svix-*` headers are preserved, so `verifyWebhook()` works against that endpoint's signing secret as usual. Flags, offline signature checks (`clerk webhooks verify`), and agent-mode behavior are in the `clerk-cli` skill. Without the CLI, tunnel `localhost:3000` yourself (`ngrok`, `localtunnel`, `Cloudflare Tunnel`) and add the public URL to the Dashboard endpoint.\n\n**Production**: Update webhook endpoint URL to production domain. Copy `CLERK_WEBHOOK_SIGNING_SECRET` to production env vars.\n\n## References\n\n| Reference | Description |\n|-----------|-------------|\n| `references\u002Fframeworks.md` | Webhook handler examples for Express, Astro, Fastify, Nuxt, React Router, TanStack Start |\n\n## See Also\n\n- `clerk-cli` - `clerk webhooks listen`\u002F`verify` for local webhook testing\n- `clerk-setup` - Initial Clerk install\n- `clerk-orgs` - Org membership events\n- `clerk-billing` - Subscription, subscription item, and payment attempt events\n- `clerk-backend-api` - Sync via direct API calls",{"data":35,"body":40},{"name":4,"description":6,"allowed-tools":36,"license":26,"metadata":37,"compatibility":39},"WebFetch",{"author":8,"version":38},"1.2.0","Requires CLERK_WEBHOOK_SIGNING_SECRET (svix signing secret from Clerk dashboard)",{"type":41,"children":42},"root",[43,50,65,72,85,105,129,135,171,177,182,469,475,2275,2281,2286,3487,3495,3704,3710,5138,5144,5178,5191,5203,5235,5387,5448,5454,5479,5602,5628,5714,5739,5839,5845,5873,5909,5935,5961,5990,6019,6041,6063,6092,6121,6157,6235,6257,6263,6290,6300,6306,6514,6520,6530,6590,6665,6682,6688,6726,6732,6805],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":22},[48],{"type":49,"value":21},"text",{"type":44,"tag":51,"props":52,"children":53},"p",{},[54,56,63],{"type":49,"value":55},"Output complete, working webhook handlers with ",{"type":44,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":49,"value":62},"verifyWebhook(req)",{"type":49,"value":64}," verification in every handler.",{"type":44,"tag":66,"props":67,"children":69},"h2",{"id":68},"when-to-use-webhooks",[70],{"type":49,"value":71},"When to Use Webhooks",{"type":44,"tag":51,"props":73,"children":74},{},[75,77,83],{"type":49,"value":76},"Webhooks are ",{"type":44,"tag":78,"props":79,"children":80},"strong",{},[81],{"type":49,"value":82},"asynchronous and eventually consistent",{"type":49,"value":84},". Delivery is fast but not guaranteed to be immediate, and may occasionally fail (Svix retries on a fixed schedule). Use them for:",{"type":44,"tag":86,"props":87,"children":88},"ul",{},[89,95,100],{"type":44,"tag":90,"props":91,"children":92},"li",{},[93],{"type":49,"value":94},"Database sync (a separate users \u002F orgs table that follows Clerk)",{"type":44,"tag":90,"props":96,"children":97},{},[98],{"type":49,"value":99},"Notifications (welcome emails, Slack pings, internal alerts)",{"type":44,"tag":90,"props":101,"children":102},{},[103],{"type":49,"value":104},"Integrations triggered by lifecycle events",{"type":44,"tag":51,"props":106,"children":107},{},[108,110,119,121,127],{"type":49,"value":109},"Do NOT rely on webhook delivery as part of a synchronous flow such as onboarding (\"user signs up, then we read X from our DB\"). For data the user just created, read it from the ",{"type":44,"tag":111,"props":112,"children":116},"a",{"href":113,"rel":114},"https:\u002F\u002Fclerk.com\u002Fdocs\u002Fguides\u002Fsessions\u002Fsession-tokens",[115],"nofollow",[117],{"type":49,"value":118},"Clerk session token",{"type":49,"value":120}," or call the Backend API directly. Webhooks fill the gap when you need data about ",{"type":44,"tag":122,"props":123,"children":124},"em",{},[125],{"type":49,"value":126},"other",{"type":49,"value":128}," users or events the session token doesn't carry.",{"type":44,"tag":66,"props":130,"children":132},{"id":131},"verify-every-webhook",[133],{"type":49,"value":134},"Verify Every Webhook",{"type":44,"tag":51,"props":136,"children":137},{},[138,140,145,147,153,155,161,163,169],{"type":49,"value":139},"Use ",{"type":44,"tag":57,"props":141,"children":143},{"className":142},[],[144],{"type":49,"value":62},{"type":49,"value":146}," from the framework-specific package (",{"type":44,"tag":57,"props":148,"children":150},{"className":149},[],[151],{"type":49,"value":152},"@clerk\u002Fnextjs\u002Fwebhooks",{"type":49,"value":154},", ",{"type":44,"tag":57,"props":156,"children":158},{"className":157},[],[159],{"type":49,"value":160},"@clerk\u002Fexpress\u002Fwebhooks",{"type":49,"value":162},", etc.). It reads ",{"type":44,"tag":57,"props":164,"children":166},{"className":165},[],[167],{"type":49,"value":168},"CLERK_WEBHOOK_SIGNING_SECRET",{"type":49,"value":170}," automatically and throws on bad signatures. Skipping verification, even for notification-only handlers, exposes the endpoint to spoofed events.",{"type":44,"tag":66,"props":172,"children":174},{"id":173},"make-the-webhook-route-public",[175],{"type":49,"value":176},"Make the Webhook Route Public",{"type":44,"tag":51,"props":178,"children":179},{},[180],{"type":49,"value":181},"Webhook routes must be excluded from Clerk middleware protection. Without this, Clerk returns 401.",{"type":44,"tag":183,"props":184,"children":189},"pre",{"className":185,"code":186,"language":187,"meta":188,"style":188},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F proxy.ts (Next.js \u003C=15: middleware.ts)\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver'\n\nconst isPublicRoute = createRouteMatcher(['\u002Fapi\u002Fwebhooks(.*)'])\n\nexport default clerkMiddleware(async (auth, req) => {\n  if (!isPublicRoute(req)) await auth.protect()\n})\n","typescript","",[190],{"type":44,"tag":57,"props":191,"children":192},{"__ignoreMap":188},[193,205,263,273,321,329,392,455],{"type":44,"tag":194,"props":195,"children":198},"span",{"class":196,"line":197},"line",1,[199],{"type":44,"tag":194,"props":200,"children":202},{"style":201},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[203],{"type":49,"value":204},"\u002F\u002F proxy.ts (Next.js \u003C=15: middleware.ts)\n",{"type":44,"tag":194,"props":206,"children":208},{"class":196,"line":207},2,[209,215,221,227,232,237,242,247,252,258],{"type":44,"tag":194,"props":210,"children":212},{"style":211},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[213],{"type":49,"value":214},"import",{"type":44,"tag":194,"props":216,"children":218},{"style":217},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[219],{"type":49,"value":220}," {",{"type":44,"tag":194,"props":222,"children":224},{"style":223},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[225],{"type":49,"value":226}," clerkMiddleware",{"type":44,"tag":194,"props":228,"children":229},{"style":217},[230],{"type":49,"value":231},",",{"type":44,"tag":194,"props":233,"children":234},{"style":223},[235],{"type":49,"value":236}," createRouteMatcher",{"type":44,"tag":194,"props":238,"children":239},{"style":217},[240],{"type":49,"value":241}," }",{"type":44,"tag":194,"props":243,"children":244},{"style":211},[245],{"type":49,"value":246}," from",{"type":44,"tag":194,"props":248,"children":249},{"style":217},[250],{"type":49,"value":251}," '",{"type":44,"tag":194,"props":253,"children":255},{"style":254},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[256],{"type":49,"value":257},"@clerk\u002Fnextjs\u002Fserver",{"type":44,"tag":194,"props":259,"children":260},{"style":217},[261],{"type":49,"value":262},"'\n",{"type":44,"tag":194,"props":264,"children":266},{"class":196,"line":265},3,[267],{"type":44,"tag":194,"props":268,"children":270},{"emptyLinePlaceholder":269},true,[271],{"type":49,"value":272},"\n",{"type":44,"tag":194,"props":274,"children":275},{"class":196,"line":27},[276,282,287,292,297,302,307,312,316],{"type":44,"tag":194,"props":277,"children":279},{"style":278},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[280],{"type":49,"value":281},"const",{"type":44,"tag":194,"props":283,"children":284},{"style":223},[285],{"type":49,"value":286}," isPublicRoute ",{"type":44,"tag":194,"props":288,"children":289},{"style":217},[290],{"type":49,"value":291},"=",{"type":44,"tag":194,"props":293,"children":295},{"style":294},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[296],{"type":49,"value":236},{"type":44,"tag":194,"props":298,"children":299},{"style":223},[300],{"type":49,"value":301},"([",{"type":44,"tag":194,"props":303,"children":304},{"style":217},[305],{"type":49,"value":306},"'",{"type":44,"tag":194,"props":308,"children":309},{"style":254},[310],{"type":49,"value":311},"\u002Fapi\u002Fwebhooks(.*)",{"type":44,"tag":194,"props":313,"children":314},{"style":217},[315],{"type":49,"value":306},{"type":44,"tag":194,"props":317,"children":318},{"style":223},[319],{"type":49,"value":320},"])\n",{"type":44,"tag":194,"props":322,"children":324},{"class":196,"line":323},5,[325],{"type":44,"tag":194,"props":326,"children":327},{"emptyLinePlaceholder":269},[328],{"type":49,"value":272},{"type":44,"tag":194,"props":330,"children":332},{"class":196,"line":331},6,[333,338,343,347,352,357,362,368,372,377,382,387],{"type":44,"tag":194,"props":334,"children":335},{"style":211},[336],{"type":49,"value":337},"export",{"type":44,"tag":194,"props":339,"children":340},{"style":211},[341],{"type":49,"value":342}," default",{"type":44,"tag":194,"props":344,"children":345},{"style":294},[346],{"type":49,"value":226},{"type":44,"tag":194,"props":348,"children":349},{"style":223},[350],{"type":49,"value":351},"(",{"type":44,"tag":194,"props":353,"children":354},{"style":278},[355],{"type":49,"value":356},"async",{"type":44,"tag":194,"props":358,"children":359},{"style":217},[360],{"type":49,"value":361}," (",{"type":44,"tag":194,"props":363,"children":365},{"style":364},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[366],{"type":49,"value":367},"auth",{"type":44,"tag":194,"props":369,"children":370},{"style":217},[371],{"type":49,"value":231},{"type":44,"tag":194,"props":373,"children":374},{"style":364},[375],{"type":49,"value":376}," req",{"type":44,"tag":194,"props":378,"children":379},{"style":217},[380],{"type":49,"value":381},")",{"type":44,"tag":194,"props":383,"children":384},{"style":278},[385],{"type":49,"value":386}," =>",{"type":44,"tag":194,"props":388,"children":389},{"style":217},[390],{"type":49,"value":391}," {\n",{"type":44,"tag":194,"props":393,"children":395},{"class":196,"line":394},7,[396,401,406,411,416,420,425,430,435,440,445,450],{"type":44,"tag":194,"props":397,"children":398},{"style":211},[399],{"type":49,"value":400},"  if",{"type":44,"tag":194,"props":402,"children":404},{"style":403},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[405],{"type":49,"value":361},{"type":44,"tag":194,"props":407,"children":408},{"style":217},[409],{"type":49,"value":410},"!",{"type":44,"tag":194,"props":412,"children":413},{"style":294},[414],{"type":49,"value":415},"isPublicRoute",{"type":44,"tag":194,"props":417,"children":418},{"style":403},[419],{"type":49,"value":351},{"type":44,"tag":194,"props":421,"children":422},{"style":223},[423],{"type":49,"value":424},"req",{"type":44,"tag":194,"props":426,"children":427},{"style":403},[428],{"type":49,"value":429},")) ",{"type":44,"tag":194,"props":431,"children":432},{"style":211},[433],{"type":49,"value":434},"await",{"type":44,"tag":194,"props":436,"children":437},{"style":223},[438],{"type":49,"value":439}," auth",{"type":44,"tag":194,"props":441,"children":442},{"style":217},[443],{"type":49,"value":444},".",{"type":44,"tag":194,"props":446,"children":447},{"style":294},[448],{"type":49,"value":449},"protect",{"type":44,"tag":194,"props":451,"children":452},{"style":403},[453],{"type":49,"value":454},"()\n",{"type":44,"tag":194,"props":456,"children":458},{"class":196,"line":457},8,[459,464],{"type":44,"tag":194,"props":460,"children":461},{"style":217},[462],{"type":49,"value":463},"}",{"type":44,"tag":194,"props":465,"children":466},{"style":223},[467],{"type":49,"value":468},")\n",{"type":44,"tag":66,"props":470,"children":472},{"id":471},"complete-webhook-handler-nextjs-app-router",[473],{"type":49,"value":474},"Complete Webhook Handler (Next.js App Router)",{"type":44,"tag":183,"props":476,"children":478},{"className":185,"code":477,"language":187,"meta":188,"style":188},"\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { db } from '@\u002Flib\u002Fdb'\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F ALWAYS verify - never skip, even for notification-only handlers\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET automatically\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  if (evt.type === 'user.created') {\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    const name = `${first_name ?? ''} ${last_name ?? ''}`.trim()\n    await db.users.create({ data: { clerkId: id, email, name } })\n  }\n\n  if (evt.type === 'user.updated') {\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    await db.users.update({ where: { clerkId: id }, data: { email, first_name, last_name } })\n  }\n\n  if (evt.type === 'user.deleted') {\n    const { id } = evt.data\n    await db.users.delete({ where: { clerkId: id } })\n  }\n\n  if (evt.type === 'organizationMembership.created') {\n    const { organization, public_user_data, role } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n    await db.teamMembers.create({ data: { orgId, userId, role } })\n  }\n\n  if (evt.type === 'organizationMembership.deleted') {\n    const { organization, public_user_data } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n    await db.teamMembers.delete({ where: { orgId_userId: { orgId, userId } } })\n  }\n\n  return new Response('OK', { status: 200 })\n}\n",[479],{"type":44,"tag":57,"props":480,"children":481},{"__ignoreMap":188},[482,490,526,563,600,607,655,663,676,689,730,762,810,877,886,894,946,1013,1059,1128,1222,1230,1238,1287,1347,1387,1498,1506,1514,1563,1599,1672,1680,1688,1737,1792,1822,1852,1933,1941,1949,1998,2042,2070,2098,2187,2195,2203,2266],{"type":44,"tag":194,"props":483,"children":484},{"class":196,"line":197},[485],{"type":44,"tag":194,"props":486,"children":487},{"style":201},[488],{"type":49,"value":489},"\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\n",{"type":44,"tag":194,"props":491,"children":492},{"class":196,"line":207},[493,497,501,506,510,514,518,522],{"type":44,"tag":194,"props":494,"children":495},{"style":211},[496],{"type":49,"value":214},{"type":44,"tag":194,"props":498,"children":499},{"style":217},[500],{"type":49,"value":220},{"type":44,"tag":194,"props":502,"children":503},{"style":223},[504],{"type":49,"value":505}," verifyWebhook",{"type":44,"tag":194,"props":507,"children":508},{"style":217},[509],{"type":49,"value":241},{"type":44,"tag":194,"props":511,"children":512},{"style":211},[513],{"type":49,"value":246},{"type":44,"tag":194,"props":515,"children":516},{"style":217},[517],{"type":49,"value":251},{"type":44,"tag":194,"props":519,"children":520},{"style":254},[521],{"type":49,"value":152},{"type":44,"tag":194,"props":523,"children":524},{"style":217},[525],{"type":49,"value":262},{"type":44,"tag":194,"props":527,"children":528},{"class":196,"line":265},[529,533,537,542,546,550,554,559],{"type":44,"tag":194,"props":530,"children":531},{"style":211},[532],{"type":49,"value":214},{"type":44,"tag":194,"props":534,"children":535},{"style":217},[536],{"type":49,"value":220},{"type":44,"tag":194,"props":538,"children":539},{"style":223},[540],{"type":49,"value":541}," NextRequest",{"type":44,"tag":194,"props":543,"children":544},{"style":217},[545],{"type":49,"value":241},{"type":44,"tag":194,"props":547,"children":548},{"style":211},[549],{"type":49,"value":246},{"type":44,"tag":194,"props":551,"children":552},{"style":217},[553],{"type":49,"value":251},{"type":44,"tag":194,"props":555,"children":556},{"style":254},[557],{"type":49,"value":558},"next\u002Fserver",{"type":44,"tag":194,"props":560,"children":561},{"style":217},[562],{"type":49,"value":262},{"type":44,"tag":194,"props":564,"children":565},{"class":196,"line":27},[566,570,574,579,583,587,591,596],{"type":44,"tag":194,"props":567,"children":568},{"style":211},[569],{"type":49,"value":214},{"type":44,"tag":194,"props":571,"children":572},{"style":217},[573],{"type":49,"value":220},{"type":44,"tag":194,"props":575,"children":576},{"style":223},[577],{"type":49,"value":578}," db",{"type":44,"tag":194,"props":580,"children":581},{"style":217},[582],{"type":49,"value":241},{"type":44,"tag":194,"props":584,"children":585},{"style":211},[586],{"type":49,"value":246},{"type":44,"tag":194,"props":588,"children":589},{"style":217},[590],{"type":49,"value":251},{"type":44,"tag":194,"props":592,"children":593},{"style":254},[594],{"type":49,"value":595},"@\u002Flib\u002Fdb",{"type":44,"tag":194,"props":597,"children":598},{"style":217},[599],{"type":49,"value":262},{"type":44,"tag":194,"props":601,"children":602},{"class":196,"line":323},[603],{"type":44,"tag":194,"props":604,"children":605},{"emptyLinePlaceholder":269},[606],{"type":49,"value":272},{"type":44,"tag":194,"props":608,"children":609},{"class":196,"line":331},[610,614,619,624,629,633,637,642,647,651],{"type":44,"tag":194,"props":611,"children":612},{"style":211},[613],{"type":49,"value":337},{"type":44,"tag":194,"props":615,"children":616},{"style":278},[617],{"type":49,"value":618}," async",{"type":44,"tag":194,"props":620,"children":621},{"style":278},[622],{"type":49,"value":623}," function",{"type":44,"tag":194,"props":625,"children":626},{"style":294},[627],{"type":49,"value":628}," POST",{"type":44,"tag":194,"props":630,"children":631},{"style":217},[632],{"type":49,"value":351},{"type":44,"tag":194,"props":634,"children":635},{"style":364},[636],{"type":49,"value":424},{"type":44,"tag":194,"props":638,"children":639},{"style":217},[640],{"type":49,"value":641},":",{"type":44,"tag":194,"props":643,"children":645},{"style":644},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[646],{"type":49,"value":541},{"type":44,"tag":194,"props":648,"children":649},{"style":217},[650],{"type":49,"value":381},{"type":44,"tag":194,"props":652,"children":653},{"style":217},[654],{"type":49,"value":391},{"type":44,"tag":194,"props":656,"children":657},{"class":196,"line":394},[658],{"type":44,"tag":194,"props":659,"children":660},{"style":201},[661],{"type":49,"value":662},"  \u002F\u002F ALWAYS verify - never skip, even for notification-only handlers\n",{"type":44,"tag":194,"props":664,"children":665},{"class":196,"line":457},[666,671],{"type":44,"tag":194,"props":667,"children":668},{"style":278},[669],{"type":49,"value":670},"  let",{"type":44,"tag":194,"props":672,"children":673},{"style":223},[674],{"type":49,"value":675}," evt\n",{"type":44,"tag":194,"props":677,"children":679},{"class":196,"line":678},9,[680,685],{"type":44,"tag":194,"props":681,"children":682},{"style":211},[683],{"type":49,"value":684},"  try",{"type":44,"tag":194,"props":686,"children":687},{"style":217},[688],{"type":49,"value":391},{"type":44,"tag":194,"props":690,"children":692},{"class":196,"line":691},10,[693,698,703,708,712,716,720,725],{"type":44,"tag":194,"props":694,"children":695},{"style":223},[696],{"type":49,"value":697},"    evt",{"type":44,"tag":194,"props":699,"children":700},{"style":217},[701],{"type":49,"value":702}," =",{"type":44,"tag":194,"props":704,"children":705},{"style":211},[706],{"type":49,"value":707}," await",{"type":44,"tag":194,"props":709,"children":710},{"style":294},[711],{"type":49,"value":505},{"type":44,"tag":194,"props":713,"children":714},{"style":403},[715],{"type":49,"value":351},{"type":44,"tag":194,"props":717,"children":718},{"style":223},[719],{"type":49,"value":424},{"type":44,"tag":194,"props":721,"children":722},{"style":403},[723],{"type":49,"value":724},") ",{"type":44,"tag":194,"props":726,"children":727},{"style":201},[728],{"type":49,"value":729},"\u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET automatically\n",{"type":44,"tag":194,"props":731,"children":733},{"class":196,"line":732},11,[734,739,744,748,753,757],{"type":44,"tag":194,"props":735,"children":736},{"style":217},[737],{"type":49,"value":738},"  }",{"type":44,"tag":194,"props":740,"children":741},{"style":211},[742],{"type":49,"value":743}," catch",{"type":44,"tag":194,"props":745,"children":746},{"style":403},[747],{"type":49,"value":361},{"type":44,"tag":194,"props":749,"children":750},{"style":223},[751],{"type":49,"value":752},"err",{"type":44,"tag":194,"props":754,"children":755},{"style":403},[756],{"type":49,"value":724},{"type":44,"tag":194,"props":758,"children":759},{"style":217},[760],{"type":49,"value":761},"{\n",{"type":44,"tag":194,"props":763,"children":765},{"class":196,"line":764},12,[766,771,775,780,784,788,793,797,801,806],{"type":44,"tag":194,"props":767,"children":768},{"style":223},[769],{"type":49,"value":770},"    console",{"type":44,"tag":194,"props":772,"children":773},{"style":217},[774],{"type":49,"value":444},{"type":44,"tag":194,"props":776,"children":777},{"style":294},[778],{"type":49,"value":779},"error",{"type":44,"tag":194,"props":781,"children":782},{"style":403},[783],{"type":49,"value":351},{"type":44,"tag":194,"props":785,"children":786},{"style":217},[787],{"type":49,"value":306},{"type":44,"tag":194,"props":789,"children":790},{"style":254},[791],{"type":49,"value":792},"Webhook verification failed:",{"type":44,"tag":194,"props":794,"children":795},{"style":217},[796],{"type":49,"value":306},{"type":44,"tag":194,"props":798,"children":799},{"style":217},[800],{"type":49,"value":231},{"type":44,"tag":194,"props":802,"children":803},{"style":223},[804],{"type":49,"value":805}," err",{"type":44,"tag":194,"props":807,"children":808},{"style":403},[809],{"type":49,"value":468},{"type":44,"tag":194,"props":811,"children":813},{"class":196,"line":812},13,[814,819,824,829,833,837,842,846,850,854,859,863,869,873],{"type":44,"tag":194,"props":815,"children":816},{"style":211},[817],{"type":49,"value":818},"    return",{"type":44,"tag":194,"props":820,"children":821},{"style":217},[822],{"type":49,"value":823}," new",{"type":44,"tag":194,"props":825,"children":826},{"style":294},[827],{"type":49,"value":828}," Response",{"type":44,"tag":194,"props":830,"children":831},{"style":403},[832],{"type":49,"value":351},{"type":44,"tag":194,"props":834,"children":835},{"style":217},[836],{"type":49,"value":306},{"type":44,"tag":194,"props":838,"children":839},{"style":254},[840],{"type":49,"value":841},"Verification failed",{"type":44,"tag":194,"props":843,"children":844},{"style":217},[845],{"type":49,"value":306},{"type":44,"tag":194,"props":847,"children":848},{"style":217},[849],{"type":49,"value":231},{"type":44,"tag":194,"props":851,"children":852},{"style":217},[853],{"type":49,"value":220},{"type":44,"tag":194,"props":855,"children":856},{"style":403},[857],{"type":49,"value":858}," status",{"type":44,"tag":194,"props":860,"children":861},{"style":217},[862],{"type":49,"value":641},{"type":44,"tag":194,"props":864,"children":866},{"style":865},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[867],{"type":49,"value":868}," 400",{"type":44,"tag":194,"props":870,"children":871},{"style":217},[872],{"type":49,"value":241},{"type":44,"tag":194,"props":874,"children":875},{"style":403},[876],{"type":49,"value":468},{"type":44,"tag":194,"props":878,"children":880},{"class":196,"line":879},14,[881],{"type":44,"tag":194,"props":882,"children":883},{"style":217},[884],{"type":49,"value":885},"  }\n",{"type":44,"tag":194,"props":887,"children":889},{"class":196,"line":888},15,[890],{"type":44,"tag":194,"props":891,"children":892},{"emptyLinePlaceholder":269},[893],{"type":49,"value":272},{"type":44,"tag":194,"props":895,"children":897},{"class":196,"line":896},16,[898,902,906,911,915,920,925,929,934,938,942],{"type":44,"tag":194,"props":899,"children":900},{"style":211},[901],{"type":49,"value":400},{"type":44,"tag":194,"props":903,"children":904},{"style":403},[905],{"type":49,"value":361},{"type":44,"tag":194,"props":907,"children":908},{"style":223},[909],{"type":49,"value":910},"evt",{"type":44,"tag":194,"props":912,"children":913},{"style":217},[914],{"type":49,"value":444},{"type":44,"tag":194,"props":916,"children":917},{"style":223},[918],{"type":49,"value":919},"type",{"type":44,"tag":194,"props":921,"children":922},{"style":217},[923],{"type":49,"value":924}," ===",{"type":44,"tag":194,"props":926,"children":927},{"style":217},[928],{"type":49,"value":251},{"type":44,"tag":194,"props":930,"children":931},{"style":254},[932],{"type":49,"value":933},"user.created",{"type":44,"tag":194,"props":935,"children":936},{"style":217},[937],{"type":49,"value":306},{"type":44,"tag":194,"props":939,"children":940},{"style":403},[941],{"type":49,"value":724},{"type":44,"tag":194,"props":943,"children":944},{"style":217},[945],{"type":49,"value":761},{"type":44,"tag":194,"props":947,"children":949},{"class":196,"line":948},17,[950,955,959,964,968,973,977,982,986,991,995,999,1004,1008],{"type":44,"tag":194,"props":951,"children":952},{"style":278},[953],{"type":49,"value":954},"    const",{"type":44,"tag":194,"props":956,"children":957},{"style":217},[958],{"type":49,"value":220},{"type":44,"tag":194,"props":960,"children":961},{"style":223},[962],{"type":49,"value":963}," id",{"type":44,"tag":194,"props":965,"children":966},{"style":217},[967],{"type":49,"value":231},{"type":44,"tag":194,"props":969,"children":970},{"style":223},[971],{"type":49,"value":972}," email_addresses",{"type":44,"tag":194,"props":974,"children":975},{"style":217},[976],{"type":49,"value":231},{"type":44,"tag":194,"props":978,"children":979},{"style":223},[980],{"type":49,"value":981}," first_name",{"type":44,"tag":194,"props":983,"children":984},{"style":217},[985],{"type":49,"value":231},{"type":44,"tag":194,"props":987,"children":988},{"style":223},[989],{"type":49,"value":990}," last_name",{"type":44,"tag":194,"props":992,"children":993},{"style":217},[994],{"type":49,"value":241},{"type":44,"tag":194,"props":996,"children":997},{"style":217},[998],{"type":49,"value":702},{"type":44,"tag":194,"props":1000,"children":1001},{"style":223},[1002],{"type":49,"value":1003}," evt",{"type":44,"tag":194,"props":1005,"children":1006},{"style":217},[1007],{"type":49,"value":444},{"type":44,"tag":194,"props":1009,"children":1010},{"style":223},[1011],{"type":49,"value":1012},"data\n",{"type":44,"tag":194,"props":1014,"children":1016},{"class":196,"line":1015},18,[1017,1021,1026,1030,1034,1039,1044,1049,1054],{"type":44,"tag":194,"props":1018,"children":1019},{"style":278},[1020],{"type":49,"value":954},{"type":44,"tag":194,"props":1022,"children":1023},{"style":223},[1024],{"type":49,"value":1025}," email",{"type":44,"tag":194,"props":1027,"children":1028},{"style":217},[1029],{"type":49,"value":702},{"type":44,"tag":194,"props":1031,"children":1032},{"style":223},[1033],{"type":49,"value":972},{"type":44,"tag":194,"props":1035,"children":1036},{"style":403},[1037],{"type":49,"value":1038},"[",{"type":44,"tag":194,"props":1040,"children":1041},{"style":865},[1042],{"type":49,"value":1043},"0",{"type":44,"tag":194,"props":1045,"children":1046},{"style":403},[1047],{"type":49,"value":1048},"]",{"type":44,"tag":194,"props":1050,"children":1051},{"style":217},[1052],{"type":49,"value":1053},"?.",{"type":44,"tag":194,"props":1055,"children":1056},{"style":223},[1057],{"type":49,"value":1058},"email_address\n",{"type":44,"tag":194,"props":1060,"children":1062},{"class":196,"line":1061},19,[1063,1067,1072,1076,1081,1086,1091,1096,1101,1106,1110,1115,1119,1124],{"type":44,"tag":194,"props":1064,"children":1065},{"style":278},[1066],{"type":49,"value":954},{"type":44,"tag":194,"props":1068,"children":1069},{"style":223},[1070],{"type":49,"value":1071}," name",{"type":44,"tag":194,"props":1073,"children":1074},{"style":217},[1075],{"type":49,"value":702},{"type":44,"tag":194,"props":1077,"children":1078},{"style":217},[1079],{"type":49,"value":1080}," `${",{"type":44,"tag":194,"props":1082,"children":1083},{"style":223},[1084],{"type":49,"value":1085},"first_name ",{"type":44,"tag":194,"props":1087,"children":1088},{"style":217},[1089],{"type":49,"value":1090},"??",{"type":44,"tag":194,"props":1092,"children":1093},{"style":217},[1094],{"type":49,"value":1095}," ''}",{"type":44,"tag":194,"props":1097,"children":1098},{"style":217},[1099],{"type":49,"value":1100}," ${",{"type":44,"tag":194,"props":1102,"children":1103},{"style":223},[1104],{"type":49,"value":1105},"last_name ",{"type":44,"tag":194,"props":1107,"children":1108},{"style":217},[1109],{"type":49,"value":1090},{"type":44,"tag":194,"props":1111,"children":1112},{"style":217},[1113],{"type":49,"value":1114}," ''}`",{"type":44,"tag":194,"props":1116,"children":1117},{"style":217},[1118],{"type":49,"value":444},{"type":44,"tag":194,"props":1120,"children":1121},{"style":294},[1122],{"type":49,"value":1123},"trim",{"type":44,"tag":194,"props":1125,"children":1126},{"style":403},[1127],{"type":49,"value":454},{"type":44,"tag":194,"props":1129,"children":1131},{"class":196,"line":1130},20,[1132,1137,1141,1145,1150,1154,1159,1163,1168,1173,1177,1181,1186,1190,1194,1198,1202,1206,1210,1214,1218],{"type":44,"tag":194,"props":1133,"children":1134},{"style":211},[1135],{"type":49,"value":1136},"    await",{"type":44,"tag":194,"props":1138,"children":1139},{"style":223},[1140],{"type":49,"value":578},{"type":44,"tag":194,"props":1142,"children":1143},{"style":217},[1144],{"type":49,"value":444},{"type":44,"tag":194,"props":1146,"children":1147},{"style":223},[1148],{"type":49,"value":1149},"users",{"type":44,"tag":194,"props":1151,"children":1152},{"style":217},[1153],{"type":49,"value":444},{"type":44,"tag":194,"props":1155,"children":1156},{"style":294},[1157],{"type":49,"value":1158},"create",{"type":44,"tag":194,"props":1160,"children":1161},{"style":403},[1162],{"type":49,"value":351},{"type":44,"tag":194,"props":1164,"children":1165},{"style":217},[1166],{"type":49,"value":1167},"{",{"type":44,"tag":194,"props":1169,"children":1170},{"style":403},[1171],{"type":49,"value":1172}," data",{"type":44,"tag":194,"props":1174,"children":1175},{"style":217},[1176],{"type":49,"value":641},{"type":44,"tag":194,"props":1178,"children":1179},{"style":217},[1180],{"type":49,"value":220},{"type":44,"tag":194,"props":1182,"children":1183},{"style":403},[1184],{"type":49,"value":1185}," clerkId",{"type":44,"tag":194,"props":1187,"children":1188},{"style":217},[1189],{"type":49,"value":641},{"type":44,"tag":194,"props":1191,"children":1192},{"style":223},[1193],{"type":49,"value":963},{"type":44,"tag":194,"props":1195,"children":1196},{"style":217},[1197],{"type":49,"value":231},{"type":44,"tag":194,"props":1199,"children":1200},{"style":223},[1201],{"type":49,"value":1025},{"type":44,"tag":194,"props":1203,"children":1204},{"style":217},[1205],{"type":49,"value":231},{"type":44,"tag":194,"props":1207,"children":1208},{"style":223},[1209],{"type":49,"value":1071},{"type":44,"tag":194,"props":1211,"children":1212},{"style":217},[1213],{"type":49,"value":241},{"type":44,"tag":194,"props":1215,"children":1216},{"style":217},[1217],{"type":49,"value":241},{"type":44,"tag":194,"props":1219,"children":1220},{"style":403},[1221],{"type":49,"value":468},{"type":44,"tag":194,"props":1223,"children":1225},{"class":196,"line":1224},21,[1226],{"type":44,"tag":194,"props":1227,"children":1228},{"style":217},[1229],{"type":49,"value":885},{"type":44,"tag":194,"props":1231,"children":1233},{"class":196,"line":1232},22,[1234],{"type":44,"tag":194,"props":1235,"children":1236},{"emptyLinePlaceholder":269},[1237],{"type":49,"value":272},{"type":44,"tag":194,"props":1239,"children":1241},{"class":196,"line":1240},23,[1242,1246,1250,1254,1258,1262,1266,1270,1275,1279,1283],{"type":44,"tag":194,"props":1243,"children":1244},{"style":211},[1245],{"type":49,"value":400},{"type":44,"tag":194,"props":1247,"children":1248},{"style":403},[1249],{"type":49,"value":361},{"type":44,"tag":194,"props":1251,"children":1252},{"style":223},[1253],{"type":49,"value":910},{"type":44,"tag":194,"props":1255,"children":1256},{"style":217},[1257],{"type":49,"value":444},{"type":44,"tag":194,"props":1259,"children":1260},{"style":223},[1261],{"type":49,"value":919},{"type":44,"tag":194,"props":1263,"children":1264},{"style":217},[1265],{"type":49,"value":924},{"type":44,"tag":194,"props":1267,"children":1268},{"style":217},[1269],{"type":49,"value":251},{"type":44,"tag":194,"props":1271,"children":1272},{"style":254},[1273],{"type":49,"value":1274},"user.updated",{"type":44,"tag":194,"props":1276,"children":1277},{"style":217},[1278],{"type":49,"value":306},{"type":44,"tag":194,"props":1280,"children":1281},{"style":403},[1282],{"type":49,"value":724},{"type":44,"tag":194,"props":1284,"children":1285},{"style":217},[1286],{"type":49,"value":761},{"type":44,"tag":194,"props":1288,"children":1290},{"class":196,"line":1289},24,[1291,1295,1299,1303,1307,1311,1315,1319,1323,1327,1331,1335,1339,1343],{"type":44,"tag":194,"props":1292,"children":1293},{"style":278},[1294],{"type":49,"value":954},{"type":44,"tag":194,"props":1296,"children":1297},{"style":217},[1298],{"type":49,"value":220},{"type":44,"tag":194,"props":1300,"children":1301},{"style":223},[1302],{"type":49,"value":963},{"type":44,"tag":194,"props":1304,"children":1305},{"style":217},[1306],{"type":49,"value":231},{"type":44,"tag":194,"props":1308,"children":1309},{"style":223},[1310],{"type":49,"value":972},{"type":44,"tag":194,"props":1312,"children":1313},{"style":217},[1314],{"type":49,"value":231},{"type":44,"tag":194,"props":1316,"children":1317},{"style":223},[1318],{"type":49,"value":981},{"type":44,"tag":194,"props":1320,"children":1321},{"style":217},[1322],{"type":49,"value":231},{"type":44,"tag":194,"props":1324,"children":1325},{"style":223},[1326],{"type":49,"value":990},{"type":44,"tag":194,"props":1328,"children":1329},{"style":217},[1330],{"type":49,"value":241},{"type":44,"tag":194,"props":1332,"children":1333},{"style":217},[1334],{"type":49,"value":702},{"type":44,"tag":194,"props":1336,"children":1337},{"style":223},[1338],{"type":49,"value":1003},{"type":44,"tag":194,"props":1340,"children":1341},{"style":217},[1342],{"type":49,"value":444},{"type":44,"tag":194,"props":1344,"children":1345},{"style":223},[1346],{"type":49,"value":1012},{"type":44,"tag":194,"props":1348,"children":1350},{"class":196,"line":1349},25,[1351,1355,1359,1363,1367,1371,1375,1379,1383],{"type":44,"tag":194,"props":1352,"children":1353},{"style":278},[1354],{"type":49,"value":954},{"type":44,"tag":194,"props":1356,"children":1357},{"style":223},[1358],{"type":49,"value":1025},{"type":44,"tag":194,"props":1360,"children":1361},{"style":217},[1362],{"type":49,"value":702},{"type":44,"tag":194,"props":1364,"children":1365},{"style":223},[1366],{"type":49,"value":972},{"type":44,"tag":194,"props":1368,"children":1369},{"style":403},[1370],{"type":49,"value":1038},{"type":44,"tag":194,"props":1372,"children":1373},{"style":865},[1374],{"type":49,"value":1043},{"type":44,"tag":194,"props":1376,"children":1377},{"style":403},[1378],{"type":49,"value":1048},{"type":44,"tag":194,"props":1380,"children":1381},{"style":217},[1382],{"type":49,"value":1053},{"type":44,"tag":194,"props":1384,"children":1385},{"style":223},[1386],{"type":49,"value":1058},{"type":44,"tag":194,"props":1388,"children":1390},{"class":196,"line":1389},26,[1391,1395,1399,1403,1407,1411,1416,1420,1424,1429,1433,1437,1441,1445,1449,1454,1458,1462,1466,1470,1474,1478,1482,1486,1490,1494],{"type":44,"tag":194,"props":1392,"children":1393},{"style":211},[1394],{"type":49,"value":1136},{"type":44,"tag":194,"props":1396,"children":1397},{"style":223},[1398],{"type":49,"value":578},{"type":44,"tag":194,"props":1400,"children":1401},{"style":217},[1402],{"type":49,"value":444},{"type":44,"tag":194,"props":1404,"children":1405},{"style":223},[1406],{"type":49,"value":1149},{"type":44,"tag":194,"props":1408,"children":1409},{"style":217},[1410],{"type":49,"value":444},{"type":44,"tag":194,"props":1412,"children":1413},{"style":294},[1414],{"type":49,"value":1415},"update",{"type":44,"tag":194,"props":1417,"children":1418},{"style":403},[1419],{"type":49,"value":351},{"type":44,"tag":194,"props":1421,"children":1422},{"style":217},[1423],{"type":49,"value":1167},{"type":44,"tag":194,"props":1425,"children":1426},{"style":403},[1427],{"type":49,"value":1428}," where",{"type":44,"tag":194,"props":1430,"children":1431},{"style":217},[1432],{"type":49,"value":641},{"type":44,"tag":194,"props":1434,"children":1435},{"style":217},[1436],{"type":49,"value":220},{"type":44,"tag":194,"props":1438,"children":1439},{"style":403},[1440],{"type":49,"value":1185},{"type":44,"tag":194,"props":1442,"children":1443},{"style":217},[1444],{"type":49,"value":641},{"type":44,"tag":194,"props":1446,"children":1447},{"style":223},[1448],{"type":49,"value":963},{"type":44,"tag":194,"props":1450,"children":1451},{"style":217},[1452],{"type":49,"value":1453}," },",{"type":44,"tag":194,"props":1455,"children":1456},{"style":403},[1457],{"type":49,"value":1172},{"type":44,"tag":194,"props":1459,"children":1460},{"style":217},[1461],{"type":49,"value":641},{"type":44,"tag":194,"props":1463,"children":1464},{"style":217},[1465],{"type":49,"value":220},{"type":44,"tag":194,"props":1467,"children":1468},{"style":223},[1469],{"type":49,"value":1025},{"type":44,"tag":194,"props":1471,"children":1472},{"style":217},[1473],{"type":49,"value":231},{"type":44,"tag":194,"props":1475,"children":1476},{"style":223},[1477],{"type":49,"value":981},{"type":44,"tag":194,"props":1479,"children":1480},{"style":217},[1481],{"type":49,"value":231},{"type":44,"tag":194,"props":1483,"children":1484},{"style":223},[1485],{"type":49,"value":990},{"type":44,"tag":194,"props":1487,"children":1488},{"style":217},[1489],{"type":49,"value":241},{"type":44,"tag":194,"props":1491,"children":1492},{"style":217},[1493],{"type":49,"value":241},{"type":44,"tag":194,"props":1495,"children":1496},{"style":403},[1497],{"type":49,"value":468},{"type":44,"tag":194,"props":1499,"children":1501},{"class":196,"line":1500},27,[1502],{"type":44,"tag":194,"props":1503,"children":1504},{"style":217},[1505],{"type":49,"value":885},{"type":44,"tag":194,"props":1507,"children":1509},{"class":196,"line":1508},28,[1510],{"type":44,"tag":194,"props":1511,"children":1512},{"emptyLinePlaceholder":269},[1513],{"type":49,"value":272},{"type":44,"tag":194,"props":1515,"children":1517},{"class":196,"line":1516},29,[1518,1522,1526,1530,1534,1538,1542,1546,1551,1555,1559],{"type":44,"tag":194,"props":1519,"children":1520},{"style":211},[1521],{"type":49,"value":400},{"type":44,"tag":194,"props":1523,"children":1524},{"style":403},[1525],{"type":49,"value":361},{"type":44,"tag":194,"props":1527,"children":1528},{"style":223},[1529],{"type":49,"value":910},{"type":44,"tag":194,"props":1531,"children":1532},{"style":217},[1533],{"type":49,"value":444},{"type":44,"tag":194,"props":1535,"children":1536},{"style":223},[1537],{"type":49,"value":919},{"type":44,"tag":194,"props":1539,"children":1540},{"style":217},[1541],{"type":49,"value":924},{"type":44,"tag":194,"props":1543,"children":1544},{"style":217},[1545],{"type":49,"value":251},{"type":44,"tag":194,"props":1547,"children":1548},{"style":254},[1549],{"type":49,"value":1550},"user.deleted",{"type":44,"tag":194,"props":1552,"children":1553},{"style":217},[1554],{"type":49,"value":306},{"type":44,"tag":194,"props":1556,"children":1557},{"style":403},[1558],{"type":49,"value":724},{"type":44,"tag":194,"props":1560,"children":1561},{"style":217},[1562],{"type":49,"value":761},{"type":44,"tag":194,"props":1564,"children":1566},{"class":196,"line":1565},30,[1567,1571,1575,1579,1583,1587,1591,1595],{"type":44,"tag":194,"props":1568,"children":1569},{"style":278},[1570],{"type":49,"value":954},{"type":44,"tag":194,"props":1572,"children":1573},{"style":217},[1574],{"type":49,"value":220},{"type":44,"tag":194,"props":1576,"children":1577},{"style":223},[1578],{"type":49,"value":963},{"type":44,"tag":194,"props":1580,"children":1581},{"style":217},[1582],{"type":49,"value":241},{"type":44,"tag":194,"props":1584,"children":1585},{"style":217},[1586],{"type":49,"value":702},{"type":44,"tag":194,"props":1588,"children":1589},{"style":223},[1590],{"type":49,"value":1003},{"type":44,"tag":194,"props":1592,"children":1593},{"style":217},[1594],{"type":49,"value":444},{"type":44,"tag":194,"props":1596,"children":1597},{"style":223},[1598],{"type":49,"value":1012},{"type":44,"tag":194,"props":1600,"children":1602},{"class":196,"line":1601},31,[1603,1607,1611,1615,1619,1623,1628,1632,1636,1640,1644,1648,1652,1656,1660,1664,1668],{"type":44,"tag":194,"props":1604,"children":1605},{"style":211},[1606],{"type":49,"value":1136},{"type":44,"tag":194,"props":1608,"children":1609},{"style":223},[1610],{"type":49,"value":578},{"type":44,"tag":194,"props":1612,"children":1613},{"style":217},[1614],{"type":49,"value":444},{"type":44,"tag":194,"props":1616,"children":1617},{"style":223},[1618],{"type":49,"value":1149},{"type":44,"tag":194,"props":1620,"children":1621},{"style":217},[1622],{"type":49,"value":444},{"type":44,"tag":194,"props":1624,"children":1625},{"style":294},[1626],{"type":49,"value":1627},"delete",{"type":44,"tag":194,"props":1629,"children":1630},{"style":403},[1631],{"type":49,"value":351},{"type":44,"tag":194,"props":1633,"children":1634},{"style":217},[1635],{"type":49,"value":1167},{"type":44,"tag":194,"props":1637,"children":1638},{"style":403},[1639],{"type":49,"value":1428},{"type":44,"tag":194,"props":1641,"children":1642},{"style":217},[1643],{"type":49,"value":641},{"type":44,"tag":194,"props":1645,"children":1646},{"style":217},[1647],{"type":49,"value":220},{"type":44,"tag":194,"props":1649,"children":1650},{"style":403},[1651],{"type":49,"value":1185},{"type":44,"tag":194,"props":1653,"children":1654},{"style":217},[1655],{"type":49,"value":641},{"type":44,"tag":194,"props":1657,"children":1658},{"style":223},[1659],{"type":49,"value":963},{"type":44,"tag":194,"props":1661,"children":1662},{"style":217},[1663],{"type":49,"value":241},{"type":44,"tag":194,"props":1665,"children":1666},{"style":217},[1667],{"type":49,"value":241},{"type":44,"tag":194,"props":1669,"children":1670},{"style":403},[1671],{"type":49,"value":468},{"type":44,"tag":194,"props":1673,"children":1675},{"class":196,"line":1674},32,[1676],{"type":44,"tag":194,"props":1677,"children":1678},{"style":217},[1679],{"type":49,"value":885},{"type":44,"tag":194,"props":1681,"children":1683},{"class":196,"line":1682},33,[1684],{"type":44,"tag":194,"props":1685,"children":1686},{"emptyLinePlaceholder":269},[1687],{"type":49,"value":272},{"type":44,"tag":194,"props":1689,"children":1691},{"class":196,"line":1690},34,[1692,1696,1700,1704,1708,1712,1716,1720,1725,1729,1733],{"type":44,"tag":194,"props":1693,"children":1694},{"style":211},[1695],{"type":49,"value":400},{"type":44,"tag":194,"props":1697,"children":1698},{"style":403},[1699],{"type":49,"value":361},{"type":44,"tag":194,"props":1701,"children":1702},{"style":223},[1703],{"type":49,"value":910},{"type":44,"tag":194,"props":1705,"children":1706},{"style":217},[1707],{"type":49,"value":444},{"type":44,"tag":194,"props":1709,"children":1710},{"style":223},[1711],{"type":49,"value":919},{"type":44,"tag":194,"props":1713,"children":1714},{"style":217},[1715],{"type":49,"value":924},{"type":44,"tag":194,"props":1717,"children":1718},{"style":217},[1719],{"type":49,"value":251},{"type":44,"tag":194,"props":1721,"children":1722},{"style":254},[1723],{"type":49,"value":1724},"organizationMembership.created",{"type":44,"tag":194,"props":1726,"children":1727},{"style":217},[1728],{"type":49,"value":306},{"type":44,"tag":194,"props":1730,"children":1731},{"style":403},[1732],{"type":49,"value":724},{"type":44,"tag":194,"props":1734,"children":1735},{"style":217},[1736],{"type":49,"value":761},{"type":44,"tag":194,"props":1738,"children":1740},{"class":196,"line":1739},35,[1741,1745,1749,1754,1758,1763,1767,1772,1776,1780,1784,1788],{"type":44,"tag":194,"props":1742,"children":1743},{"style":278},[1744],{"type":49,"value":954},{"type":44,"tag":194,"props":1746,"children":1747},{"style":217},[1748],{"type":49,"value":220},{"type":44,"tag":194,"props":1750,"children":1751},{"style":223},[1752],{"type":49,"value":1753}," organization",{"type":44,"tag":194,"props":1755,"children":1756},{"style":217},[1757],{"type":49,"value":231},{"type":44,"tag":194,"props":1759,"children":1760},{"style":223},[1761],{"type":49,"value":1762}," public_user_data",{"type":44,"tag":194,"props":1764,"children":1765},{"style":217},[1766],{"type":49,"value":231},{"type":44,"tag":194,"props":1768,"children":1769},{"style":223},[1770],{"type":49,"value":1771}," role",{"type":44,"tag":194,"props":1773,"children":1774},{"style":217},[1775],{"type":49,"value":241},{"type":44,"tag":194,"props":1777,"children":1778},{"style":217},[1779],{"type":49,"value":702},{"type":44,"tag":194,"props":1781,"children":1782},{"style":223},[1783],{"type":49,"value":1003},{"type":44,"tag":194,"props":1785,"children":1786},{"style":217},[1787],{"type":49,"value":444},{"type":44,"tag":194,"props":1789,"children":1790},{"style":223},[1791],{"type":49,"value":1012},{"type":44,"tag":194,"props":1793,"children":1795},{"class":196,"line":1794},36,[1796,1800,1805,1809,1813,1817],{"type":44,"tag":194,"props":1797,"children":1798},{"style":278},[1799],{"type":49,"value":954},{"type":44,"tag":194,"props":1801,"children":1802},{"style":223},[1803],{"type":49,"value":1804}," orgId",{"type":44,"tag":194,"props":1806,"children":1807},{"style":217},[1808],{"type":49,"value":702},{"type":44,"tag":194,"props":1810,"children":1811},{"style":223},[1812],{"type":49,"value":1753},{"type":44,"tag":194,"props":1814,"children":1815},{"style":217},[1816],{"type":49,"value":444},{"type":44,"tag":194,"props":1818,"children":1819},{"style":223},[1820],{"type":49,"value":1821},"id\n",{"type":44,"tag":194,"props":1823,"children":1825},{"class":196,"line":1824},37,[1826,1830,1835,1839,1843,1847],{"type":44,"tag":194,"props":1827,"children":1828},{"style":278},[1829],{"type":49,"value":954},{"type":44,"tag":194,"props":1831,"children":1832},{"style":223},[1833],{"type":49,"value":1834}," userId",{"type":44,"tag":194,"props":1836,"children":1837},{"style":217},[1838],{"type":49,"value":702},{"type":44,"tag":194,"props":1840,"children":1841},{"style":223},[1842],{"type":49,"value":1762},{"type":44,"tag":194,"props":1844,"children":1845},{"style":217},[1846],{"type":49,"value":444},{"type":44,"tag":194,"props":1848,"children":1849},{"style":223},[1850],{"type":49,"value":1851},"user_id\n",{"type":44,"tag":194,"props":1853,"children":1855},{"class":196,"line":1854},38,[1856,1860,1864,1868,1873,1877,1881,1885,1889,1893,1897,1901,1905,1909,1913,1917,1921,1925,1929],{"type":44,"tag":194,"props":1857,"children":1858},{"style":211},[1859],{"type":49,"value":1136},{"type":44,"tag":194,"props":1861,"children":1862},{"style":223},[1863],{"type":49,"value":578},{"type":44,"tag":194,"props":1865,"children":1866},{"style":217},[1867],{"type":49,"value":444},{"type":44,"tag":194,"props":1869,"children":1870},{"style":223},[1871],{"type":49,"value":1872},"teamMembers",{"type":44,"tag":194,"props":1874,"children":1875},{"style":217},[1876],{"type":49,"value":444},{"type":44,"tag":194,"props":1878,"children":1879},{"style":294},[1880],{"type":49,"value":1158},{"type":44,"tag":194,"props":1882,"children":1883},{"style":403},[1884],{"type":49,"value":351},{"type":44,"tag":194,"props":1886,"children":1887},{"style":217},[1888],{"type":49,"value":1167},{"type":44,"tag":194,"props":1890,"children":1891},{"style":403},[1892],{"type":49,"value":1172},{"type":44,"tag":194,"props":1894,"children":1895},{"style":217},[1896],{"type":49,"value":641},{"type":44,"tag":194,"props":1898,"children":1899},{"style":217},[1900],{"type":49,"value":220},{"type":44,"tag":194,"props":1902,"children":1903},{"style":223},[1904],{"type":49,"value":1804},{"type":44,"tag":194,"props":1906,"children":1907},{"style":217},[1908],{"type":49,"value":231},{"type":44,"tag":194,"props":1910,"children":1911},{"style":223},[1912],{"type":49,"value":1834},{"type":44,"tag":194,"props":1914,"children":1915},{"style":217},[1916],{"type":49,"value":231},{"type":44,"tag":194,"props":1918,"children":1919},{"style":223},[1920],{"type":49,"value":1771},{"type":44,"tag":194,"props":1922,"children":1923},{"style":217},[1924],{"type":49,"value":241},{"type":44,"tag":194,"props":1926,"children":1927},{"style":217},[1928],{"type":49,"value":241},{"type":44,"tag":194,"props":1930,"children":1931},{"style":403},[1932],{"type":49,"value":468},{"type":44,"tag":194,"props":1934,"children":1936},{"class":196,"line":1935},39,[1937],{"type":44,"tag":194,"props":1938,"children":1939},{"style":217},[1940],{"type":49,"value":885},{"type":44,"tag":194,"props":1942,"children":1944},{"class":196,"line":1943},40,[1945],{"type":44,"tag":194,"props":1946,"children":1947},{"emptyLinePlaceholder":269},[1948],{"type":49,"value":272},{"type":44,"tag":194,"props":1950,"children":1952},{"class":196,"line":1951},41,[1953,1957,1961,1965,1969,1973,1977,1981,1986,1990,1994],{"type":44,"tag":194,"props":1954,"children":1955},{"style":211},[1956],{"type":49,"value":400},{"type":44,"tag":194,"props":1958,"children":1959},{"style":403},[1960],{"type":49,"value":361},{"type":44,"tag":194,"props":1962,"children":1963},{"style":223},[1964],{"type":49,"value":910},{"type":44,"tag":194,"props":1966,"children":1967},{"style":217},[1968],{"type":49,"value":444},{"type":44,"tag":194,"props":1970,"children":1971},{"style":223},[1972],{"type":49,"value":919},{"type":44,"tag":194,"props":1974,"children":1975},{"style":217},[1976],{"type":49,"value":924},{"type":44,"tag":194,"props":1978,"children":1979},{"style":217},[1980],{"type":49,"value":251},{"type":44,"tag":194,"props":1982,"children":1983},{"style":254},[1984],{"type":49,"value":1985},"organizationMembership.deleted",{"type":44,"tag":194,"props":1987,"children":1988},{"style":217},[1989],{"type":49,"value":306},{"type":44,"tag":194,"props":1991,"children":1992},{"style":403},[1993],{"type":49,"value":724},{"type":44,"tag":194,"props":1995,"children":1996},{"style":217},[1997],{"type":49,"value":761},{"type":44,"tag":194,"props":1999,"children":2001},{"class":196,"line":2000},42,[2002,2006,2010,2014,2018,2022,2026,2030,2034,2038],{"type":44,"tag":194,"props":2003,"children":2004},{"style":278},[2005],{"type":49,"value":954},{"type":44,"tag":194,"props":2007,"children":2008},{"style":217},[2009],{"type":49,"value":220},{"type":44,"tag":194,"props":2011,"children":2012},{"style":223},[2013],{"type":49,"value":1753},{"type":44,"tag":194,"props":2015,"children":2016},{"style":217},[2017],{"type":49,"value":231},{"type":44,"tag":194,"props":2019,"children":2020},{"style":223},[2021],{"type":49,"value":1762},{"type":44,"tag":194,"props":2023,"children":2024},{"style":217},[2025],{"type":49,"value":241},{"type":44,"tag":194,"props":2027,"children":2028},{"style":217},[2029],{"type":49,"value":702},{"type":44,"tag":194,"props":2031,"children":2032},{"style":223},[2033],{"type":49,"value":1003},{"type":44,"tag":194,"props":2035,"children":2036},{"style":217},[2037],{"type":49,"value":444},{"type":44,"tag":194,"props":2039,"children":2040},{"style":223},[2041],{"type":49,"value":1012},{"type":44,"tag":194,"props":2043,"children":2045},{"class":196,"line":2044},43,[2046,2050,2054,2058,2062,2066],{"type":44,"tag":194,"props":2047,"children":2048},{"style":278},[2049],{"type":49,"value":954},{"type":44,"tag":194,"props":2051,"children":2052},{"style":223},[2053],{"type":49,"value":1804},{"type":44,"tag":194,"props":2055,"children":2056},{"style":217},[2057],{"type":49,"value":702},{"type":44,"tag":194,"props":2059,"children":2060},{"style":223},[2061],{"type":49,"value":1753},{"type":44,"tag":194,"props":2063,"children":2064},{"style":217},[2065],{"type":49,"value":444},{"type":44,"tag":194,"props":2067,"children":2068},{"style":223},[2069],{"type":49,"value":1821},{"type":44,"tag":194,"props":2071,"children":2073},{"class":196,"line":2072},44,[2074,2078,2082,2086,2090,2094],{"type":44,"tag":194,"props":2075,"children":2076},{"style":278},[2077],{"type":49,"value":954},{"type":44,"tag":194,"props":2079,"children":2080},{"style":223},[2081],{"type":49,"value":1834},{"type":44,"tag":194,"props":2083,"children":2084},{"style":217},[2085],{"type":49,"value":702},{"type":44,"tag":194,"props":2087,"children":2088},{"style":223},[2089],{"type":49,"value":1762},{"type":44,"tag":194,"props":2091,"children":2092},{"style":217},[2093],{"type":49,"value":444},{"type":44,"tag":194,"props":2095,"children":2096},{"style":223},[2097],{"type":49,"value":1851},{"type":44,"tag":194,"props":2099,"children":2101},{"class":196,"line":2100},45,[2102,2106,2110,2114,2118,2122,2126,2130,2134,2138,2142,2146,2151,2155,2159,2163,2167,2171,2175,2179,2183],{"type":44,"tag":194,"props":2103,"children":2104},{"style":211},[2105],{"type":49,"value":1136},{"type":44,"tag":194,"props":2107,"children":2108},{"style":223},[2109],{"type":49,"value":578},{"type":44,"tag":194,"props":2111,"children":2112},{"style":217},[2113],{"type":49,"value":444},{"type":44,"tag":194,"props":2115,"children":2116},{"style":223},[2117],{"type":49,"value":1872},{"type":44,"tag":194,"props":2119,"children":2120},{"style":217},[2121],{"type":49,"value":444},{"type":44,"tag":194,"props":2123,"children":2124},{"style":294},[2125],{"type":49,"value":1627},{"type":44,"tag":194,"props":2127,"children":2128},{"style":403},[2129],{"type":49,"value":351},{"type":44,"tag":194,"props":2131,"children":2132},{"style":217},[2133],{"type":49,"value":1167},{"type":44,"tag":194,"props":2135,"children":2136},{"style":403},[2137],{"type":49,"value":1428},{"type":44,"tag":194,"props":2139,"children":2140},{"style":217},[2141],{"type":49,"value":641},{"type":44,"tag":194,"props":2143,"children":2144},{"style":217},[2145],{"type":49,"value":220},{"type":44,"tag":194,"props":2147,"children":2148},{"style":403},[2149],{"type":49,"value":2150}," orgId_userId",{"type":44,"tag":194,"props":2152,"children":2153},{"style":217},[2154],{"type":49,"value":641},{"type":44,"tag":194,"props":2156,"children":2157},{"style":217},[2158],{"type":49,"value":220},{"type":44,"tag":194,"props":2160,"children":2161},{"style":223},[2162],{"type":49,"value":1804},{"type":44,"tag":194,"props":2164,"children":2165},{"style":217},[2166],{"type":49,"value":231},{"type":44,"tag":194,"props":2168,"children":2169},{"style":223},[2170],{"type":49,"value":1834},{"type":44,"tag":194,"props":2172,"children":2173},{"style":217},[2174],{"type":49,"value":241},{"type":44,"tag":194,"props":2176,"children":2177},{"style":217},[2178],{"type":49,"value":241},{"type":44,"tag":194,"props":2180,"children":2181},{"style":217},[2182],{"type":49,"value":241},{"type":44,"tag":194,"props":2184,"children":2185},{"style":403},[2186],{"type":49,"value":468},{"type":44,"tag":194,"props":2188,"children":2190},{"class":196,"line":2189},46,[2191],{"type":44,"tag":194,"props":2192,"children":2193},{"style":217},[2194],{"type":49,"value":885},{"type":44,"tag":194,"props":2196,"children":2198},{"class":196,"line":2197},47,[2199],{"type":44,"tag":194,"props":2200,"children":2201},{"emptyLinePlaceholder":269},[2202],{"type":49,"value":272},{"type":44,"tag":194,"props":2204,"children":2206},{"class":196,"line":2205},48,[2207,2212,2216,2220,2224,2228,2233,2237,2241,2245,2249,2253,2258,2262],{"type":44,"tag":194,"props":2208,"children":2209},{"style":211},[2210],{"type":49,"value":2211},"  return",{"type":44,"tag":194,"props":2213,"children":2214},{"style":217},[2215],{"type":49,"value":823},{"type":44,"tag":194,"props":2217,"children":2218},{"style":294},[2219],{"type":49,"value":828},{"type":44,"tag":194,"props":2221,"children":2222},{"style":403},[2223],{"type":49,"value":351},{"type":44,"tag":194,"props":2225,"children":2226},{"style":217},[2227],{"type":49,"value":306},{"type":44,"tag":194,"props":2229,"children":2230},{"style":254},[2231],{"type":49,"value":2232},"OK",{"type":44,"tag":194,"props":2234,"children":2235},{"style":217},[2236],{"type":49,"value":306},{"type":44,"tag":194,"props":2238,"children":2239},{"style":217},[2240],{"type":49,"value":231},{"type":44,"tag":194,"props":2242,"children":2243},{"style":217},[2244],{"type":49,"value":220},{"type":44,"tag":194,"props":2246,"children":2247},{"style":403},[2248],{"type":49,"value":858},{"type":44,"tag":194,"props":2250,"children":2251},{"style":217},[2252],{"type":49,"value":641},{"type":44,"tag":194,"props":2254,"children":2255},{"style":865},[2256],{"type":49,"value":2257}," 200",{"type":44,"tag":194,"props":2259,"children":2260},{"style":217},[2261],{"type":49,"value":241},{"type":44,"tag":194,"props":2263,"children":2264},{"style":403},[2265],{"type":49,"value":468},{"type":44,"tag":194,"props":2267,"children":2269},{"class":196,"line":2268},49,[2270],{"type":44,"tag":194,"props":2271,"children":2272},{"style":217},[2273],{"type":49,"value":2274},"}\n",{"type":44,"tag":66,"props":2276,"children":2278},{"id":2277},"full-example-welcome-email-resend-slack-notification-on-usercreated",[2279],{"type":49,"value":2280},"Full Example: Welcome Email (Resend) + Slack Notification on user.created",{"type":44,"tag":51,"props":2282,"children":2283},{},[2284],{"type":49,"value":2285},"Notification-only handlers still verify the signature. Same pattern as the database-sync handler:",{"type":44,"tag":183,"props":2287,"children":2289},{"className":185,"code":2288,"language":187,"meta":188,"style":188},"\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { Resend } from 'resend'\n\nconst resend = new Resend(process.env.RESEND_API_KEY)\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F Step 1: ALWAYS verify the webhook signature - NEVER skip this\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET env var\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  \u002F\u002F Step 2: Listen for user.created event\n  if (evt.type === 'user.created') {\n    \u002F\u002F Step 3: Extract user email and name from webhook payload\n    const { id, email_addresses, first_name, last_name } = evt.data\n    const email = email_addresses[0]?.email_address\n    const name = `${first_name ?? ''} ${last_name ?? ''}`.trim()\n\n    \u002F\u002F Step 4: Call Resend API to send welcome email\n    await resend.emails.send({\n      from: 'noreply@yourdomain.com',\n      to: email,\n      subject: 'Welcome!',\n      html: `\u003Cp>Hi ${name}, welcome to our app!\u003C\u002Fp>`,\n    })\n\n    \u002F\u002F Step 5: Post notification to Slack channel\n    await fetch(process.env.SLACK_WEBHOOK_URL!, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\u002Fjson' },\n      body: JSON.stringify({\n        text: `New user signed up: ${name} (${email})`,\n      }),\n    })\n  }\n\n  \u002F\u002F Always return 200 to acknowledge receipt\n  return new Response('OK', { status: 200 })\n}\n",[2290],{"type":44,"tag":57,"props":2291,"children":2292},{"__ignoreMap":188},[2293,2300,2335,2370,2407,2414,2461,2468,2511,2519,2530,2541,2577,2604,2647,2706,2713,2720,2728,2775,2783,2842,2881,2940,2947,2955,2993,3023,3043,3072,3122,3134,3141,3149,3196,3225,3276,3310,3372,3388,3399,3406,3413,3421,3480],{"type":44,"tag":194,"props":2294,"children":2295},{"class":196,"line":197},[2296],{"type":44,"tag":194,"props":2297,"children":2298},{"style":201},[2299],{"type":49,"value":489},{"type":44,"tag":194,"props":2301,"children":2302},{"class":196,"line":207},[2303,2307,2311,2315,2319,2323,2327,2331],{"type":44,"tag":194,"props":2304,"children":2305},{"style":211},[2306],{"type":49,"value":214},{"type":44,"tag":194,"props":2308,"children":2309},{"style":217},[2310],{"type":49,"value":220},{"type":44,"tag":194,"props":2312,"children":2313},{"style":223},[2314],{"type":49,"value":505},{"type":44,"tag":194,"props":2316,"children":2317},{"style":217},[2318],{"type":49,"value":241},{"type":44,"tag":194,"props":2320,"children":2321},{"style":211},[2322],{"type":49,"value":246},{"type":44,"tag":194,"props":2324,"children":2325},{"style":217},[2326],{"type":49,"value":251},{"type":44,"tag":194,"props":2328,"children":2329},{"style":254},[2330],{"type":49,"value":152},{"type":44,"tag":194,"props":2332,"children":2333},{"style":217},[2334],{"type":49,"value":262},{"type":44,"tag":194,"props":2336,"children":2337},{"class":196,"line":265},[2338,2342,2346,2350,2354,2358,2362,2366],{"type":44,"tag":194,"props":2339,"children":2340},{"style":211},[2341],{"type":49,"value":214},{"type":44,"tag":194,"props":2343,"children":2344},{"style":217},[2345],{"type":49,"value":220},{"type":44,"tag":194,"props":2347,"children":2348},{"style":223},[2349],{"type":49,"value":541},{"type":44,"tag":194,"props":2351,"children":2352},{"style":217},[2353],{"type":49,"value":241},{"type":44,"tag":194,"props":2355,"children":2356},{"style":211},[2357],{"type":49,"value":246},{"type":44,"tag":194,"props":2359,"children":2360},{"style":217},[2361],{"type":49,"value":251},{"type":44,"tag":194,"props":2363,"children":2364},{"style":254},[2365],{"type":49,"value":558},{"type":44,"tag":194,"props":2367,"children":2368},{"style":217},[2369],{"type":49,"value":262},{"type":44,"tag":194,"props":2371,"children":2372},{"class":196,"line":27},[2373,2377,2381,2386,2390,2394,2398,2403],{"type":44,"tag":194,"props":2374,"children":2375},{"style":211},[2376],{"type":49,"value":214},{"type":44,"tag":194,"props":2378,"children":2379},{"style":217},[2380],{"type":49,"value":220},{"type":44,"tag":194,"props":2382,"children":2383},{"style":223},[2384],{"type":49,"value":2385}," Resend",{"type":44,"tag":194,"props":2387,"children":2388},{"style":217},[2389],{"type":49,"value":241},{"type":44,"tag":194,"props":2391,"children":2392},{"style":211},[2393],{"type":49,"value":246},{"type":44,"tag":194,"props":2395,"children":2396},{"style":217},[2397],{"type":49,"value":251},{"type":44,"tag":194,"props":2399,"children":2400},{"style":254},[2401],{"type":49,"value":2402},"resend",{"type":44,"tag":194,"props":2404,"children":2405},{"style":217},[2406],{"type":49,"value":262},{"type":44,"tag":194,"props":2408,"children":2409},{"class":196,"line":323},[2410],{"type":44,"tag":194,"props":2411,"children":2412},{"emptyLinePlaceholder":269},[2413],{"type":49,"value":272},{"type":44,"tag":194,"props":2415,"children":2416},{"class":196,"line":331},[2417,2421,2426,2430,2434,2438,2443,2447,2452,2456],{"type":44,"tag":194,"props":2418,"children":2419},{"style":278},[2420],{"type":49,"value":281},{"type":44,"tag":194,"props":2422,"children":2423},{"style":223},[2424],{"type":49,"value":2425}," resend ",{"type":44,"tag":194,"props":2427,"children":2428},{"style":217},[2429],{"type":49,"value":291},{"type":44,"tag":194,"props":2431,"children":2432},{"style":217},[2433],{"type":49,"value":823},{"type":44,"tag":194,"props":2435,"children":2436},{"style":294},[2437],{"type":49,"value":2385},{"type":44,"tag":194,"props":2439,"children":2440},{"style":223},[2441],{"type":49,"value":2442},"(process",{"type":44,"tag":194,"props":2444,"children":2445},{"style":217},[2446],{"type":49,"value":444},{"type":44,"tag":194,"props":2448,"children":2449},{"style":223},[2450],{"type":49,"value":2451},"env",{"type":44,"tag":194,"props":2453,"children":2454},{"style":217},[2455],{"type":49,"value":444},{"type":44,"tag":194,"props":2457,"children":2458},{"style":223},[2459],{"type":49,"value":2460},"RESEND_API_KEY)\n",{"type":44,"tag":194,"props":2462,"children":2463},{"class":196,"line":394},[2464],{"type":44,"tag":194,"props":2465,"children":2466},{"emptyLinePlaceholder":269},[2467],{"type":49,"value":272},{"type":44,"tag":194,"props":2469,"children":2470},{"class":196,"line":457},[2471,2475,2479,2483,2487,2491,2495,2499,2503,2507],{"type":44,"tag":194,"props":2472,"children":2473},{"style":211},[2474],{"type":49,"value":337},{"type":44,"tag":194,"props":2476,"children":2477},{"style":278},[2478],{"type":49,"value":618},{"type":44,"tag":194,"props":2480,"children":2481},{"style":278},[2482],{"type":49,"value":623},{"type":44,"tag":194,"props":2484,"children":2485},{"style":294},[2486],{"type":49,"value":628},{"type":44,"tag":194,"props":2488,"children":2489},{"style":217},[2490],{"type":49,"value":351},{"type":44,"tag":194,"props":2492,"children":2493},{"style":364},[2494],{"type":49,"value":424},{"type":44,"tag":194,"props":2496,"children":2497},{"style":217},[2498],{"type":49,"value":641},{"type":44,"tag":194,"props":2500,"children":2501},{"style":644},[2502],{"type":49,"value":541},{"type":44,"tag":194,"props":2504,"children":2505},{"style":217},[2506],{"type":49,"value":381},{"type":44,"tag":194,"props":2508,"children":2509},{"style":217},[2510],{"type":49,"value":391},{"type":44,"tag":194,"props":2512,"children":2513},{"class":196,"line":678},[2514],{"type":44,"tag":194,"props":2515,"children":2516},{"style":201},[2517],{"type":49,"value":2518},"  \u002F\u002F Step 1: ALWAYS verify the webhook signature - NEVER skip this\n",{"type":44,"tag":194,"props":2520,"children":2521},{"class":196,"line":691},[2522,2526],{"type":44,"tag":194,"props":2523,"children":2524},{"style":278},[2525],{"type":49,"value":670},{"type":44,"tag":194,"props":2527,"children":2528},{"style":223},[2529],{"type":49,"value":675},{"type":44,"tag":194,"props":2531,"children":2532},{"class":196,"line":732},[2533,2537],{"type":44,"tag":194,"props":2534,"children":2535},{"style":211},[2536],{"type":49,"value":684},{"type":44,"tag":194,"props":2538,"children":2539},{"style":217},[2540],{"type":49,"value":391},{"type":44,"tag":194,"props":2542,"children":2543},{"class":196,"line":764},[2544,2548,2552,2556,2560,2564,2568,2572],{"type":44,"tag":194,"props":2545,"children":2546},{"style":223},[2547],{"type":49,"value":697},{"type":44,"tag":194,"props":2549,"children":2550},{"style":217},[2551],{"type":49,"value":702},{"type":44,"tag":194,"props":2553,"children":2554},{"style":211},[2555],{"type":49,"value":707},{"type":44,"tag":194,"props":2557,"children":2558},{"style":294},[2559],{"type":49,"value":505},{"type":44,"tag":194,"props":2561,"children":2562},{"style":403},[2563],{"type":49,"value":351},{"type":44,"tag":194,"props":2565,"children":2566},{"style":223},[2567],{"type":49,"value":424},{"type":44,"tag":194,"props":2569,"children":2570},{"style":403},[2571],{"type":49,"value":724},{"type":44,"tag":194,"props":2573,"children":2574},{"style":201},[2575],{"type":49,"value":2576},"\u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET env var\n",{"type":44,"tag":194,"props":2578,"children":2579},{"class":196,"line":812},[2580,2584,2588,2592,2596,2600],{"type":44,"tag":194,"props":2581,"children":2582},{"style":217},[2583],{"type":49,"value":738},{"type":44,"tag":194,"props":2585,"children":2586},{"style":211},[2587],{"type":49,"value":743},{"type":44,"tag":194,"props":2589,"children":2590},{"style":403},[2591],{"type":49,"value":361},{"type":44,"tag":194,"props":2593,"children":2594},{"style":223},[2595],{"type":49,"value":752},{"type":44,"tag":194,"props":2597,"children":2598},{"style":403},[2599],{"type":49,"value":724},{"type":44,"tag":194,"props":2601,"children":2602},{"style":217},[2603],{"type":49,"value":761},{"type":44,"tag":194,"props":2605,"children":2606},{"class":196,"line":879},[2607,2611,2615,2619,2623,2627,2631,2635,2639,2643],{"type":44,"tag":194,"props":2608,"children":2609},{"style":223},[2610],{"type":49,"value":770},{"type":44,"tag":194,"props":2612,"children":2613},{"style":217},[2614],{"type":49,"value":444},{"type":44,"tag":194,"props":2616,"children":2617},{"style":294},[2618],{"type":49,"value":779},{"type":44,"tag":194,"props":2620,"children":2621},{"style":403},[2622],{"type":49,"value":351},{"type":44,"tag":194,"props":2624,"children":2625},{"style":217},[2626],{"type":49,"value":306},{"type":44,"tag":194,"props":2628,"children":2629},{"style":254},[2630],{"type":49,"value":792},{"type":44,"tag":194,"props":2632,"children":2633},{"style":217},[2634],{"type":49,"value":306},{"type":44,"tag":194,"props":2636,"children":2637},{"style":217},[2638],{"type":49,"value":231},{"type":44,"tag":194,"props":2640,"children":2641},{"style":223},[2642],{"type":49,"value":805},{"type":44,"tag":194,"props":2644,"children":2645},{"style":403},[2646],{"type":49,"value":468},{"type":44,"tag":194,"props":2648,"children":2649},{"class":196,"line":888},[2650,2654,2658,2662,2666,2670,2674,2678,2682,2686,2690,2694,2698,2702],{"type":44,"tag":194,"props":2651,"children":2652},{"style":211},[2653],{"type":49,"value":818},{"type":44,"tag":194,"props":2655,"children":2656},{"style":217},[2657],{"type":49,"value":823},{"type":44,"tag":194,"props":2659,"children":2660},{"style":294},[2661],{"type":49,"value":828},{"type":44,"tag":194,"props":2663,"children":2664},{"style":403},[2665],{"type":49,"value":351},{"type":44,"tag":194,"props":2667,"children":2668},{"style":217},[2669],{"type":49,"value":306},{"type":44,"tag":194,"props":2671,"children":2672},{"style":254},[2673],{"type":49,"value":841},{"type":44,"tag":194,"props":2675,"children":2676},{"style":217},[2677],{"type":49,"value":306},{"type":44,"tag":194,"props":2679,"children":2680},{"style":217},[2681],{"type":49,"value":231},{"type":44,"tag":194,"props":2683,"children":2684},{"style":217},[2685],{"type":49,"value":220},{"type":44,"tag":194,"props":2687,"children":2688},{"style":403},[2689],{"type":49,"value":858},{"type":44,"tag":194,"props":2691,"children":2692},{"style":217},[2693],{"type":49,"value":641},{"type":44,"tag":194,"props":2695,"children":2696},{"style":865},[2697],{"type":49,"value":868},{"type":44,"tag":194,"props":2699,"children":2700},{"style":217},[2701],{"type":49,"value":241},{"type":44,"tag":194,"props":2703,"children":2704},{"style":403},[2705],{"type":49,"value":468},{"type":44,"tag":194,"props":2707,"children":2708},{"class":196,"line":896},[2709],{"type":44,"tag":194,"props":2710,"children":2711},{"style":217},[2712],{"type":49,"value":885},{"type":44,"tag":194,"props":2714,"children":2715},{"class":196,"line":948},[2716],{"type":44,"tag":194,"props":2717,"children":2718},{"emptyLinePlaceholder":269},[2719],{"type":49,"value":272},{"type":44,"tag":194,"props":2721,"children":2722},{"class":196,"line":1015},[2723],{"type":44,"tag":194,"props":2724,"children":2725},{"style":201},[2726],{"type":49,"value":2727},"  \u002F\u002F Step 2: Listen for user.created event\n",{"type":44,"tag":194,"props":2729,"children":2730},{"class":196,"line":1061},[2731,2735,2739,2743,2747,2751,2755,2759,2763,2767,2771],{"type":44,"tag":194,"props":2732,"children":2733},{"style":211},[2734],{"type":49,"value":400},{"type":44,"tag":194,"props":2736,"children":2737},{"style":403},[2738],{"type":49,"value":361},{"type":44,"tag":194,"props":2740,"children":2741},{"style":223},[2742],{"type":49,"value":910},{"type":44,"tag":194,"props":2744,"children":2745},{"style":217},[2746],{"type":49,"value":444},{"type":44,"tag":194,"props":2748,"children":2749},{"style":223},[2750],{"type":49,"value":919},{"type":44,"tag":194,"props":2752,"children":2753},{"style":217},[2754],{"type":49,"value":924},{"type":44,"tag":194,"props":2756,"children":2757},{"style":217},[2758],{"type":49,"value":251},{"type":44,"tag":194,"props":2760,"children":2761},{"style":254},[2762],{"type":49,"value":933},{"type":44,"tag":194,"props":2764,"children":2765},{"style":217},[2766],{"type":49,"value":306},{"type":44,"tag":194,"props":2768,"children":2769},{"style":403},[2770],{"type":49,"value":724},{"type":44,"tag":194,"props":2772,"children":2773},{"style":217},[2774],{"type":49,"value":761},{"type":44,"tag":194,"props":2776,"children":2777},{"class":196,"line":1130},[2778],{"type":44,"tag":194,"props":2779,"children":2780},{"style":201},[2781],{"type":49,"value":2782},"    \u002F\u002F Step 3: Extract user email and name from webhook payload\n",{"type":44,"tag":194,"props":2784,"children":2785},{"class":196,"line":1224},[2786,2790,2794,2798,2802,2806,2810,2814,2818,2822,2826,2830,2834,2838],{"type":44,"tag":194,"props":2787,"children":2788},{"style":278},[2789],{"type":49,"value":954},{"type":44,"tag":194,"props":2791,"children":2792},{"style":217},[2793],{"type":49,"value":220},{"type":44,"tag":194,"props":2795,"children":2796},{"style":223},[2797],{"type":49,"value":963},{"type":44,"tag":194,"props":2799,"children":2800},{"style":217},[2801],{"type":49,"value":231},{"type":44,"tag":194,"props":2803,"children":2804},{"style":223},[2805],{"type":49,"value":972},{"type":44,"tag":194,"props":2807,"children":2808},{"style":217},[2809],{"type":49,"value":231},{"type":44,"tag":194,"props":2811,"children":2812},{"style":223},[2813],{"type":49,"value":981},{"type":44,"tag":194,"props":2815,"children":2816},{"style":217},[2817],{"type":49,"value":231},{"type":44,"tag":194,"props":2819,"children":2820},{"style":223},[2821],{"type":49,"value":990},{"type":44,"tag":194,"props":2823,"children":2824},{"style":217},[2825],{"type":49,"value":241},{"type":44,"tag":194,"props":2827,"children":2828},{"style":217},[2829],{"type":49,"value":702},{"type":44,"tag":194,"props":2831,"children":2832},{"style":223},[2833],{"type":49,"value":1003},{"type":44,"tag":194,"props":2835,"children":2836},{"style":217},[2837],{"type":49,"value":444},{"type":44,"tag":194,"props":2839,"children":2840},{"style":223},[2841],{"type":49,"value":1012},{"type":44,"tag":194,"props":2843,"children":2844},{"class":196,"line":1232},[2845,2849,2853,2857,2861,2865,2869,2873,2877],{"type":44,"tag":194,"props":2846,"children":2847},{"style":278},[2848],{"type":49,"value":954},{"type":44,"tag":194,"props":2850,"children":2851},{"style":223},[2852],{"type":49,"value":1025},{"type":44,"tag":194,"props":2854,"children":2855},{"style":217},[2856],{"type":49,"value":702},{"type":44,"tag":194,"props":2858,"children":2859},{"style":223},[2860],{"type":49,"value":972},{"type":44,"tag":194,"props":2862,"children":2863},{"style":403},[2864],{"type":49,"value":1038},{"type":44,"tag":194,"props":2866,"children":2867},{"style":865},[2868],{"type":49,"value":1043},{"type":44,"tag":194,"props":2870,"children":2871},{"style":403},[2872],{"type":49,"value":1048},{"type":44,"tag":194,"props":2874,"children":2875},{"style":217},[2876],{"type":49,"value":1053},{"type":44,"tag":194,"props":2878,"children":2879},{"style":223},[2880],{"type":49,"value":1058},{"type":44,"tag":194,"props":2882,"children":2883},{"class":196,"line":1240},[2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936],{"type":44,"tag":194,"props":2885,"children":2886},{"style":278},[2887],{"type":49,"value":954},{"type":44,"tag":194,"props":2889,"children":2890},{"style":223},[2891],{"type":49,"value":1071},{"type":44,"tag":194,"props":2893,"children":2894},{"style":217},[2895],{"type":49,"value":702},{"type":44,"tag":194,"props":2897,"children":2898},{"style":217},[2899],{"type":49,"value":1080},{"type":44,"tag":194,"props":2901,"children":2902},{"style":223},[2903],{"type":49,"value":1085},{"type":44,"tag":194,"props":2905,"children":2906},{"style":217},[2907],{"type":49,"value":1090},{"type":44,"tag":194,"props":2909,"children":2910},{"style":217},[2911],{"type":49,"value":1095},{"type":44,"tag":194,"props":2913,"children":2914},{"style":217},[2915],{"type":49,"value":1100},{"type":44,"tag":194,"props":2917,"children":2918},{"style":223},[2919],{"type":49,"value":1105},{"type":44,"tag":194,"props":2921,"children":2922},{"style":217},[2923],{"type":49,"value":1090},{"type":44,"tag":194,"props":2925,"children":2926},{"style":217},[2927],{"type":49,"value":1114},{"type":44,"tag":194,"props":2929,"children":2930},{"style":217},[2931],{"type":49,"value":444},{"type":44,"tag":194,"props":2933,"children":2934},{"style":294},[2935],{"type":49,"value":1123},{"type":44,"tag":194,"props":2937,"children":2938},{"style":403},[2939],{"type":49,"value":454},{"type":44,"tag":194,"props":2941,"children":2942},{"class":196,"line":1289},[2943],{"type":44,"tag":194,"props":2944,"children":2945},{"emptyLinePlaceholder":269},[2946],{"type":49,"value":272},{"type":44,"tag":194,"props":2948,"children":2949},{"class":196,"line":1349},[2950],{"type":44,"tag":194,"props":2951,"children":2952},{"style":201},[2953],{"type":49,"value":2954},"    \u002F\u002F Step 4: Call Resend API to send welcome email\n",{"type":44,"tag":194,"props":2956,"children":2957},{"class":196,"line":1389},[2958,2962,2967,2971,2976,2980,2985,2989],{"type":44,"tag":194,"props":2959,"children":2960},{"style":211},[2961],{"type":49,"value":1136},{"type":44,"tag":194,"props":2963,"children":2964},{"style":223},[2965],{"type":49,"value":2966}," resend",{"type":44,"tag":194,"props":2968,"children":2969},{"style":217},[2970],{"type":49,"value":444},{"type":44,"tag":194,"props":2972,"children":2973},{"style":223},[2974],{"type":49,"value":2975},"emails",{"type":44,"tag":194,"props":2977,"children":2978},{"style":217},[2979],{"type":49,"value":444},{"type":44,"tag":194,"props":2981,"children":2982},{"style":294},[2983],{"type":49,"value":2984},"send",{"type":44,"tag":194,"props":2986,"children":2987},{"style":403},[2988],{"type":49,"value":351},{"type":44,"tag":194,"props":2990,"children":2991},{"style":217},[2992],{"type":49,"value":761},{"type":44,"tag":194,"props":2994,"children":2995},{"class":196,"line":1500},[2996,3001,3005,3009,3014,3018],{"type":44,"tag":194,"props":2997,"children":2998},{"style":403},[2999],{"type":49,"value":3000},"      from",{"type":44,"tag":194,"props":3002,"children":3003},{"style":217},[3004],{"type":49,"value":641},{"type":44,"tag":194,"props":3006,"children":3007},{"style":217},[3008],{"type":49,"value":251},{"type":44,"tag":194,"props":3010,"children":3011},{"style":254},[3012],{"type":49,"value":3013},"noreply@yourdomain.com",{"type":44,"tag":194,"props":3015,"children":3016},{"style":217},[3017],{"type":49,"value":306},{"type":44,"tag":194,"props":3019,"children":3020},{"style":217},[3021],{"type":49,"value":3022},",\n",{"type":44,"tag":194,"props":3024,"children":3025},{"class":196,"line":1508},[3026,3031,3035,3039],{"type":44,"tag":194,"props":3027,"children":3028},{"style":403},[3029],{"type":49,"value":3030},"      to",{"type":44,"tag":194,"props":3032,"children":3033},{"style":217},[3034],{"type":49,"value":641},{"type":44,"tag":194,"props":3036,"children":3037},{"style":223},[3038],{"type":49,"value":1025},{"type":44,"tag":194,"props":3040,"children":3041},{"style":217},[3042],{"type":49,"value":3022},{"type":44,"tag":194,"props":3044,"children":3045},{"class":196,"line":1516},[3046,3051,3055,3059,3064,3068],{"type":44,"tag":194,"props":3047,"children":3048},{"style":403},[3049],{"type":49,"value":3050},"      subject",{"type":44,"tag":194,"props":3052,"children":3053},{"style":217},[3054],{"type":49,"value":641},{"type":44,"tag":194,"props":3056,"children":3057},{"style":217},[3058],{"type":49,"value":251},{"type":44,"tag":194,"props":3060,"children":3061},{"style":254},[3062],{"type":49,"value":3063},"Welcome!",{"type":44,"tag":194,"props":3065,"children":3066},{"style":217},[3067],{"type":49,"value":306},{"type":44,"tag":194,"props":3069,"children":3070},{"style":217},[3071],{"type":49,"value":3022},{"type":44,"tag":194,"props":3073,"children":3074},{"class":196,"line":1565},[3075,3080,3084,3089,3094,3099,3104,3108,3113,3118],{"type":44,"tag":194,"props":3076,"children":3077},{"style":403},[3078],{"type":49,"value":3079},"      html",{"type":44,"tag":194,"props":3081,"children":3082},{"style":217},[3083],{"type":49,"value":641},{"type":44,"tag":194,"props":3085,"children":3086},{"style":217},[3087],{"type":49,"value":3088}," `",{"type":44,"tag":194,"props":3090,"children":3091},{"style":254},[3092],{"type":49,"value":3093},"\u003Cp>Hi ",{"type":44,"tag":194,"props":3095,"children":3096},{"style":217},[3097],{"type":49,"value":3098},"${",{"type":44,"tag":194,"props":3100,"children":3101},{"style":223},[3102],{"type":49,"value":3103},"name",{"type":44,"tag":194,"props":3105,"children":3106},{"style":217},[3107],{"type":49,"value":463},{"type":44,"tag":194,"props":3109,"children":3110},{"style":254},[3111],{"type":49,"value":3112},", welcome to our app!\u003C\u002Fp>",{"type":44,"tag":194,"props":3114,"children":3115},{"style":217},[3116],{"type":49,"value":3117},"`",{"type":44,"tag":194,"props":3119,"children":3120},{"style":217},[3121],{"type":49,"value":3022},{"type":44,"tag":194,"props":3123,"children":3124},{"class":196,"line":1601},[3125,3130],{"type":44,"tag":194,"props":3126,"children":3127},{"style":217},[3128],{"type":49,"value":3129},"    }",{"type":44,"tag":194,"props":3131,"children":3132},{"style":403},[3133],{"type":49,"value":468},{"type":44,"tag":194,"props":3135,"children":3136},{"class":196,"line":1674},[3137],{"type":44,"tag":194,"props":3138,"children":3139},{"emptyLinePlaceholder":269},[3140],{"type":49,"value":272},{"type":44,"tag":194,"props":3142,"children":3143},{"class":196,"line":1682},[3144],{"type":44,"tag":194,"props":3145,"children":3146},{"style":201},[3147],{"type":49,"value":3148},"    \u002F\u002F Step 5: Post notification to Slack channel\n",{"type":44,"tag":194,"props":3150,"children":3151},{"class":196,"line":1690},[3152,3156,3161,3165,3170,3174,3178,3182,3187,3192],{"type":44,"tag":194,"props":3153,"children":3154},{"style":211},[3155],{"type":49,"value":1136},{"type":44,"tag":194,"props":3157,"children":3158},{"style":294},[3159],{"type":49,"value":3160}," fetch",{"type":44,"tag":194,"props":3162,"children":3163},{"style":403},[3164],{"type":49,"value":351},{"type":44,"tag":194,"props":3166,"children":3167},{"style":223},[3168],{"type":49,"value":3169},"process",{"type":44,"tag":194,"props":3171,"children":3172},{"style":217},[3173],{"type":49,"value":444},{"type":44,"tag":194,"props":3175,"children":3176},{"style":223},[3177],{"type":49,"value":2451},{"type":44,"tag":194,"props":3179,"children":3180},{"style":217},[3181],{"type":49,"value":444},{"type":44,"tag":194,"props":3183,"children":3184},{"style":223},[3185],{"type":49,"value":3186},"SLACK_WEBHOOK_URL",{"type":44,"tag":194,"props":3188,"children":3189},{"style":217},[3190],{"type":49,"value":3191},"!,",{"type":44,"tag":194,"props":3193,"children":3194},{"style":217},[3195],{"type":49,"value":391},{"type":44,"tag":194,"props":3197,"children":3198},{"class":196,"line":1739},[3199,3204,3208,3212,3217,3221],{"type":44,"tag":194,"props":3200,"children":3201},{"style":403},[3202],{"type":49,"value":3203},"      method",{"type":44,"tag":194,"props":3205,"children":3206},{"style":217},[3207],{"type":49,"value":641},{"type":44,"tag":194,"props":3209,"children":3210},{"style":217},[3211],{"type":49,"value":251},{"type":44,"tag":194,"props":3213,"children":3214},{"style":254},[3215],{"type":49,"value":3216},"POST",{"type":44,"tag":194,"props":3218,"children":3219},{"style":217},[3220],{"type":49,"value":306},{"type":44,"tag":194,"props":3222,"children":3223},{"style":217},[3224],{"type":49,"value":3022},{"type":44,"tag":194,"props":3226,"children":3227},{"class":196,"line":1794},[3228,3233,3237,3241,3245,3250,3254,3258,3262,3267,3271],{"type":44,"tag":194,"props":3229,"children":3230},{"style":403},[3231],{"type":49,"value":3232},"      headers",{"type":44,"tag":194,"props":3234,"children":3235},{"style":217},[3236],{"type":49,"value":641},{"type":44,"tag":194,"props":3238,"children":3239},{"style":217},[3240],{"type":49,"value":220},{"type":44,"tag":194,"props":3242,"children":3243},{"style":217},[3244],{"type":49,"value":251},{"type":44,"tag":194,"props":3246,"children":3247},{"style":403},[3248],{"type":49,"value":3249},"Content-Type",{"type":44,"tag":194,"props":3251,"children":3252},{"style":217},[3253],{"type":49,"value":306},{"type":44,"tag":194,"props":3255,"children":3256},{"style":217},[3257],{"type":49,"value":641},{"type":44,"tag":194,"props":3259,"children":3260},{"style":217},[3261],{"type":49,"value":251},{"type":44,"tag":194,"props":3263,"children":3264},{"style":254},[3265],{"type":49,"value":3266},"application\u002Fjson",{"type":44,"tag":194,"props":3268,"children":3269},{"style":217},[3270],{"type":49,"value":306},{"type":44,"tag":194,"props":3272,"children":3273},{"style":217},[3274],{"type":49,"value":3275}," },\n",{"type":44,"tag":194,"props":3277,"children":3278},{"class":196,"line":1824},[3279,3284,3288,3293,3297,3302,3306],{"type":44,"tag":194,"props":3280,"children":3281},{"style":403},[3282],{"type":49,"value":3283},"      body",{"type":44,"tag":194,"props":3285,"children":3286},{"style":217},[3287],{"type":49,"value":641},{"type":44,"tag":194,"props":3289,"children":3290},{"style":223},[3291],{"type":49,"value":3292}," JSON",{"type":44,"tag":194,"props":3294,"children":3295},{"style":217},[3296],{"type":49,"value":444},{"type":44,"tag":194,"props":3298,"children":3299},{"style":294},[3300],{"type":49,"value":3301},"stringify",{"type":44,"tag":194,"props":3303,"children":3304},{"style":403},[3305],{"type":49,"value":351},{"type":44,"tag":194,"props":3307,"children":3308},{"style":217},[3309],{"type":49,"value":761},{"type":44,"tag":194,"props":3311,"children":3312},{"class":196,"line":1854},[3313,3318,3322,3326,3331,3335,3339,3343,3347,3351,3356,3360,3364,3368],{"type":44,"tag":194,"props":3314,"children":3315},{"style":403},[3316],{"type":49,"value":3317},"        text",{"type":44,"tag":194,"props":3319,"children":3320},{"style":217},[3321],{"type":49,"value":641},{"type":44,"tag":194,"props":3323,"children":3324},{"style":217},[3325],{"type":49,"value":3088},{"type":44,"tag":194,"props":3327,"children":3328},{"style":254},[3329],{"type":49,"value":3330},"New user signed up: ",{"type":44,"tag":194,"props":3332,"children":3333},{"style":217},[3334],{"type":49,"value":3098},{"type":44,"tag":194,"props":3336,"children":3337},{"style":223},[3338],{"type":49,"value":3103},{"type":44,"tag":194,"props":3340,"children":3341},{"style":217},[3342],{"type":49,"value":463},{"type":44,"tag":194,"props":3344,"children":3345},{"style":254},[3346],{"type":49,"value":361},{"type":44,"tag":194,"props":3348,"children":3349},{"style":217},[3350],{"type":49,"value":3098},{"type":44,"tag":194,"props":3352,"children":3353},{"style":223},[3354],{"type":49,"value":3355},"email",{"type":44,"tag":194,"props":3357,"children":3358},{"style":217},[3359],{"type":49,"value":463},{"type":44,"tag":194,"props":3361,"children":3362},{"style":254},[3363],{"type":49,"value":381},{"type":44,"tag":194,"props":3365,"children":3366},{"style":217},[3367],{"type":49,"value":3117},{"type":44,"tag":194,"props":3369,"children":3370},{"style":217},[3371],{"type":49,"value":3022},{"type":44,"tag":194,"props":3373,"children":3374},{"class":196,"line":1935},[3375,3380,3384],{"type":44,"tag":194,"props":3376,"children":3377},{"style":217},[3378],{"type":49,"value":3379},"      }",{"type":44,"tag":194,"props":3381,"children":3382},{"style":403},[3383],{"type":49,"value":381},{"type":44,"tag":194,"props":3385,"children":3386},{"style":217},[3387],{"type":49,"value":3022},{"type":44,"tag":194,"props":3389,"children":3390},{"class":196,"line":1943},[3391,3395],{"type":44,"tag":194,"props":3392,"children":3393},{"style":217},[3394],{"type":49,"value":3129},{"type":44,"tag":194,"props":3396,"children":3397},{"style":403},[3398],{"type":49,"value":468},{"type":44,"tag":194,"props":3400,"children":3401},{"class":196,"line":1951},[3402],{"type":44,"tag":194,"props":3403,"children":3404},{"style":217},[3405],{"type":49,"value":885},{"type":44,"tag":194,"props":3407,"children":3408},{"class":196,"line":2000},[3409],{"type":44,"tag":194,"props":3410,"children":3411},{"emptyLinePlaceholder":269},[3412],{"type":49,"value":272},{"type":44,"tag":194,"props":3414,"children":3415},{"class":196,"line":2044},[3416],{"type":44,"tag":194,"props":3417,"children":3418},{"style":201},[3419],{"type":49,"value":3420},"  \u002F\u002F Always return 200 to acknowledge receipt\n",{"type":44,"tag":194,"props":3422,"children":3423},{"class":196,"line":2072},[3424,3428,3432,3436,3440,3444,3448,3452,3456,3460,3464,3468,3472,3476],{"type":44,"tag":194,"props":3425,"children":3426},{"style":211},[3427],{"type":49,"value":2211},{"type":44,"tag":194,"props":3429,"children":3430},{"style":217},[3431],{"type":49,"value":823},{"type":44,"tag":194,"props":3433,"children":3434},{"style":294},[3435],{"type":49,"value":828},{"type":44,"tag":194,"props":3437,"children":3438},{"style":403},[3439],{"type":49,"value":351},{"type":44,"tag":194,"props":3441,"children":3442},{"style":217},[3443],{"type":49,"value":306},{"type":44,"tag":194,"props":3445,"children":3446},{"style":254},[3447],{"type":49,"value":2232},{"type":44,"tag":194,"props":3449,"children":3450},{"style":217},[3451],{"type":49,"value":306},{"type":44,"tag":194,"props":3453,"children":3454},{"style":217},[3455],{"type":49,"value":231},{"type":44,"tag":194,"props":3457,"children":3458},{"style":217},[3459],{"type":49,"value":220},{"type":44,"tag":194,"props":3461,"children":3462},{"style":403},[3463],{"type":49,"value":858},{"type":44,"tag":194,"props":3465,"children":3466},{"style":217},[3467],{"type":49,"value":641},{"type":44,"tag":194,"props":3469,"children":3470},{"style":865},[3471],{"type":49,"value":2257},{"type":44,"tag":194,"props":3473,"children":3474},{"style":217},[3475],{"type":49,"value":241},{"type":44,"tag":194,"props":3477,"children":3478},{"style":403},[3479],{"type":49,"value":468},{"type":44,"tag":194,"props":3481,"children":3482},{"class":196,"line":2100},[3483],{"type":44,"tag":194,"props":3484,"children":3485},{"style":217},[3486],{"type":49,"value":2274},{"type":44,"tag":51,"props":3488,"children":3489},{},[3490],{"type":44,"tag":78,"props":3491,"children":3492},{},[3493],{"type":49,"value":3494},"Also include proxy.ts (Next.js \u003C=15: middleware.ts) to make the route public:",{"type":44,"tag":183,"props":3496,"children":3498},{"className":185,"code":3497,"language":187,"meta":188,"style":188},"\u002F\u002F proxy.ts (Next.js \u003C=15: middleware.ts)\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver'\nconst isPublicRoute = createRouteMatcher(['\u002Fapi\u002Fwebhooks(.*)'])\nexport default clerkMiddleware(async (auth, req) => {\n  if (!isPublicRoute(req)) await auth.protect()\n})\n",[3499],{"type":44,"tag":57,"props":3500,"children":3501},{"__ignoreMap":188},[3502,3509,3552,3591,3642,3693],{"type":44,"tag":194,"props":3503,"children":3504},{"class":196,"line":197},[3505],{"type":44,"tag":194,"props":3506,"children":3507},{"style":201},[3508],{"type":49,"value":204},{"type":44,"tag":194,"props":3510,"children":3511},{"class":196,"line":207},[3512,3516,3520,3524,3528,3532,3536,3540,3544,3548],{"type":44,"tag":194,"props":3513,"children":3514},{"style":211},[3515],{"type":49,"value":214},{"type":44,"tag":194,"props":3517,"children":3518},{"style":217},[3519],{"type":49,"value":220},{"type":44,"tag":194,"props":3521,"children":3522},{"style":223},[3523],{"type":49,"value":226},{"type":44,"tag":194,"props":3525,"children":3526},{"style":217},[3527],{"type":49,"value":231},{"type":44,"tag":194,"props":3529,"children":3530},{"style":223},[3531],{"type":49,"value":236},{"type":44,"tag":194,"props":3533,"children":3534},{"style":217},[3535],{"type":49,"value":241},{"type":44,"tag":194,"props":3537,"children":3538},{"style":211},[3539],{"type":49,"value":246},{"type":44,"tag":194,"props":3541,"children":3542},{"style":217},[3543],{"type":49,"value":251},{"type":44,"tag":194,"props":3545,"children":3546},{"style":254},[3547],{"type":49,"value":257},{"type":44,"tag":194,"props":3549,"children":3550},{"style":217},[3551],{"type":49,"value":262},{"type":44,"tag":194,"props":3553,"children":3554},{"class":196,"line":265},[3555,3559,3563,3567,3571,3575,3579,3583,3587],{"type":44,"tag":194,"props":3556,"children":3557},{"style":278},[3558],{"type":49,"value":281},{"type":44,"tag":194,"props":3560,"children":3561},{"style":223},[3562],{"type":49,"value":286},{"type":44,"tag":194,"props":3564,"children":3565},{"style":217},[3566],{"type":49,"value":291},{"type":44,"tag":194,"props":3568,"children":3569},{"style":294},[3570],{"type":49,"value":236},{"type":44,"tag":194,"props":3572,"children":3573},{"style":223},[3574],{"type":49,"value":301},{"type":44,"tag":194,"props":3576,"children":3577},{"style":217},[3578],{"type":49,"value":306},{"type":44,"tag":194,"props":3580,"children":3581},{"style":254},[3582],{"type":49,"value":311},{"type":44,"tag":194,"props":3584,"children":3585},{"style":217},[3586],{"type":49,"value":306},{"type":44,"tag":194,"props":3588,"children":3589},{"style":223},[3590],{"type":49,"value":320},{"type":44,"tag":194,"props":3592,"children":3593},{"class":196,"line":27},[3594,3598,3602,3606,3610,3614,3618,3622,3626,3630,3634,3638],{"type":44,"tag":194,"props":3595,"children":3596},{"style":211},[3597],{"type":49,"value":337},{"type":44,"tag":194,"props":3599,"children":3600},{"style":211},[3601],{"type":49,"value":342},{"type":44,"tag":194,"props":3603,"children":3604},{"style":294},[3605],{"type":49,"value":226},{"type":44,"tag":194,"props":3607,"children":3608},{"style":223},[3609],{"type":49,"value":351},{"type":44,"tag":194,"props":3611,"children":3612},{"style":278},[3613],{"type":49,"value":356},{"type":44,"tag":194,"props":3615,"children":3616},{"style":217},[3617],{"type":49,"value":361},{"type":44,"tag":194,"props":3619,"children":3620},{"style":364},[3621],{"type":49,"value":367},{"type":44,"tag":194,"props":3623,"children":3624},{"style":217},[3625],{"type":49,"value":231},{"type":44,"tag":194,"props":3627,"children":3628},{"style":364},[3629],{"type":49,"value":376},{"type":44,"tag":194,"props":3631,"children":3632},{"style":217},[3633],{"type":49,"value":381},{"type":44,"tag":194,"props":3635,"children":3636},{"style":278},[3637],{"type":49,"value":386},{"type":44,"tag":194,"props":3639,"children":3640},{"style":217},[3641],{"type":49,"value":391},{"type":44,"tag":194,"props":3643,"children":3644},{"class":196,"line":323},[3645,3649,3653,3657,3661,3665,3669,3673,3677,3681,3685,3689],{"type":44,"tag":194,"props":3646,"children":3647},{"style":211},[3648],{"type":49,"value":400},{"type":44,"tag":194,"props":3650,"children":3651},{"style":403},[3652],{"type":49,"value":361},{"type":44,"tag":194,"props":3654,"children":3655},{"style":217},[3656],{"type":49,"value":410},{"type":44,"tag":194,"props":3658,"children":3659},{"style":294},[3660],{"type":49,"value":415},{"type":44,"tag":194,"props":3662,"children":3663},{"style":403},[3664],{"type":49,"value":351},{"type":44,"tag":194,"props":3666,"children":3667},{"style":223},[3668],{"type":49,"value":424},{"type":44,"tag":194,"props":3670,"children":3671},{"style":403},[3672],{"type":49,"value":429},{"type":44,"tag":194,"props":3674,"children":3675},{"style":211},[3676],{"type":49,"value":434},{"type":44,"tag":194,"props":3678,"children":3679},{"style":223},[3680],{"type":49,"value":439},{"type":44,"tag":194,"props":3682,"children":3683},{"style":217},[3684],{"type":49,"value":444},{"type":44,"tag":194,"props":3686,"children":3687},{"style":294},[3688],{"type":49,"value":449},{"type":44,"tag":194,"props":3690,"children":3691},{"style":403},[3692],{"type":49,"value":454},{"type":44,"tag":194,"props":3694,"children":3695},{"class":196,"line":331},[3696,3700],{"type":44,"tag":194,"props":3697,"children":3698},{"style":217},[3699],{"type":49,"value":463},{"type":44,"tag":194,"props":3701,"children":3702},{"style":223},[3703],{"type":49,"value":468},{"type":44,"tag":66,"props":3705,"children":3707},{"id":3706},"full-example-organization-membership-sync-to-database",[3708],{"type":49,"value":3709},"Full Example: Organization Membership Sync to Database",{"type":44,"tag":183,"props":3711,"children":3713},{"className":185,"code":3712,"language":187,"meta":188,"style":188},"\u002F\u002F app\u002Fapi\u002Fwebhooks\u002Froute.ts\nimport { verifyWebhook } from '@clerk\u002Fnextjs\u002Fwebhooks'\nimport { NextRequest } from 'next\u002Fserver'\nimport { db } from '@\u002Flib\u002Fdb' \u002F\u002F your database client\n\nexport async function POST(req: NextRequest) {\n  \u002F\u002F ALWAYS verify signature - never skip, even for simple handlers\n  let evt\n  try {\n    evt = await verifyWebhook(req) \u002F\u002F uses CLERK_WEBHOOK_SIGNING_SECRET env var\n  } catch (err) {\n    console.error('Webhook verification failed:', err)\n    return new Response('Verification failed', { status: 400 })\n  }\n\n  if (evt.type === 'organization.created') {\n    const { id, name } = evt.data\n    await db.workspaces.create({\n      data: { orgId: id, name, createdAt: new Date() },\n    })\n  }\n\n  if (evt.type === 'organizationMembership.created') {\n    \u002F\u002F Extract organization ID, user ID, and role from payload\n    const { organization, public_user_data, role } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n\n    \u002F\u002F Add to team_members table\n    await db.team_members.create({\n      data: { orgId, userId, role },\n    })\n\n    \u002F\u002F Create workspace record for new member\n    await db.workspaces.create({\n      data: { orgId, userId, createdAt: new Date() },\n    })\n  }\n\n  if (evt.type === 'organizationMembership.deleted') {\n    \u002F\u002F Extract organization ID and user ID from payload\n    const { organization, public_user_data } = evt.data\n    const orgId = organization.id\n    const userId = public_user_data.user_id\n\n    \u002F\u002F Remove from team_members table\n    await db.team_members.delete({\n      where: { orgId, userId },\n    })\n\n    \u002F\u002F Remove workspace record\n    await db.workspaces.deleteMany({\n      where: { orgId, userId },\n    })\n  }\n\n  \u002F\u002F Return 200 status on success\n  return new Response('OK', { status: 200 })\n}\n",[3714],{"type":44,"tag":57,"props":3715,"children":3716},{"__ignoreMap":188},[3717,3724,3759,3794,3834,3841,3884,3892,3903,3914,3949,3976,4019,4078,4085,4092,4140,4183,4219,4287,4298,4305,4312,4359,4367,4418,4445,4472,4479,4487,4523,4562,4573,4580,4588,4623,4678,4689,4696,4703,4750,4758,4801,4828,4855,4862,4870,4905,4937,4948,4956,4965,5002,5034,5046,5054,5062,5071,5131],{"type":44,"tag":194,"props":3718,"children":3719},{"class":196,"line":197},[3720],{"type":44,"tag":194,"props":3721,"children":3722},{"style":201},[3723],{"type":49,"value":489},{"type":44,"tag":194,"props":3725,"children":3726},{"class":196,"line":207},[3727,3731,3735,3739,3743,3747,3751,3755],{"type":44,"tag":194,"props":3728,"children":3729},{"style":211},[3730],{"type":49,"value":214},{"type":44,"tag":194,"props":3732,"children":3733},{"style":217},[3734],{"type":49,"value":220},{"type":44,"tag":194,"props":3736,"children":3737},{"style":223},[3738],{"type":49,"value":505},{"type":44,"tag":194,"props":3740,"children":3741},{"style":217},[3742],{"type":49,"value":241},{"type":44,"tag":194,"props":3744,"children":3745},{"style":211},[3746],{"type":49,"value":246},{"type":44,"tag":194,"props":3748,"children":3749},{"style":217},[3750],{"type":49,"value":251},{"type":44,"tag":194,"props":3752,"children":3753},{"style":254},[3754],{"type":49,"value":152},{"type":44,"tag":194,"props":3756,"children":3757},{"style":217},[3758],{"type":49,"value":262},{"type":44,"tag":194,"props":3760,"children":3761},{"class":196,"line":265},[3762,3766,3770,3774,3778,3782,3786,3790],{"type":44,"tag":194,"props":3763,"children":3764},{"style":211},[3765],{"type":49,"value":214},{"type":44,"tag":194,"props":3767,"children":3768},{"style":217},[3769],{"type":49,"value":220},{"type":44,"tag":194,"props":3771,"children":3772},{"style":223},[3773],{"type":49,"value":541},{"type":44,"tag":194,"props":3775,"children":3776},{"style":217},[3777],{"type":49,"value":241},{"type":44,"tag":194,"props":3779,"children":3780},{"style":211},[3781],{"type":49,"value":246},{"type":44,"tag":194,"props":3783,"children":3784},{"style":217},[3785],{"type":49,"value":251},{"type":44,"tag":194,"props":3787,"children":3788},{"style":254},[3789],{"type":49,"value":558},{"type":44,"tag":194,"props":3791,"children":3792},{"style":217},[3793],{"type":49,"value":262},{"type":44,"tag":194,"props":3795,"children":3796},{"class":196,"line":27},[3797,3801,3805,3809,3813,3817,3821,3825,3829],{"type":44,"tag":194,"props":3798,"children":3799},{"style":211},[3800],{"type":49,"value":214},{"type":44,"tag":194,"props":3802,"children":3803},{"style":217},[3804],{"type":49,"value":220},{"type":44,"tag":194,"props":3806,"children":3807},{"style":223},[3808],{"type":49,"value":578},{"type":44,"tag":194,"props":3810,"children":3811},{"style":217},[3812],{"type":49,"value":241},{"type":44,"tag":194,"props":3814,"children":3815},{"style":211},[3816],{"type":49,"value":246},{"type":44,"tag":194,"props":3818,"children":3819},{"style":217},[3820],{"type":49,"value":251},{"type":44,"tag":194,"props":3822,"children":3823},{"style":254},[3824],{"type":49,"value":595},{"type":44,"tag":194,"props":3826,"children":3827},{"style":217},[3828],{"type":49,"value":306},{"type":44,"tag":194,"props":3830,"children":3831},{"style":201},[3832],{"type":49,"value":3833}," \u002F\u002F your database client\n",{"type":44,"tag":194,"props":3835,"children":3836},{"class":196,"line":323},[3837],{"type":44,"tag":194,"props":3838,"children":3839},{"emptyLinePlaceholder":269},[3840],{"type":49,"value":272},{"type":44,"tag":194,"props":3842,"children":3843},{"class":196,"line":331},[3844,3848,3852,3856,3860,3864,3868,3872,3876,3880],{"type":44,"tag":194,"props":3845,"children":3846},{"style":211},[3847],{"type":49,"value":337},{"type":44,"tag":194,"props":3849,"children":3850},{"style":278},[3851],{"type":49,"value":618},{"type":44,"tag":194,"props":3853,"children":3854},{"style":278},[3855],{"type":49,"value":623},{"type":44,"tag":194,"props":3857,"children":3858},{"style":294},[3859],{"type":49,"value":628},{"type":44,"tag":194,"props":3861,"children":3862},{"style":217},[3863],{"type":49,"value":351},{"type":44,"tag":194,"props":3865,"children":3866},{"style":364},[3867],{"type":49,"value":424},{"type":44,"tag":194,"props":3869,"children":3870},{"style":217},[3871],{"type":49,"value":641},{"type":44,"tag":194,"props":3873,"children":3874},{"style":644},[3875],{"type":49,"value":541},{"type":44,"tag":194,"props":3877,"children":3878},{"style":217},[3879],{"type":49,"value":381},{"type":44,"tag":194,"props":3881,"children":3882},{"style":217},[3883],{"type":49,"value":391},{"type":44,"tag":194,"props":3885,"children":3886},{"class":196,"line":394},[3887],{"type":44,"tag":194,"props":3888,"children":3889},{"style":201},[3890],{"type":49,"value":3891},"  \u002F\u002F ALWAYS verify signature - never skip, even for simple handlers\n",{"type":44,"tag":194,"props":3893,"children":3894},{"class":196,"line":457},[3895,3899],{"type":44,"tag":194,"props":3896,"children":3897},{"style":278},[3898],{"type":49,"value":670},{"type":44,"tag":194,"props":3900,"children":3901},{"style":223},[3902],{"type":49,"value":675},{"type":44,"tag":194,"props":3904,"children":3905},{"class":196,"line":678},[3906,3910],{"type":44,"tag":194,"props":3907,"children":3908},{"style":211},[3909],{"type":49,"value":684},{"type":44,"tag":194,"props":3911,"children":3912},{"style":217},[3913],{"type":49,"value":391},{"type":44,"tag":194,"props":3915,"children":3916},{"class":196,"line":691},[3917,3921,3925,3929,3933,3937,3941,3945],{"type":44,"tag":194,"props":3918,"children":3919},{"style":223},[3920],{"type":49,"value":697},{"type":44,"tag":194,"props":3922,"children":3923},{"style":217},[3924],{"type":49,"value":702},{"type":44,"tag":194,"props":3926,"children":3927},{"style":211},[3928],{"type":49,"value":707},{"type":44,"tag":194,"props":3930,"children":3931},{"style":294},[3932],{"type":49,"value":505},{"type":44,"tag":194,"props":3934,"children":3935},{"style":403},[3936],{"type":49,"value":351},{"type":44,"tag":194,"props":3938,"children":3939},{"style":223},[3940],{"type":49,"value":424},{"type":44,"tag":194,"props":3942,"children":3943},{"style":403},[3944],{"type":49,"value":724},{"type":44,"tag":194,"props":3946,"children":3947},{"style":201},[3948],{"type":49,"value":2576},{"type":44,"tag":194,"props":3950,"children":3951},{"class":196,"line":732},[3952,3956,3960,3964,3968,3972],{"type":44,"tag":194,"props":3953,"children":3954},{"style":217},[3955],{"type":49,"value":738},{"type":44,"tag":194,"props":3957,"children":3958},{"style":211},[3959],{"type":49,"value":743},{"type":44,"tag":194,"props":3961,"children":3962},{"style":403},[3963],{"type":49,"value":361},{"type":44,"tag":194,"props":3965,"children":3966},{"style":223},[3967],{"type":49,"value":752},{"type":44,"tag":194,"props":3969,"children":3970},{"style":403},[3971],{"type":49,"value":724},{"type":44,"tag":194,"props":3973,"children":3974},{"style":217},[3975],{"type":49,"value":761},{"type":44,"tag":194,"props":3977,"children":3978},{"class":196,"line":764},[3979,3983,3987,3991,3995,3999,4003,4007,4011,4015],{"type":44,"tag":194,"props":3980,"children":3981},{"style":223},[3982],{"type":49,"value":770},{"type":44,"tag":194,"props":3984,"children":3985},{"style":217},[3986],{"type":49,"value":444},{"type":44,"tag":194,"props":3988,"children":3989},{"style":294},[3990],{"type":49,"value":779},{"type":44,"tag":194,"props":3992,"children":3993},{"style":403},[3994],{"type":49,"value":351},{"type":44,"tag":194,"props":3996,"children":3997},{"style":217},[3998],{"type":49,"value":306},{"type":44,"tag":194,"props":4000,"children":4001},{"style":254},[4002],{"type":49,"value":792},{"type":44,"tag":194,"props":4004,"children":4005},{"style":217},[4006],{"type":49,"value":306},{"type":44,"tag":194,"props":4008,"children":4009},{"style":217},[4010],{"type":49,"value":231},{"type":44,"tag":194,"props":4012,"children":4013},{"style":223},[4014],{"type":49,"value":805},{"type":44,"tag":194,"props":4016,"children":4017},{"style":403},[4018],{"type":49,"value":468},{"type":44,"tag":194,"props":4020,"children":4021},{"class":196,"line":812},[4022,4026,4030,4034,4038,4042,4046,4050,4054,4058,4062,4066,4070,4074],{"type":44,"tag":194,"props":4023,"children":4024},{"style":211},[4025],{"type":49,"value":818},{"type":44,"tag":194,"props":4027,"children":4028},{"style":217},[4029],{"type":49,"value":823},{"type":44,"tag":194,"props":4031,"children":4032},{"style":294},[4033],{"type":49,"value":828},{"type":44,"tag":194,"props":4035,"children":4036},{"style":403},[4037],{"type":49,"value":351},{"type":44,"tag":194,"props":4039,"children":4040},{"style":217},[4041],{"type":49,"value":306},{"type":44,"tag":194,"props":4043,"children":4044},{"style":254},[4045],{"type":49,"value":841},{"type":44,"tag":194,"props":4047,"children":4048},{"style":217},[4049],{"type":49,"value":306},{"type":44,"tag":194,"props":4051,"children":4052},{"style":217},[4053],{"type":49,"value":231},{"type":44,"tag":194,"props":4055,"children":4056},{"style":217},[4057],{"type":49,"value":220},{"type":44,"tag":194,"props":4059,"children":4060},{"style":403},[4061],{"type":49,"value":858},{"type":44,"tag":194,"props":4063,"children":4064},{"style":217},[4065],{"type":49,"value":641},{"type":44,"tag":194,"props":4067,"children":4068},{"style":865},[4069],{"type":49,"value":868},{"type":44,"tag":194,"props":4071,"children":4072},{"style":217},[4073],{"type":49,"value":241},{"type":44,"tag":194,"props":4075,"children":4076},{"style":403},[4077],{"type":49,"value":468},{"type":44,"tag":194,"props":4079,"children":4080},{"class":196,"line":879},[4081],{"type":44,"tag":194,"props":4082,"children":4083},{"style":217},[4084],{"type":49,"value":885},{"type":44,"tag":194,"props":4086,"children":4087},{"class":196,"line":888},[4088],{"type":44,"tag":194,"props":4089,"children":4090},{"emptyLinePlaceholder":269},[4091],{"type":49,"value":272},{"type":44,"tag":194,"props":4093,"children":4094},{"class":196,"line":896},[4095,4099,4103,4107,4111,4115,4119,4123,4128,4132,4136],{"type":44,"tag":194,"props":4096,"children":4097},{"style":211},[4098],{"type":49,"value":400},{"type":44,"tag":194,"props":4100,"children":4101},{"style":403},[4102],{"type":49,"value":361},{"type":44,"tag":194,"props":4104,"children":4105},{"style":223},[4106],{"type":49,"value":910},{"type":44,"tag":194,"props":4108,"children":4109},{"style":217},[4110],{"type":49,"value":444},{"type":44,"tag":194,"props":4112,"children":4113},{"style":223},[4114],{"type":49,"value":919},{"type":44,"tag":194,"props":4116,"children":4117},{"style":217},[4118],{"type":49,"value":924},{"type":44,"tag":194,"props":4120,"children":4121},{"style":217},[4122],{"type":49,"value":251},{"type":44,"tag":194,"props":4124,"children":4125},{"style":254},[4126],{"type":49,"value":4127},"organization.created",{"type":44,"tag":194,"props":4129,"children":4130},{"style":217},[4131],{"type":49,"value":306},{"type":44,"tag":194,"props":4133,"children":4134},{"style":403},[4135],{"type":49,"value":724},{"type":44,"tag":194,"props":4137,"children":4138},{"style":217},[4139],{"type":49,"value":761},{"type":44,"tag":194,"props":4141,"children":4142},{"class":196,"line":948},[4143,4147,4151,4155,4159,4163,4167,4171,4175,4179],{"type":44,"tag":194,"props":4144,"children":4145},{"style":278},[4146],{"type":49,"value":954},{"type":44,"tag":194,"props":4148,"children":4149},{"style":217},[4150],{"type":49,"value":220},{"type":44,"tag":194,"props":4152,"children":4153},{"style":223},[4154],{"type":49,"value":963},{"type":44,"tag":194,"props":4156,"children":4157},{"style":217},[4158],{"type":49,"value":231},{"type":44,"tag":194,"props":4160,"children":4161},{"style":223},[4162],{"type":49,"value":1071},{"type":44,"tag":194,"props":4164,"children":4165},{"style":217},[4166],{"type":49,"value":241},{"type":44,"tag":194,"props":4168,"children":4169},{"style":217},[4170],{"type":49,"value":702},{"type":44,"tag":194,"props":4172,"children":4173},{"style":223},[4174],{"type":49,"value":1003},{"type":44,"tag":194,"props":4176,"children":4177},{"style":217},[4178],{"type":49,"value":444},{"type":44,"tag":194,"props":4180,"children":4181},{"style":223},[4182],{"type":49,"value":1012},{"type":44,"tag":194,"props":4184,"children":4185},{"class":196,"line":1015},[4186,4190,4194,4198,4203,4207,4211,4215],{"type":44,"tag":194,"props":4187,"children":4188},{"style":211},[4189],{"type":49,"value":1136},{"type":44,"tag":194,"props":4191,"children":4192},{"style":223},[4193],{"type":49,"value":578},{"type":44,"tag":194,"props":4195,"children":4196},{"style":217},[4197],{"type":49,"value":444},{"type":44,"tag":194,"props":4199,"children":4200},{"style":223},[4201],{"type":49,"value":4202},"workspaces",{"type":44,"tag":194,"props":4204,"children":4205},{"style":217},[4206],{"type":49,"value":444},{"type":44,"tag":194,"props":4208,"children":4209},{"style":294},[4210],{"type":49,"value":1158},{"type":44,"tag":194,"props":4212,"children":4213},{"style":403},[4214],{"type":49,"value":351},{"type":44,"tag":194,"props":4216,"children":4217},{"style":217},[4218],{"type":49,"value":761},{"type":44,"tag":194,"props":4220,"children":4221},{"class":196,"line":1061},[4222,4227,4231,4235,4239,4243,4247,4251,4255,4259,4264,4268,4272,4277,4282],{"type":44,"tag":194,"props":4223,"children":4224},{"style":403},[4225],{"type":49,"value":4226},"      data",{"type":44,"tag":194,"props":4228,"children":4229},{"style":217},[4230],{"type":49,"value":641},{"type":44,"tag":194,"props":4232,"children":4233},{"style":217},[4234],{"type":49,"value":220},{"type":44,"tag":194,"props":4236,"children":4237},{"style":403},[4238],{"type":49,"value":1804},{"type":44,"tag":194,"props":4240,"children":4241},{"style":217},[4242],{"type":49,"value":641},{"type":44,"tag":194,"props":4244,"children":4245},{"style":223},[4246],{"type":49,"value":963},{"type":44,"tag":194,"props":4248,"children":4249},{"style":217},[4250],{"type":49,"value":231},{"type":44,"tag":194,"props":4252,"children":4253},{"style":223},[4254],{"type":49,"value":1071},{"type":44,"tag":194,"props":4256,"children":4257},{"style":217},[4258],{"type":49,"value":231},{"type":44,"tag":194,"props":4260,"children":4261},{"style":403},[4262],{"type":49,"value":4263}," createdAt",{"type":44,"tag":194,"props":4265,"children":4266},{"style":217},[4267],{"type":49,"value":641},{"type":44,"tag":194,"props":4269,"children":4270},{"style":217},[4271],{"type":49,"value":823},{"type":44,"tag":194,"props":4273,"children":4274},{"style":294},[4275],{"type":49,"value":4276}," Date",{"type":44,"tag":194,"props":4278,"children":4279},{"style":403},[4280],{"type":49,"value":4281},"() ",{"type":44,"tag":194,"props":4283,"children":4284},{"style":217},[4285],{"type":49,"value":4286},"},\n",{"type":44,"tag":194,"props":4288,"children":4289},{"class":196,"line":1130},[4290,4294],{"type":44,"tag":194,"props":4291,"children":4292},{"style":217},[4293],{"type":49,"value":3129},{"type":44,"tag":194,"props":4295,"children":4296},{"style":403},[4297],{"type":49,"value":468},{"type":44,"tag":194,"props":4299,"children":4300},{"class":196,"line":1224},[4301],{"type":44,"tag":194,"props":4302,"children":4303},{"style":217},[4304],{"type":49,"value":885},{"type":44,"tag":194,"props":4306,"children":4307},{"class":196,"line":1232},[4308],{"type":44,"tag":194,"props":4309,"children":4310},{"emptyLinePlaceholder":269},[4311],{"type":49,"value":272},{"type":44,"tag":194,"props":4313,"children":4314},{"class":196,"line":1240},[4315,4319,4323,4327,4331,4335,4339,4343,4347,4351,4355],{"type":44,"tag":194,"props":4316,"children":4317},{"style":211},[4318],{"type":49,"value":400},{"type":44,"tag":194,"props":4320,"children":4321},{"style":403},[4322],{"type":49,"value":361},{"type":44,"tag":194,"props":4324,"children":4325},{"style":223},[4326],{"type":49,"value":910},{"type":44,"tag":194,"props":4328,"children":4329},{"style":217},[4330],{"type":49,"value":444},{"type":44,"tag":194,"props":4332,"children":4333},{"style":223},[4334],{"type":49,"value":919},{"type":44,"tag":194,"props":4336,"children":4337},{"style":217},[4338],{"type":49,"value":924},{"type":44,"tag":194,"props":4340,"children":4341},{"style":217},[4342],{"type":49,"value":251},{"type":44,"tag":194,"props":4344,"children":4345},{"style":254},[4346],{"type":49,"value":1724},{"type":44,"tag":194,"props":4348,"children":4349},{"style":217},[4350],{"type":49,"value":306},{"type":44,"tag":194,"props":4352,"children":4353},{"style":403},[4354],{"type":49,"value":724},{"type":44,"tag":194,"props":4356,"children":4357},{"style":217},[4358],{"type":49,"value":761},{"type":44,"tag":194,"props":4360,"children":4361},{"class":196,"line":1289},[4362],{"type":44,"tag":194,"props":4363,"children":4364},{"style":201},[4365],{"type":49,"value":4366},"    \u002F\u002F Extract organization ID, user ID, and role from payload\n",{"type":44,"tag":194,"props":4368,"children":4369},{"class":196,"line":1349},[4370,4374,4378,4382,4386,4390,4394,4398,4402,4406,4410,4414],{"type":44,"tag":194,"props":4371,"children":4372},{"style":278},[4373],{"type":49,"value":954},{"type":44,"tag":194,"props":4375,"children":4376},{"style":217},[4377],{"type":49,"value":220},{"type":44,"tag":194,"props":4379,"children":4380},{"style":223},[4381],{"type":49,"value":1753},{"type":44,"tag":194,"props":4383,"children":4384},{"style":217},[4385],{"type":49,"value":231},{"type":44,"tag":194,"props":4387,"children":4388},{"style":223},[4389],{"type":49,"value":1762},{"type":44,"tag":194,"props":4391,"children":4392},{"style":217},[4393],{"type":49,"value":231},{"type":44,"tag":194,"props":4395,"children":4396},{"style":223},[4397],{"type":49,"value":1771},{"type":44,"tag":194,"props":4399,"children":4400},{"style":217},[4401],{"type":49,"value":241},{"type":44,"tag":194,"props":4403,"children":4404},{"style":217},[4405],{"type":49,"value":702},{"type":44,"tag":194,"props":4407,"children":4408},{"style":223},[4409],{"type":49,"value":1003},{"type":44,"tag":194,"props":4411,"children":4412},{"style":217},[4413],{"type":49,"value":444},{"type":44,"tag":194,"props":4415,"children":4416},{"style":223},[4417],{"type":49,"value":1012},{"type":44,"tag":194,"props":4419,"children":4420},{"class":196,"line":1389},[4421,4425,4429,4433,4437,4441],{"type":44,"tag":194,"props":4422,"children":4423},{"style":278},[4424],{"type":49,"value":954},{"type":44,"tag":194,"props":4426,"children":4427},{"style":223},[4428],{"type":49,"value":1804},{"type":44,"tag":194,"props":4430,"children":4431},{"style":217},[4432],{"type":49,"value":702},{"type":44,"tag":194,"props":4434,"children":4435},{"style":223},[4436],{"type":49,"value":1753},{"type":44,"tag":194,"props":4438,"children":4439},{"style":217},[4440],{"type":49,"value":444},{"type":44,"tag":194,"props":4442,"children":4443},{"style":223},[4444],{"type":49,"value":1821},{"type":44,"tag":194,"props":4446,"children":4447},{"class":196,"line":1500},[4448,4452,4456,4460,4464,4468],{"type":44,"tag":194,"props":4449,"children":4450},{"style":278},[4451],{"type":49,"value":954},{"type":44,"tag":194,"props":4453,"children":4454},{"style":223},[4455],{"type":49,"value":1834},{"type":44,"tag":194,"props":4457,"children":4458},{"style":217},[4459],{"type":49,"value":702},{"type":44,"tag":194,"props":4461,"children":4462},{"style":223},[4463],{"type":49,"value":1762},{"type":44,"tag":194,"props":4465,"children":4466},{"style":217},[4467],{"type":49,"value":444},{"type":44,"tag":194,"props":4469,"children":4470},{"style":223},[4471],{"type":49,"value":1851},{"type":44,"tag":194,"props":4473,"children":4474},{"class":196,"line":1508},[4475],{"type":44,"tag":194,"props":4476,"children":4477},{"emptyLinePlaceholder":269},[4478],{"type":49,"value":272},{"type":44,"tag":194,"props":4480,"children":4481},{"class":196,"line":1516},[4482],{"type":44,"tag":194,"props":4483,"children":4484},{"style":201},[4485],{"type":49,"value":4486},"    \u002F\u002F Add to team_members table\n",{"type":44,"tag":194,"props":4488,"children":4489},{"class":196,"line":1565},[4490,4494,4498,4502,4507,4511,4515,4519],{"type":44,"tag":194,"props":4491,"children":4492},{"style":211},[4493],{"type":49,"value":1136},{"type":44,"tag":194,"props":4495,"children":4496},{"style":223},[4497],{"type":49,"value":578},{"type":44,"tag":194,"props":4499,"children":4500},{"style":217},[4501],{"type":49,"value":444},{"type":44,"tag":194,"props":4503,"children":4504},{"style":223},[4505],{"type":49,"value":4506},"team_members",{"type":44,"tag":194,"props":4508,"children":4509},{"style":217},[4510],{"type":49,"value":444},{"type":44,"tag":194,"props":4512,"children":4513},{"style":294},[4514],{"type":49,"value":1158},{"type":44,"tag":194,"props":4516,"children":4517},{"style":403},[4518],{"type":49,"value":351},{"type":44,"tag":194,"props":4520,"children":4521},{"style":217},[4522],{"type":49,"value":761},{"type":44,"tag":194,"props":4524,"children":4525},{"class":196,"line":1601},[4526,4530,4534,4538,4542,4546,4550,4554,4558],{"type":44,"tag":194,"props":4527,"children":4528},{"style":403},[4529],{"type":49,"value":4226},{"type":44,"tag":194,"props":4531,"children":4532},{"style":217},[4533],{"type":49,"value":641},{"type":44,"tag":194,"props":4535,"children":4536},{"style":217},[4537],{"type":49,"value":220},{"type":44,"tag":194,"props":4539,"children":4540},{"style":223},[4541],{"type":49,"value":1804},{"type":44,"tag":194,"props":4543,"children":4544},{"style":217},[4545],{"type":49,"value":231},{"type":44,"tag":194,"props":4547,"children":4548},{"style":223},[4549],{"type":49,"value":1834},{"type":44,"tag":194,"props":4551,"children":4552},{"style":217},[4553],{"type":49,"value":231},{"type":44,"tag":194,"props":4555,"children":4556},{"style":223},[4557],{"type":49,"value":1771},{"type":44,"tag":194,"props":4559,"children":4560},{"style":217},[4561],{"type":49,"value":3275},{"type":44,"tag":194,"props":4563,"children":4564},{"class":196,"line":1674},[4565,4569],{"type":44,"tag":194,"props":4566,"children":4567},{"style":217},[4568],{"type":49,"value":3129},{"type":44,"tag":194,"props":4570,"children":4571},{"style":403},[4572],{"type":49,"value":468},{"type":44,"tag":194,"props":4574,"children":4575},{"class":196,"line":1682},[4576],{"type":44,"tag":194,"props":4577,"children":4578},{"emptyLinePlaceholder":269},[4579],{"type":49,"value":272},{"type":44,"tag":194,"props":4581,"children":4582},{"class":196,"line":1690},[4583],{"type":44,"tag":194,"props":4584,"children":4585},{"style":201},[4586],{"type":49,"value":4587},"    \u002F\u002F Create workspace record for new member\n",{"type":44,"tag":194,"props":4589,"children":4590},{"class":196,"line":1739},[4591,4595,4599,4603,4607,4611,4615,4619],{"type":44,"tag":194,"props":4592,"children":4593},{"style":211},[4594],{"type":49,"value":1136},{"type":44,"tag":194,"props":4596,"children":4597},{"style":223},[4598],{"type":49,"value":578},{"type":44,"tag":194,"props":4600,"children":4601},{"style":217},[4602],{"type":49,"value":444},{"type":44,"tag":194,"props":4604,"children":4605},{"style":223},[4606],{"type":49,"value":4202},{"type":44,"tag":194,"props":4608,"children":4609},{"style":217},[4610],{"type":49,"value":444},{"type":44,"tag":194,"props":4612,"children":4613},{"style":294},[4614],{"type":49,"value":1158},{"type":44,"tag":194,"props":4616,"children":4617},{"style":403},[4618],{"type":49,"value":351},{"type":44,"tag":194,"props":4620,"children":4621},{"style":217},[4622],{"type":49,"value":761},{"type":44,"tag":194,"props":4624,"children":4625},{"class":196,"line":1794},[4626,4630,4634,4638,4642,4646,4650,4654,4658,4662,4666,4670,4674],{"type":44,"tag":194,"props":4627,"children":4628},{"style":403},[4629],{"type":49,"value":4226},{"type":44,"tag":194,"props":4631,"children":4632},{"style":217},[4633],{"type":49,"value":641},{"type":44,"tag":194,"props":4635,"children":4636},{"style":217},[4637],{"type":49,"value":220},{"type":44,"tag":194,"props":4639,"children":4640},{"style":223},[4641],{"type":49,"value":1804},{"type":44,"tag":194,"props":4643,"children":4644},{"style":217},[4645],{"type":49,"value":231},{"type":44,"tag":194,"props":4647,"children":4648},{"style":223},[4649],{"type":49,"value":1834},{"type":44,"tag":194,"props":4651,"children":4652},{"style":217},[4653],{"type":49,"value":231},{"type":44,"tag":194,"props":4655,"children":4656},{"style":403},[4657],{"type":49,"value":4263},{"type":44,"tag":194,"props":4659,"children":4660},{"style":217},[4661],{"type":49,"value":641},{"type":44,"tag":194,"props":4663,"children":4664},{"style":217},[4665],{"type":49,"value":823},{"type":44,"tag":194,"props":4667,"children":4668},{"style":294},[4669],{"type":49,"value":4276},{"type":44,"tag":194,"props":4671,"children":4672},{"style":403},[4673],{"type":49,"value":4281},{"type":44,"tag":194,"props":4675,"children":4676},{"style":217},[4677],{"type":49,"value":4286},{"type":44,"tag":194,"props":4679,"children":4680},{"class":196,"line":1824},[4681,4685],{"type":44,"tag":194,"props":4682,"children":4683},{"style":217},[4684],{"type":49,"value":3129},{"type":44,"tag":194,"props":4686,"children":4687},{"style":403},[4688],{"type":49,"value":468},{"type":44,"tag":194,"props":4690,"children":4691},{"class":196,"line":1854},[4692],{"type":44,"tag":194,"props":4693,"children":4694},{"style":217},[4695],{"type":49,"value":885},{"type":44,"tag":194,"props":4697,"children":4698},{"class":196,"line":1935},[4699],{"type":44,"tag":194,"props":4700,"children":4701},{"emptyLinePlaceholder":269},[4702],{"type":49,"value":272},{"type":44,"tag":194,"props":4704,"children":4705},{"class":196,"line":1943},[4706,4710,4714,4718,4722,4726,4730,4734,4738,4742,4746],{"type":44,"tag":194,"props":4707,"children":4708},{"style":211},[4709],{"type":49,"value":400},{"type":44,"tag":194,"props":4711,"children":4712},{"style":403},[4713],{"type":49,"value":361},{"type":44,"tag":194,"props":4715,"children":4716},{"style":223},[4717],{"type":49,"value":910},{"type":44,"tag":194,"props":4719,"children":4720},{"style":217},[4721],{"type":49,"value":444},{"type":44,"tag":194,"props":4723,"children":4724},{"style":223},[4725],{"type":49,"value":919},{"type":44,"tag":194,"props":4727,"children":4728},{"style":217},[4729],{"type":49,"value":924},{"type":44,"tag":194,"props":4731,"children":4732},{"style":217},[4733],{"type":49,"value":251},{"type":44,"tag":194,"props":4735,"children":4736},{"style":254},[4737],{"type":49,"value":1985},{"type":44,"tag":194,"props":4739,"children":4740},{"style":217},[4741],{"type":49,"value":306},{"type":44,"tag":194,"props":4743,"children":4744},{"style":403},[4745],{"type":49,"value":724},{"type":44,"tag":194,"props":4747,"children":4748},{"style":217},[4749],{"type":49,"value":761},{"type":44,"tag":194,"props":4751,"children":4752},{"class":196,"line":1951},[4753],{"type":44,"tag":194,"props":4754,"children":4755},{"style":201},[4756],{"type":49,"value":4757},"    \u002F\u002F Extract organization ID and user ID from payload\n",{"type":44,"tag":194,"props":4759,"children":4760},{"class":196,"line":2000},[4761,4765,4769,4773,4777,4781,4785,4789,4793,4797],{"type":44,"tag":194,"props":4762,"children":4763},{"style":278},[4764],{"type":49,"value":954},{"type":44,"tag":194,"props":4766,"children":4767},{"style":217},[4768],{"type":49,"value":220},{"type":44,"tag":194,"props":4770,"children":4771},{"style":223},[4772],{"type":49,"value":1753},{"type":44,"tag":194,"props":4774,"children":4775},{"style":217},[4776],{"type":49,"value":231},{"type":44,"tag":194,"props":4778,"children":4779},{"style":223},[4780],{"type":49,"value":1762},{"type":44,"tag":194,"props":4782,"children":4783},{"style":217},[4784],{"type":49,"value":241},{"type":44,"tag":194,"props":4786,"children":4787},{"style":217},[4788],{"type":49,"value":702},{"type":44,"tag":194,"props":4790,"children":4791},{"style":223},[4792],{"type":49,"value":1003},{"type":44,"tag":194,"props":4794,"children":4795},{"style":217},[4796],{"type":49,"value":444},{"type":44,"tag":194,"props":4798,"children":4799},{"style":223},[4800],{"type":49,"value":1012},{"type":44,"tag":194,"props":4802,"children":4803},{"class":196,"line":2044},[4804,4808,4812,4816,4820,4824],{"type":44,"tag":194,"props":4805,"children":4806},{"style":278},[4807],{"type":49,"value":954},{"type":44,"tag":194,"props":4809,"children":4810},{"style":223},[4811],{"type":49,"value":1804},{"type":44,"tag":194,"props":4813,"children":4814},{"style":217},[4815],{"type":49,"value":702},{"type":44,"tag":194,"props":4817,"children":4818},{"style":223},[4819],{"type":49,"value":1753},{"type":44,"tag":194,"props":4821,"children":4822},{"style":217},[4823],{"type":49,"value":444},{"type":44,"tag":194,"props":4825,"children":4826},{"style":223},[4827],{"type":49,"value":1821},{"type":44,"tag":194,"props":4829,"children":4830},{"class":196,"line":2072},[4831,4835,4839,4843,4847,4851],{"type":44,"tag":194,"props":4832,"children":4833},{"style":278},[4834],{"type":49,"value":954},{"type":44,"tag":194,"props":4836,"children":4837},{"style":223},[4838],{"type":49,"value":1834},{"type":44,"tag":194,"props":4840,"children":4841},{"style":217},[4842],{"type":49,"value":702},{"type":44,"tag":194,"props":4844,"children":4845},{"style":223},[4846],{"type":49,"value":1762},{"type":44,"tag":194,"props":4848,"children":4849},{"style":217},[4850],{"type":49,"value":444},{"type":44,"tag":194,"props":4852,"children":4853},{"style":223},[4854],{"type":49,"value":1851},{"type":44,"tag":194,"props":4856,"children":4857},{"class":196,"line":2100},[4858],{"type":44,"tag":194,"props":4859,"children":4860},{"emptyLinePlaceholder":269},[4861],{"type":49,"value":272},{"type":44,"tag":194,"props":4863,"children":4864},{"class":196,"line":2189},[4865],{"type":44,"tag":194,"props":4866,"children":4867},{"style":201},[4868],{"type":49,"value":4869},"    \u002F\u002F Remove from team_members table\n",{"type":44,"tag":194,"props":4871,"children":4872},{"class":196,"line":2197},[4873,4877,4881,4885,4889,4893,4897,4901],{"type":44,"tag":194,"props":4874,"children":4875},{"style":211},[4876],{"type":49,"value":1136},{"type":44,"tag":194,"props":4878,"children":4879},{"style":223},[4880],{"type":49,"value":578},{"type":44,"tag":194,"props":4882,"children":4883},{"style":217},[4884],{"type":49,"value":444},{"type":44,"tag":194,"props":4886,"children":4887},{"style":223},[4888],{"type":49,"value":4506},{"type":44,"tag":194,"props":4890,"children":4891},{"style":217},[4892],{"type":49,"value":444},{"type":44,"tag":194,"props":4894,"children":4895},{"style":294},[4896],{"type":49,"value":1627},{"type":44,"tag":194,"props":4898,"children":4899},{"style":403},[4900],{"type":49,"value":351},{"type":44,"tag":194,"props":4902,"children":4903},{"style":217},[4904],{"type":49,"value":761},{"type":44,"tag":194,"props":4906,"children":4907},{"class":196,"line":2205},[4908,4913,4917,4921,4925,4929,4933],{"type":44,"tag":194,"props":4909,"children":4910},{"style":403},[4911],{"type":49,"value":4912},"      where",{"type":44,"tag":194,"props":4914,"children":4915},{"style":217},[4916],{"type":49,"value":641},{"type":44,"tag":194,"props":4918,"children":4919},{"style":217},[4920],{"type":49,"value":220},{"type":44,"tag":194,"props":4922,"children":4923},{"style":223},[4924],{"type":49,"value":1804},{"type":44,"tag":194,"props":4926,"children":4927},{"style":217},[4928],{"type":49,"value":231},{"type":44,"tag":194,"props":4930,"children":4931},{"style":223},[4932],{"type":49,"value":1834},{"type":44,"tag":194,"props":4934,"children":4935},{"style":217},[4936],{"type":49,"value":3275},{"type":44,"tag":194,"props":4938,"children":4939},{"class":196,"line":2268},[4940,4944],{"type":44,"tag":194,"props":4941,"children":4942},{"style":217},[4943],{"type":49,"value":3129},{"type":44,"tag":194,"props":4945,"children":4946},{"style":403},[4947],{"type":49,"value":468},{"type":44,"tag":194,"props":4949,"children":4951},{"class":196,"line":4950},50,[4952],{"type":44,"tag":194,"props":4953,"children":4954},{"emptyLinePlaceholder":269},[4955],{"type":49,"value":272},{"type":44,"tag":194,"props":4957,"children":4959},{"class":196,"line":4958},51,[4960],{"type":44,"tag":194,"props":4961,"children":4962},{"style":201},[4963],{"type":49,"value":4964},"    \u002F\u002F Remove workspace record\n",{"type":44,"tag":194,"props":4966,"children":4968},{"class":196,"line":4967},52,[4969,4973,4977,4981,4985,4989,4994,4998],{"type":44,"tag":194,"props":4970,"children":4971},{"style":211},[4972],{"type":49,"value":1136},{"type":44,"tag":194,"props":4974,"children":4975},{"style":223},[4976],{"type":49,"value":578},{"type":44,"tag":194,"props":4978,"children":4979},{"style":217},[4980],{"type":49,"value":444},{"type":44,"tag":194,"props":4982,"children":4983},{"style":223},[4984],{"type":49,"value":4202},{"type":44,"tag":194,"props":4986,"children":4987},{"style":217},[4988],{"type":49,"value":444},{"type":44,"tag":194,"props":4990,"children":4991},{"style":294},[4992],{"type":49,"value":4993},"deleteMany",{"type":44,"tag":194,"props":4995,"children":4996},{"style":403},[4997],{"type":49,"value":351},{"type":44,"tag":194,"props":4999,"children":5000},{"style":217},[5001],{"type":49,"value":761},{"type":44,"tag":194,"props":5003,"children":5005},{"class":196,"line":5004},53,[5006,5010,5014,5018,5022,5026,5030],{"type":44,"tag":194,"props":5007,"children":5008},{"style":403},[5009],{"type":49,"value":4912},{"type":44,"tag":194,"props":5011,"children":5012},{"style":217},[5013],{"type":49,"value":641},{"type":44,"tag":194,"props":5015,"children":5016},{"style":217},[5017],{"type":49,"value":220},{"type":44,"tag":194,"props":5019,"children":5020},{"style":223},[5021],{"type":49,"value":1804},{"type":44,"tag":194,"props":5023,"children":5024},{"style":217},[5025],{"type":49,"value":231},{"type":44,"tag":194,"props":5027,"children":5028},{"style":223},[5029],{"type":49,"value":1834},{"type":44,"tag":194,"props":5031,"children":5032},{"style":217},[5033],{"type":49,"value":3275},{"type":44,"tag":194,"props":5035,"children":5037},{"class":196,"line":5036},54,[5038,5042],{"type":44,"tag":194,"props":5039,"children":5040},{"style":217},[5041],{"type":49,"value":3129},{"type":44,"tag":194,"props":5043,"children":5044},{"style":403},[5045],{"type":49,"value":468},{"type":44,"tag":194,"props":5047,"children":5049},{"class":196,"line":5048},55,[5050],{"type":44,"tag":194,"props":5051,"children":5052},{"style":217},[5053],{"type":49,"value":885},{"type":44,"tag":194,"props":5055,"children":5057},{"class":196,"line":5056},56,[5058],{"type":44,"tag":194,"props":5059,"children":5060},{"emptyLinePlaceholder":269},[5061],{"type":49,"value":272},{"type":44,"tag":194,"props":5063,"children":5065},{"class":196,"line":5064},57,[5066],{"type":44,"tag":194,"props":5067,"children":5068},{"style":201},[5069],{"type":49,"value":5070},"  \u002F\u002F Return 200 status on success\n",{"type":44,"tag":194,"props":5072,"children":5074},{"class":196,"line":5073},58,[5075,5079,5083,5087,5091,5095,5099,5103,5107,5111,5115,5119,5123,5127],{"type":44,"tag":194,"props":5076,"children":5077},{"style":211},[5078],{"type":49,"value":2211},{"type":44,"tag":194,"props":5080,"children":5081},{"style":217},[5082],{"type":49,"value":823},{"type":44,"tag":194,"props":5084,"children":5085},{"style":294},[5086],{"type":49,"value":828},{"type":44,"tag":194,"props":5088,"children":5089},{"style":403},[5090],{"type":49,"value":351},{"type":44,"tag":194,"props":5092,"children":5093},{"style":217},[5094],{"type":49,"value":306},{"type":44,"tag":194,"props":5096,"children":5097},{"style":254},[5098],{"type":49,"value":2232},{"type":44,"tag":194,"props":5100,"children":5101},{"style":217},[5102],{"type":49,"value":306},{"type":44,"tag":194,"props":5104,"children":5105},{"style":217},[5106],{"type":49,"value":231},{"type":44,"tag":194,"props":5108,"children":5109},{"style":217},[5110],{"type":49,"value":220},{"type":44,"tag":194,"props":5112,"children":5113},{"style":403},[5114],{"type":49,"value":858},{"type":44,"tag":194,"props":5116,"children":5117},{"style":217},[5118],{"type":49,"value":641},{"type":44,"tag":194,"props":5120,"children":5121},{"style":865},[5122],{"type":49,"value":2257},{"type":44,"tag":194,"props":5124,"children":5125},{"style":217},[5126],{"type":49,"value":241},{"type":44,"tag":194,"props":5128,"children":5129},{"style":403},[5130],{"type":49,"value":468},{"type":44,"tag":194,"props":5132,"children":5133},{"class":196,"line":23},[5134],{"type":44,"tag":194,"props":5135,"children":5136},{"style":217},[5137],{"type":49,"value":2274},{"type":44,"tag":66,"props":5139,"children":5141},{"id":5140},"other-frameworks",[5142],{"type":49,"value":5143},"Other Frameworks",{"type":44,"tag":51,"props":5145,"children":5146},{},[5147,5149,5155,5157,5162,5163,5169,5170,5176],{"type":49,"value":5148},"For Express, Astro, Fastify, Nuxt, React Router, and TanStack Start, use the framework-specific ",{"type":44,"tag":57,"props":5150,"children":5152},{"className":5151},[],[5153],{"type":49,"value":5154},"verifyWebhook",{"type":49,"value":5156}," adapter. Each Clerk SDK package ships its own (",{"type":44,"tag":57,"props":5158,"children":5160},{"className":5159},[],[5161],{"type":49,"value":160},{"type":49,"value":154},{"type":44,"tag":57,"props":5164,"children":5166},{"className":5165},[],[5167],{"type":49,"value":5168},"@clerk\u002Fastro\u002Fwebhooks",{"type":49,"value":154},{"type":44,"tag":57,"props":5171,"children":5173},{"className":5172},[],[5174],{"type":49,"value":5175},"@clerk\u002Ffastify\u002Fwebhooks",{"type":49,"value":5177},", etc.).",{"type":44,"tag":51,"props":5179,"children":5180},{},[5181,5183,5189],{"type":49,"value":5182},"See ",{"type":44,"tag":57,"props":5184,"children":5186},{"className":5185},[],[5187],{"type":49,"value":5188},"references\u002Fframeworks.md",{"type":49,"value":5190}," for full handler examples per framework.",{"type":44,"tag":66,"props":5192,"children":5194},{"id":5193},"type-narrowing-for-evtdata",[5195,5197],{"type":49,"value":5196},"Type Narrowing for ",{"type":44,"tag":57,"props":5198,"children":5200},{"className":5199},[],[5201],{"type":49,"value":5202},"evt.data",{"type":44,"tag":51,"props":5204,"children":5205},{},[5206,5211,5213,5219,5221,5227,5229,5234],{"type":44,"tag":57,"props":5207,"children":5209},{"className":5208},[],[5210],{"type":49,"value":5154},{"type":49,"value":5212}," returns ",{"type":44,"tag":57,"props":5214,"children":5216},{"className":5215},[],[5217],{"type":49,"value":5218},"WebhookEvent",{"type":49,"value":5220},", a discriminated union of all event types. Narrow with ",{"type":44,"tag":57,"props":5222,"children":5224},{"className":5223},[],[5225],{"type":49,"value":5226},"evt.type",{"type":49,"value":5228}," to get type-safe access to ",{"type":44,"tag":57,"props":5230,"children":5232},{"className":5231},[],[5233],{"type":49,"value":5202},{"type":49,"value":641},{"type":44,"tag":183,"props":5236,"children":5238},{"className":185,"code":5237,"language":187,"meta":188,"style":188},"const evt = await verifyWebhook(req)\n\nif (evt.type === 'user.created') {\n  \u002F\u002F evt.data is now UserJSON, autocompletes id, email_addresses, etc.\n  console.log(evt.data.id)\n}\n",[5239],{"type":44,"tag":57,"props":5240,"children":5241},{"__ignoreMap":188},[5242,5271,5278,5325,5333,5380],{"type":44,"tag":194,"props":5243,"children":5244},{"class":196,"line":197},[5245,5249,5254,5258,5262,5266],{"type":44,"tag":194,"props":5246,"children":5247},{"style":278},[5248],{"type":49,"value":281},{"type":44,"tag":194,"props":5250,"children":5251},{"style":223},[5252],{"type":49,"value":5253}," evt ",{"type":44,"tag":194,"props":5255,"children":5256},{"style":217},[5257],{"type":49,"value":291},{"type":44,"tag":194,"props":5259,"children":5260},{"style":211},[5261],{"type":49,"value":707},{"type":44,"tag":194,"props":5263,"children":5264},{"style":294},[5265],{"type":49,"value":505},{"type":44,"tag":194,"props":5267,"children":5268},{"style":223},[5269],{"type":49,"value":5270},"(req)\n",{"type":44,"tag":194,"props":5272,"children":5273},{"class":196,"line":207},[5274],{"type":44,"tag":194,"props":5275,"children":5276},{"emptyLinePlaceholder":269},[5277],{"type":49,"value":272},{"type":44,"tag":194,"props":5279,"children":5280},{"class":196,"line":265},[5281,5286,5291,5295,5300,5305,5309,5313,5317,5321],{"type":44,"tag":194,"props":5282,"children":5283},{"style":211},[5284],{"type":49,"value":5285},"if",{"type":44,"tag":194,"props":5287,"children":5288},{"style":223},[5289],{"type":49,"value":5290}," (evt",{"type":44,"tag":194,"props":5292,"children":5293},{"style":217},[5294],{"type":49,"value":444},{"type":44,"tag":194,"props":5296,"children":5297},{"style":223},[5298],{"type":49,"value":5299},"type ",{"type":44,"tag":194,"props":5301,"children":5302},{"style":217},[5303],{"type":49,"value":5304},"===",{"type":44,"tag":194,"props":5306,"children":5307},{"style":217},[5308],{"type":49,"value":251},{"type":44,"tag":194,"props":5310,"children":5311},{"style":254},[5312],{"type":49,"value":933},{"type":44,"tag":194,"props":5314,"children":5315},{"style":217},[5316],{"type":49,"value":306},{"type":44,"tag":194,"props":5318,"children":5319},{"style":223},[5320],{"type":49,"value":724},{"type":44,"tag":194,"props":5322,"children":5323},{"style":217},[5324],{"type":49,"value":761},{"type":44,"tag":194,"props":5326,"children":5327},{"class":196,"line":27},[5328],{"type":44,"tag":194,"props":5329,"children":5330},{"style":201},[5331],{"type":49,"value":5332},"  \u002F\u002F evt.data is now UserJSON, autocompletes id, email_addresses, etc.\n",{"type":44,"tag":194,"props":5334,"children":5335},{"class":196,"line":323},[5336,5341,5345,5350,5354,5358,5362,5367,5371,5376],{"type":44,"tag":194,"props":5337,"children":5338},{"style":223},[5339],{"type":49,"value":5340},"  console",{"type":44,"tag":194,"props":5342,"children":5343},{"style":217},[5344],{"type":49,"value":444},{"type":44,"tag":194,"props":5346,"children":5347},{"style":294},[5348],{"type":49,"value":5349},"log",{"type":44,"tag":194,"props":5351,"children":5352},{"style":403},[5353],{"type":49,"value":351},{"type":44,"tag":194,"props":5355,"children":5356},{"style":223},[5357],{"type":49,"value":910},{"type":44,"tag":194,"props":5359,"children":5360},{"style":217},[5361],{"type":49,"value":444},{"type":44,"tag":194,"props":5363,"children":5364},{"style":223},[5365],{"type":49,"value":5366},"data",{"type":44,"tag":194,"props":5368,"children":5369},{"style":217},[5370],{"type":49,"value":444},{"type":44,"tag":194,"props":5372,"children":5373},{"style":223},[5374],{"type":49,"value":5375},"id",{"type":44,"tag":194,"props":5377,"children":5378},{"style":403},[5379],{"type":49,"value":468},{"type":44,"tag":194,"props":5381,"children":5382},{"class":196,"line":331},[5383],{"type":44,"tag":194,"props":5384,"children":5385},{"style":217},[5386],{"type":49,"value":2274},{"type":44,"tag":51,"props":5388,"children":5389},{},[5390,5392,5398,5399,5405,5406,5412,5413,5419,5420,5426,5427,5433,5434,5440,5441,5447],{"type":49,"value":5391},"For manual typing of nested payloads, import the JSON types from your framework's webhook subpath: ",{"type":44,"tag":57,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":49,"value":5397},"DeletedObjectJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5400,"children":5402},{"className":5401},[],[5403],{"type":49,"value":5404},"EmailJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5407,"children":5409},{"className":5408},[],[5410],{"type":49,"value":5411},"OrganizationInvitationJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5414,"children":5416},{"className":5415},[],[5417],{"type":49,"value":5418},"OrganizationJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5421,"children":5423},{"className":5422},[],[5424],{"type":49,"value":5425},"OrganizationMembershipJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5428,"children":5430},{"className":5429},[],[5431],{"type":49,"value":5432},"SessionJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5435,"children":5437},{"className":5436},[],[5438],{"type":49,"value":5439},"SMSMessageJSON",{"type":49,"value":154},{"type":44,"tag":57,"props":5442,"children":5444},{"className":5443},[],[5445],{"type":49,"value":5446},"UserJSON",{"type":49,"value":444},{"type":44,"tag":66,"props":5449,"children":5451},{"id":5450},"payload-field-reference",[5452],{"type":49,"value":5453},"Payload Field Reference",{"type":44,"tag":5455,"props":5456,"children":5458},"h3",{"id":5457},"user-events-usercreated-userupdated-userdeleted",[5459,5461,5466,5467,5472,5473,5478],{"type":49,"value":5460},"User events (",{"type":44,"tag":57,"props":5462,"children":5464},{"className":5463},[],[5465],{"type":49,"value":933},{"type":49,"value":154},{"type":44,"tag":57,"props":5468,"children":5470},{"className":5469},[],[5471],{"type":49,"value":1274},{"type":49,"value":154},{"type":44,"tag":57,"props":5474,"children":5476},{"className":5475},[],[5477],{"type":49,"value":1550},{"type":49,"value":381},{"type":44,"tag":183,"props":5480,"children":5482},{"className":185,"code":5481,"language":187,"meta":188,"style":188},"const {\n  id,                  \u002F\u002F Clerk user ID\n  email_addresses,     \u002F\u002F array; [0].email_address is primary email\n  first_name,\n  last_name,\n  image_url,\n  public_metadata,\n} = evt.data\n",[5483],{"type":44,"tag":57,"props":5484,"children":5485},{"__ignoreMap":188},[5486,5497,5514,5531,5543,5555,5567,5579],{"type":44,"tag":194,"props":5487,"children":5488},{"class":196,"line":197},[5489,5493],{"type":44,"tag":194,"props":5490,"children":5491},{"style":278},[5492],{"type":49,"value":281},{"type":44,"tag":194,"props":5494,"children":5495},{"style":217},[5496],{"type":49,"value":391},{"type":44,"tag":194,"props":5498,"children":5499},{"class":196,"line":207},[5500,5505,5509],{"type":44,"tag":194,"props":5501,"children":5502},{"style":223},[5503],{"type":49,"value":5504},"  id",{"type":44,"tag":194,"props":5506,"children":5507},{"style":217},[5508],{"type":49,"value":231},{"type":44,"tag":194,"props":5510,"children":5511},{"style":201},[5512],{"type":49,"value":5513},"                  \u002F\u002F Clerk user ID\n",{"type":44,"tag":194,"props":5515,"children":5516},{"class":196,"line":265},[5517,5522,5526],{"type":44,"tag":194,"props":5518,"children":5519},{"style":223},[5520],{"type":49,"value":5521},"  email_addresses",{"type":44,"tag":194,"props":5523,"children":5524},{"style":217},[5525],{"type":49,"value":231},{"type":44,"tag":194,"props":5527,"children":5528},{"style":201},[5529],{"type":49,"value":5530},"     \u002F\u002F array; [0].email_address is primary email\n",{"type":44,"tag":194,"props":5532,"children":5533},{"class":196,"line":27},[5534,5539],{"type":44,"tag":194,"props":5535,"children":5536},{"style":223},[5537],{"type":49,"value":5538},"  first_name",{"type":44,"tag":194,"props":5540,"children":5541},{"style":217},[5542],{"type":49,"value":3022},{"type":44,"tag":194,"props":5544,"children":5545},{"class":196,"line":323},[5546,5551],{"type":44,"tag":194,"props":5547,"children":5548},{"style":223},[5549],{"type":49,"value":5550},"  last_name",{"type":44,"tag":194,"props":5552,"children":5553},{"style":217},[5554],{"type":49,"value":3022},{"type":44,"tag":194,"props":5556,"children":5557},{"class":196,"line":331},[5558,5563],{"type":44,"tag":194,"props":5559,"children":5560},{"style":223},[5561],{"type":49,"value":5562},"  image_url",{"type":44,"tag":194,"props":5564,"children":5565},{"style":217},[5566],{"type":49,"value":3022},{"type":44,"tag":194,"props":5568,"children":5569},{"class":196,"line":394},[5570,5575],{"type":44,"tag":194,"props":5571,"children":5572},{"style":223},[5573],{"type":49,"value":5574},"  public_metadata",{"type":44,"tag":194,"props":5576,"children":5577},{"style":217},[5578],{"type":49,"value":3022},{"type":44,"tag":194,"props":5580,"children":5581},{"class":196,"line":457},[5582,5586,5590,5594,5598],{"type":44,"tag":194,"props":5583,"children":5584},{"style":217},[5585],{"type":49,"value":463},{"type":44,"tag":194,"props":5587,"children":5588},{"style":217},[5589],{"type":49,"value":702},{"type":44,"tag":194,"props":5591,"children":5592},{"style":223},[5593],{"type":49,"value":1003},{"type":44,"tag":194,"props":5595,"children":5596},{"style":217},[5597],{"type":49,"value":444},{"type":44,"tag":194,"props":5599,"children":5600},{"style":223},[5601],{"type":49,"value":1012},{"type":44,"tag":5455,"props":5603,"children":5605},{"id":5604},"organization-events-organizationcreated-organizationupdated-organizationdeleted",[5606,5608,5613,5614,5620,5621,5627],{"type":49,"value":5607},"Organization events (",{"type":44,"tag":57,"props":5609,"children":5611},{"className":5610},[],[5612],{"type":49,"value":4127},{"type":49,"value":154},{"type":44,"tag":57,"props":5615,"children":5617},{"className":5616},[],[5618],{"type":49,"value":5619},"organization.updated",{"type":49,"value":154},{"type":44,"tag":57,"props":5622,"children":5624},{"className":5623},[],[5625],{"type":49,"value":5626},"organization.deleted",{"type":49,"value":381},{"type":44,"tag":183,"props":5629,"children":5631},{"className":185,"code":5630,"language":187,"meta":188,"style":188},"const {\n  id,    \u002F\u002F org ID\n  name,  \u002F\u002F org name\n  slug,\n} = evt.data\n",[5632],{"type":44,"tag":57,"props":5633,"children":5634},{"__ignoreMap":188},[5635,5646,5662,5679,5691],{"type":44,"tag":194,"props":5636,"children":5637},{"class":196,"line":197},[5638,5642],{"type":44,"tag":194,"props":5639,"children":5640},{"style":278},[5641],{"type":49,"value":281},{"type":44,"tag":194,"props":5643,"children":5644},{"style":217},[5645],{"type":49,"value":391},{"type":44,"tag":194,"props":5647,"children":5648},{"class":196,"line":207},[5649,5653,5657],{"type":44,"tag":194,"props":5650,"children":5651},{"style":223},[5652],{"type":49,"value":5504},{"type":44,"tag":194,"props":5654,"children":5655},{"style":217},[5656],{"type":49,"value":231},{"type":44,"tag":194,"props":5658,"children":5659},{"style":201},[5660],{"type":49,"value":5661},"    \u002F\u002F org ID\n",{"type":44,"tag":194,"props":5663,"children":5664},{"class":196,"line":265},[5665,5670,5674],{"type":44,"tag":194,"props":5666,"children":5667},{"style":223},[5668],{"type":49,"value":5669},"  name",{"type":44,"tag":194,"props":5671,"children":5672},{"style":217},[5673],{"type":49,"value":231},{"type":44,"tag":194,"props":5675,"children":5676},{"style":201},[5677],{"type":49,"value":5678},"  \u002F\u002F org name\n",{"type":44,"tag":194,"props":5680,"children":5681},{"class":196,"line":27},[5682,5687],{"type":44,"tag":194,"props":5683,"children":5684},{"style":223},[5685],{"type":49,"value":5686},"  slug",{"type":44,"tag":194,"props":5688,"children":5689},{"style":217},[5690],{"type":49,"value":3022},{"type":44,"tag":194,"props":5692,"children":5693},{"class":196,"line":323},[5694,5698,5702,5706,5710],{"type":44,"tag":194,"props":5695,"children":5696},{"style":217},[5697],{"type":49,"value":463},{"type":44,"tag":194,"props":5699,"children":5700},{"style":217},[5701],{"type":49,"value":702},{"type":44,"tag":194,"props":5703,"children":5704},{"style":223},[5705],{"type":49,"value":1003},{"type":44,"tag":194,"props":5707,"children":5708},{"style":217},[5709],{"type":49,"value":444},{"type":44,"tag":194,"props":5711,"children":5712},{"style":223},[5713],{"type":49,"value":1012},{"type":44,"tag":5455,"props":5715,"children":5717},{"id":5716},"organization-membership-events-organizationmembershipcreated-organizationmembershipupdated-organizationmembershipdeleted",[5718,5720,5725,5726,5732,5733,5738],{"type":49,"value":5719},"Organization Membership events (",{"type":44,"tag":57,"props":5721,"children":5723},{"className":5722},[],[5724],{"type":49,"value":1724},{"type":49,"value":154},{"type":44,"tag":57,"props":5727,"children":5729},{"className":5728},[],[5730],{"type":49,"value":5731},"organizationMembership.updated",{"type":49,"value":154},{"type":44,"tag":57,"props":5734,"children":5736},{"className":5735},[],[5737],{"type":49,"value":1985},{"type":49,"value":381},{"type":44,"tag":183,"props":5740,"children":5742},{"className":185,"code":5741,"language":187,"meta":188,"style":188},"const {\n  organization,        \u002F\u002F { id, name, ... }\n  public_user_data,    \u002F\u002F { user_id, first_name, last_name, ... }\n  role,                \u002F\u002F e.g. 'org:admin', 'org:member'\n} = evt.data\n\u002F\u002F Access: organization.id, public_user_data.user_id, role\n",[5743],{"type":44,"tag":57,"props":5744,"children":5745},{"__ignoreMap":188},[5746,5757,5774,5791,5808,5831],{"type":44,"tag":194,"props":5747,"children":5748},{"class":196,"line":197},[5749,5753],{"type":44,"tag":194,"props":5750,"children":5751},{"style":278},[5752],{"type":49,"value":281},{"type":44,"tag":194,"props":5754,"children":5755},{"style":217},[5756],{"type":49,"value":391},{"type":44,"tag":194,"props":5758,"children":5759},{"class":196,"line":207},[5760,5765,5769],{"type":44,"tag":194,"props":5761,"children":5762},{"style":223},[5763],{"type":49,"value":5764},"  organization",{"type":44,"tag":194,"props":5766,"children":5767},{"style":217},[5768],{"type":49,"value":231},{"type":44,"tag":194,"props":5770,"children":5771},{"style":201},[5772],{"type":49,"value":5773},"        \u002F\u002F { id, name, ... }\n",{"type":44,"tag":194,"props":5775,"children":5776},{"class":196,"line":265},[5777,5782,5786],{"type":44,"tag":194,"props":5778,"children":5779},{"style":223},[5780],{"type":49,"value":5781},"  public_user_data",{"type":44,"tag":194,"props":5783,"children":5784},{"style":217},[5785],{"type":49,"value":231},{"type":44,"tag":194,"props":5787,"children":5788},{"style":201},[5789],{"type":49,"value":5790},"    \u002F\u002F { user_id, first_name, last_name, ... }\n",{"type":44,"tag":194,"props":5792,"children":5793},{"class":196,"line":27},[5794,5799,5803],{"type":44,"tag":194,"props":5795,"children":5796},{"style":223},[5797],{"type":49,"value":5798},"  role",{"type":44,"tag":194,"props":5800,"children":5801},{"style":217},[5802],{"type":49,"value":231},{"type":44,"tag":194,"props":5804,"children":5805},{"style":201},[5806],{"type":49,"value":5807},"                \u002F\u002F e.g. 'org:admin', 'org:member'\n",{"type":44,"tag":194,"props":5809,"children":5810},{"class":196,"line":323},[5811,5815,5819,5823,5827],{"type":44,"tag":194,"props":5812,"children":5813},{"style":217},[5814],{"type":49,"value":463},{"type":44,"tag":194,"props":5816,"children":5817},{"style":217},[5818],{"type":49,"value":702},{"type":44,"tag":194,"props":5820,"children":5821},{"style":223},[5822],{"type":49,"value":1003},{"type":44,"tag":194,"props":5824,"children":5825},{"style":217},[5826],{"type":49,"value":444},{"type":44,"tag":194,"props":5828,"children":5829},{"style":223},[5830],{"type":49,"value":1012},{"type":44,"tag":194,"props":5832,"children":5833},{"class":196,"line":331},[5834],{"type":44,"tag":194,"props":5835,"children":5836},{"style":201},[5837],{"type":49,"value":5838},"\u002F\u002F Access: organization.id, public_user_data.user_id, role\n",{"type":44,"tag":66,"props":5840,"children":5842},{"id":5841},"supported-events-full-catalog",[5843],{"type":49,"value":5844},"Supported Events (Full Catalog)",{"type":44,"tag":51,"props":5846,"children":5847},{},[5848,5853,5855,5860,5862,5867,5868],{"type":44,"tag":78,"props":5849,"children":5850},{},[5851],{"type":49,"value":5852},"User",{"type":49,"value":5854},": ",{"type":44,"tag":57,"props":5856,"children":5858},{"className":5857},[],[5859],{"type":49,"value":933},{"type":49,"value":5861}," ",{"type":44,"tag":57,"props":5863,"children":5865},{"className":5864},[],[5866],{"type":49,"value":1274},{"type":49,"value":5861},{"type":44,"tag":57,"props":5869,"children":5871},{"className":5870},[],[5872],{"type":49,"value":1550},{"type":44,"tag":51,"props":5874,"children":5875},{},[5876,5881,5882,5888,5889,5895,5896,5902,5903],{"type":44,"tag":78,"props":5877,"children":5878},{},[5879],{"type":49,"value":5880},"Session",{"type":49,"value":5854},{"type":44,"tag":57,"props":5883,"children":5885},{"className":5884},[],[5886],{"type":49,"value":5887},"session.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":5890,"children":5892},{"className":5891},[],[5893],{"type":49,"value":5894},"session.ended",{"type":49,"value":5861},{"type":44,"tag":57,"props":5897,"children":5899},{"className":5898},[],[5900],{"type":49,"value":5901},"session.removed",{"type":49,"value":5861},{"type":44,"tag":57,"props":5904,"children":5906},{"className":5905},[],[5907],{"type":49,"value":5908},"session.revoked",{"type":44,"tag":51,"props":5910,"children":5911},{},[5912,5917,5918,5923,5924,5929,5930],{"type":44,"tag":78,"props":5913,"children":5914},{},[5915],{"type":49,"value":5916},"Organization",{"type":49,"value":5854},{"type":44,"tag":57,"props":5919,"children":5921},{"className":5920},[],[5922],{"type":49,"value":4127},{"type":49,"value":5861},{"type":44,"tag":57,"props":5925,"children":5927},{"className":5926},[],[5928],{"type":49,"value":5619},{"type":49,"value":5861},{"type":44,"tag":57,"props":5931,"children":5933},{"className":5932},[],[5934],{"type":49,"value":5626},{"type":44,"tag":51,"props":5936,"children":5937},{},[5938,5943,5944,5949,5950,5955,5956],{"type":44,"tag":78,"props":5939,"children":5940},{},[5941],{"type":49,"value":5942},"Organization Membership",{"type":49,"value":5854},{"type":44,"tag":57,"props":5945,"children":5947},{"className":5946},[],[5948],{"type":49,"value":1724},{"type":49,"value":5861},{"type":44,"tag":57,"props":5951,"children":5953},{"className":5952},[],[5954],{"type":49,"value":5731},{"type":49,"value":5861},{"type":44,"tag":57,"props":5957,"children":5959},{"className":5958},[],[5960],{"type":49,"value":1985},{"type":44,"tag":51,"props":5962,"children":5963},{},[5964,5969,5970,5976,5977,5983,5984],{"type":44,"tag":78,"props":5965,"children":5966},{},[5967],{"type":49,"value":5968},"Organization Domain",{"type":49,"value":5854},{"type":44,"tag":57,"props":5971,"children":5973},{"className":5972},[],[5974],{"type":49,"value":5975},"organizationDomain.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":5978,"children":5980},{"className":5979},[],[5981],{"type":49,"value":5982},"organizationDomain.updated",{"type":49,"value":5861},{"type":44,"tag":57,"props":5985,"children":5987},{"className":5986},[],[5988],{"type":49,"value":5989},"organizationDomain.deleted",{"type":44,"tag":51,"props":5991,"children":5992},{},[5993,5998,5999,6005,6006,6012,6013],{"type":44,"tag":78,"props":5994,"children":5995},{},[5996],{"type":49,"value":5997},"Organization Invitation",{"type":49,"value":5854},{"type":44,"tag":57,"props":6000,"children":6002},{"className":6001},[],[6003],{"type":49,"value":6004},"organizationInvitation.accepted",{"type":49,"value":5861},{"type":44,"tag":57,"props":6007,"children":6009},{"className":6008},[],[6010],{"type":49,"value":6011},"organizationInvitation.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6014,"children":6016},{"className":6015},[],[6017],{"type":49,"value":6018},"organizationInvitation.revoked",{"type":44,"tag":51,"props":6020,"children":6021},{},[6022,6027,6028,6034,6035],{"type":44,"tag":78,"props":6023,"children":6024},{},[6025],{"type":49,"value":6026},"Communication",{"type":49,"value":5854},{"type":44,"tag":57,"props":6029,"children":6031},{"className":6030},[],[6032],{"type":49,"value":6033},"email.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6036,"children":6038},{"className":6037},[],[6039],{"type":49,"value":6040},"sms.created",{"type":44,"tag":51,"props":6042,"children":6043},{},[6044,6049,6050,6056,6057],{"type":44,"tag":78,"props":6045,"children":6046},{},[6047],{"type":49,"value":6048},"Waitlist",{"type":49,"value":5854},{"type":44,"tag":57,"props":6051,"children":6053},{"className":6052},[],[6054],{"type":49,"value":6055},"waitlistEntry.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6058,"children":6060},{"className":6059},[],[6061],{"type":49,"value":6062},"waitlistEntry.updated",{"type":44,"tag":51,"props":6064,"children":6065},{},[6066,6071,6072,6078,6079,6085,6086],{"type":44,"tag":78,"props":6067,"children":6068},{},[6069],{"type":49,"value":6070},"Permission",{"type":49,"value":5854},{"type":44,"tag":57,"props":6073,"children":6075},{"className":6074},[],[6076],{"type":49,"value":6077},"permission.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6080,"children":6082},{"className":6081},[],[6083],{"type":49,"value":6084},"permission.updated",{"type":49,"value":5861},{"type":44,"tag":57,"props":6087,"children":6089},{"className":6088},[],[6090],{"type":49,"value":6091},"permission.deleted",{"type":44,"tag":51,"props":6093,"children":6094},{},[6095,6100,6101,6107,6108,6114,6115],{"type":44,"tag":78,"props":6096,"children":6097},{},[6098],{"type":49,"value":6099},"Role",{"type":49,"value":5854},{"type":44,"tag":57,"props":6102,"children":6104},{"className":6103},[],[6105],{"type":49,"value":6106},"role.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6109,"children":6111},{"className":6110},[],[6112],{"type":49,"value":6113},"role.updated",{"type":49,"value":5861},{"type":44,"tag":57,"props":6116,"children":6118},{"className":6117},[],[6119],{"type":49,"value":6120},"role.deleted",{"type":44,"tag":51,"props":6122,"children":6123},{},[6124,6129,6130,6136,6137,6143,6144,6150,6151],{"type":44,"tag":78,"props":6125,"children":6126},{},[6127],{"type":49,"value":6128},"Subscription",{"type":49,"value":5854},{"type":44,"tag":57,"props":6131,"children":6133},{"className":6132},[],[6134],{"type":49,"value":6135},"subscription.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6138,"children":6140},{"className":6139},[],[6141],{"type":49,"value":6142},"subscription.updated",{"type":49,"value":5861},{"type":44,"tag":57,"props":6145,"children":6147},{"className":6146},[],[6148],{"type":49,"value":6149},"subscription.active",{"type":49,"value":5861},{"type":44,"tag":57,"props":6152,"children":6154},{"className":6153},[],[6155],{"type":49,"value":6156},"subscription.pastDue",{"type":44,"tag":51,"props":6158,"children":6159},{},[6160,6165,6166,6172,6173,6179,6180,6186,6187,6193,6194,6200,6201,6207,6208,6214,6215,6221,6222,6228,6229],{"type":44,"tag":78,"props":6161,"children":6162},{},[6163],{"type":49,"value":6164},"Subscription Item",{"type":49,"value":5854},{"type":44,"tag":57,"props":6167,"children":6169},{"className":6168},[],[6170],{"type":49,"value":6171},"subscriptionItem.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6174,"children":6176},{"className":6175},[],[6177],{"type":49,"value":6178},"subscriptionItem.active",{"type":49,"value":5861},{"type":44,"tag":57,"props":6181,"children":6183},{"className":6182},[],[6184],{"type":49,"value":6185},"subscriptionItem.updated",{"type":49,"value":5861},{"type":44,"tag":57,"props":6188,"children":6190},{"className":6189},[],[6191],{"type":49,"value":6192},"subscriptionItem.canceled",{"type":49,"value":5861},{"type":44,"tag":57,"props":6195,"children":6197},{"className":6196},[],[6198],{"type":49,"value":6199},"subscriptionItem.upcoming",{"type":49,"value":5861},{"type":44,"tag":57,"props":6202,"children":6204},{"className":6203},[],[6205],{"type":49,"value":6206},"subscriptionItem.ended",{"type":49,"value":5861},{"type":44,"tag":57,"props":6209,"children":6211},{"className":6210},[],[6212],{"type":49,"value":6213},"subscriptionItem.abandoned",{"type":49,"value":5861},{"type":44,"tag":57,"props":6216,"children":6218},{"className":6217},[],[6219],{"type":49,"value":6220},"subscriptionItem.incomplete",{"type":49,"value":5861},{"type":44,"tag":57,"props":6223,"children":6225},{"className":6224},[],[6226],{"type":49,"value":6227},"subscriptionItem.pastDue",{"type":49,"value":5861},{"type":44,"tag":57,"props":6230,"children":6232},{"className":6231},[],[6233],{"type":49,"value":6234},"subscriptionItem.freeTrialEnding",{"type":44,"tag":51,"props":6236,"children":6237},{},[6238,6243,6244,6250,6251],{"type":44,"tag":78,"props":6239,"children":6240},{},[6241],{"type":49,"value":6242},"Payment",{"type":49,"value":5854},{"type":44,"tag":57,"props":6245,"children":6247},{"className":6246},[],[6248],{"type":49,"value":6249},"paymentAttempt.created",{"type":49,"value":5861},{"type":44,"tag":57,"props":6252,"children":6254},{"className":6253},[],[6255],{"type":49,"value":6256},"paymentAttempt.updated",{"type":44,"tag":66,"props":6258,"children":6260},{"id":6259},"webhook-reliability",[6261],{"type":49,"value":6262},"Webhook Reliability",{"type":44,"tag":51,"props":6264,"children":6265},{},[6266,6271,6273,6280,6282,6288],{"type":44,"tag":78,"props":6267,"children":6268},{},[6269],{"type":49,"value":6270},"Retries",{"type":49,"value":6272},": Svix retries failed webhooks on a set schedule (see ",{"type":44,"tag":111,"props":6274,"children":6277},{"href":6275,"rel":6276},"https:\u002F\u002Fdocs.svix.com\u002Fretries",[115],[6278],{"type":49,"value":6279},"Svix Retry Schedule",{"type":49,"value":6281},"). Return 2xx to succeed, 4xx\u002F5xx to retry. Use the ",{"type":44,"tag":57,"props":6283,"children":6285},{"className":6284},[],[6286],{"type":49,"value":6287},"svix-id",{"type":49,"value":6289}," header as an idempotency key to deduplicate retried events.",{"type":44,"tag":51,"props":6291,"children":6292},{},[6293,6298],{"type":44,"tag":78,"props":6294,"children":6295},{},[6296],{"type":49,"value":6297},"Replay",{"type":49,"value":6299},": Failed webhooks can be replayed from Dashboard.",{"type":44,"tag":66,"props":6301,"children":6303},{"id":6302},"common-pitfalls",[6304],{"type":49,"value":6305},"Common Pitfalls",{"type":44,"tag":6307,"props":6308,"children":6309},"table",{},[6310,6334],{"type":44,"tag":6311,"props":6312,"children":6313},"thead",{},[6314],{"type":44,"tag":6315,"props":6316,"children":6317},"tr",{},[6318,6324,6329],{"type":44,"tag":6319,"props":6320,"children":6321},"th",{},[6322],{"type":49,"value":6323},"Symptom",{"type":44,"tag":6319,"props":6325,"children":6326},{},[6327],{"type":49,"value":6328},"Cause",{"type":44,"tag":6319,"props":6330,"children":6331},{},[6332],{"type":49,"value":6333},"Fix",{"type":44,"tag":6335,"props":6336,"children":6337},"tbody",{},[6338,6370,6401,6426,6450,6468,6496],{"type":44,"tag":6315,"props":6339,"children":6340},{},[6341,6347,6352],{"type":44,"tag":6342,"props":6343,"children":6344},"td",{},[6345],{"type":49,"value":6346},"Verification fails (Next.js)",{"type":44,"tag":6342,"props":6348,"children":6349},{},[6350],{"type":49,"value":6351},"Wrong import or usage",{"type":44,"tag":6342,"props":6353,"children":6354},{},[6355,6356,6361,6363,6368],{"type":49,"value":139},{"type":44,"tag":57,"props":6357,"children":6359},{"className":6358},[],[6360],{"type":49,"value":152},{"type":49,"value":6362},", pass ",{"type":44,"tag":57,"props":6364,"children":6366},{"className":6365},[],[6367],{"type":49,"value":424},{"type":49,"value":6369}," directly",{"type":44,"tag":6315,"props":6371,"children":6372},{},[6373,6378,6389],{"type":44,"tag":6342,"props":6374,"children":6375},{},[6376],{"type":49,"value":6377},"Verification fails (Express)",{"type":44,"tag":6342,"props":6379,"children":6380},{},[6381,6383],{"type":49,"value":6382},"Using ",{"type":44,"tag":57,"props":6384,"children":6386},{"className":6385},[],[6387],{"type":49,"value":6388},"express.json()",{"type":44,"tag":6342,"props":6390,"children":6391},{},[6392,6393,6399],{"type":49,"value":139},{"type":44,"tag":57,"props":6394,"children":6396},{"className":6395},[],[6397],{"type":49,"value":6398},"express.raw({ type: 'application\u002Fjson' })",{"type":49,"value":6400}," for webhook route",{"type":44,"tag":6315,"props":6402,"children":6403},{},[6404,6409,6414],{"type":44,"tag":6342,"props":6405,"children":6406},{},[6407],{"type":49,"value":6408},"Route not found (404)",{"type":44,"tag":6342,"props":6410,"children":6411},{},[6412],{"type":49,"value":6413},"Wrong path",{"type":44,"tag":6342,"props":6415,"children":6416},{},[6417,6418,6424],{"type":49,"value":139},{"type":44,"tag":57,"props":6419,"children":6421},{"className":6420},[],[6422],{"type":49,"value":6423},"\u002Fapi\u002Fwebhooks",{"type":49,"value":6425}," or preserve existing path",{"type":44,"tag":6315,"props":6427,"children":6428},{},[6429,6434,6439],{"type":44,"tag":6342,"props":6430,"children":6431},{},[6432],{"type":49,"value":6433},"Not authorized (401)",{"type":44,"tag":6342,"props":6435,"children":6436},{},[6437],{"type":49,"value":6438},"Route is protected by middleware",{"type":44,"tag":6342,"props":6440,"children":6441},{},[6442,6444],{"type":49,"value":6443},"Make route public in ",{"type":44,"tag":57,"props":6445,"children":6447},{"className":6446},[],[6448],{"type":49,"value":6449},"clerkMiddleware()",{"type":44,"tag":6315,"props":6451,"children":6452},{},[6453,6458,6463],{"type":44,"tag":6342,"props":6454,"children":6455},{},[6456],{"type":49,"value":6457},"No data in DB",{"type":44,"tag":6342,"props":6459,"children":6460},{},[6461],{"type":49,"value":6462},"Async job pending",{"type":44,"tag":6342,"props":6464,"children":6465},{},[6466],{"type":49,"value":6467},"Wait\u002Fcheck logs",{"type":44,"tag":6315,"props":6469,"children":6470},{},[6471,6476,6486],{"type":44,"tag":6342,"props":6472,"children":6473},{},[6474],{"type":49,"value":6475},"Duplicate entries",{"type":44,"tag":6342,"props":6477,"children":6478},{},[6479,6481],{"type":49,"value":6480},"Only handling ",{"type":44,"tag":57,"props":6482,"children":6484},{"className":6483},[],[6485],{"type":49,"value":933},{"type":44,"tag":6342,"props":6487,"children":6488},{},[6489,6491],{"type":49,"value":6490},"Also handle ",{"type":44,"tag":57,"props":6492,"children":6494},{"className":6493},[],[6495],{"type":49,"value":1274},{"type":44,"tag":6315,"props":6497,"children":6498},{},[6499,6504,6509],{"type":44,"tag":6342,"props":6500,"children":6501},{},[6502],{"type":49,"value":6503},"Timeouts",{"type":44,"tag":6342,"props":6505,"children":6506},{},[6507],{"type":49,"value":6508},"Handler too slow",{"type":44,"tag":6342,"props":6510,"children":6511},{},[6512],{"type":49,"value":6513},"Queue async work, return 200 first",{"type":44,"tag":66,"props":6515,"children":6517},{"id":6516},"testing-deployment",[6518],{"type":49,"value":6519},"Testing & Deployment",{"type":44,"tag":51,"props":6521,"children":6522},{},[6523,6528],{"type":44,"tag":78,"props":6524,"children":6525},{},[6526],{"type":49,"value":6527},"Local",{"type":49,"value":6529},": Use the Clerk CLI's first-party tunnel — no auth or linked project needed:",{"type":44,"tag":183,"props":6531,"children":6535},{"className":6532,"code":6533,"language":6534,"meta":188,"style":188},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","clerk webhooks listen --token \"$(clerk webhooks token)\" --forward-to http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fwebhooks\n","sh",[6536],{"type":44,"tag":57,"props":6537,"children":6538},{"__ignoreMap":188},[6539],{"type":44,"tag":194,"props":6540,"children":6541},{"class":196,"line":197},[6542,6546,6551,6556,6561,6566,6570,6575,6580,6585],{"type":44,"tag":194,"props":6543,"children":6544},{"style":644},[6545],{"type":49,"value":8},{"type":44,"tag":194,"props":6547,"children":6548},{"style":254},[6549],{"type":49,"value":6550}," webhooks",{"type":44,"tag":194,"props":6552,"children":6553},{"style":254},[6554],{"type":49,"value":6555}," listen",{"type":44,"tag":194,"props":6557,"children":6558},{"style":254},[6559],{"type":49,"value":6560}," --token",{"type":44,"tag":194,"props":6562,"children":6563},{"style":217},[6564],{"type":49,"value":6565}," \"$(",{"type":44,"tag":194,"props":6567,"children":6568},{"style":644},[6569],{"type":49,"value":8},{"type":44,"tag":194,"props":6571,"children":6572},{"style":254},[6573],{"type":49,"value":6574}," webhooks token",{"type":44,"tag":194,"props":6576,"children":6577},{"style":217},[6578],{"type":49,"value":6579},")\"",{"type":44,"tag":194,"props":6581,"children":6582},{"style":254},[6583],{"type":49,"value":6584}," --forward-to",{"type":44,"tag":194,"props":6586,"children":6587},{"style":254},[6588],{"type":49,"value":6589}," http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fwebhooks\n",{"type":44,"tag":51,"props":6591,"children":6592},{},[6593,6595,6601,6603,6609,6611,6617,6619,6625,6627,6633,6635,6641,6643,6649,6650,6656,6657,6663],{"type":49,"value":6594},"Add the printed relay URL (",{"type":44,"tag":57,"props":6596,"children":6598},{"className":6597},[],[6599],{"type":49,"value":6600},"https:\u002F\u002Fwebhooks.clerk.com\u002Fin\u002Fc_...\u002F",{"type":49,"value":6602},") as a webhook endpoint in the Dashboard — events don't flow until you do. ",{"type":44,"tag":57,"props":6604,"children":6606},{"className":6605},[],[6607],{"type":49,"value":6608},"svix-*",{"type":49,"value":6610}," headers are preserved, so ",{"type":44,"tag":57,"props":6612,"children":6614},{"className":6613},[],[6615],{"type":49,"value":6616},"verifyWebhook()",{"type":49,"value":6618}," works against that endpoint's signing secret as usual. Flags, offline signature checks (",{"type":44,"tag":57,"props":6620,"children":6622},{"className":6621},[],[6623],{"type":49,"value":6624},"clerk webhooks verify",{"type":49,"value":6626},"), and agent-mode behavior are in the ",{"type":44,"tag":57,"props":6628,"children":6630},{"className":6629},[],[6631],{"type":49,"value":6632},"clerk-cli",{"type":49,"value":6634}," skill. Without the CLI, tunnel ",{"type":44,"tag":57,"props":6636,"children":6638},{"className":6637},[],[6639],{"type":49,"value":6640},"localhost:3000",{"type":49,"value":6642}," yourself (",{"type":44,"tag":57,"props":6644,"children":6646},{"className":6645},[],[6647],{"type":49,"value":6648},"ngrok",{"type":49,"value":154},{"type":44,"tag":57,"props":6651,"children":6653},{"className":6652},[],[6654],{"type":49,"value":6655},"localtunnel",{"type":49,"value":154},{"type":44,"tag":57,"props":6658,"children":6660},{"className":6659},[],[6661],{"type":49,"value":6662},"Cloudflare Tunnel",{"type":49,"value":6664},") and add the public URL to the Dashboard endpoint.",{"type":44,"tag":51,"props":6666,"children":6667},{},[6668,6673,6675,6680],{"type":44,"tag":78,"props":6669,"children":6670},{},[6671],{"type":49,"value":6672},"Production",{"type":49,"value":6674},": Update webhook endpoint URL to production domain. Copy ",{"type":44,"tag":57,"props":6676,"children":6678},{"className":6677},[],[6679],{"type":49,"value":168},{"type":49,"value":6681}," to production env vars.",{"type":44,"tag":66,"props":6683,"children":6685},{"id":6684},"references",[6686],{"type":49,"value":6687},"References",{"type":44,"tag":6307,"props":6689,"children":6690},{},[6691,6707],{"type":44,"tag":6311,"props":6692,"children":6693},{},[6694],{"type":44,"tag":6315,"props":6695,"children":6696},{},[6697,6702],{"type":44,"tag":6319,"props":6698,"children":6699},{},[6700],{"type":49,"value":6701},"Reference",{"type":44,"tag":6319,"props":6703,"children":6704},{},[6705],{"type":49,"value":6706},"Description",{"type":44,"tag":6335,"props":6708,"children":6709},{},[6710],{"type":44,"tag":6315,"props":6711,"children":6712},{},[6713,6721],{"type":44,"tag":6342,"props":6714,"children":6715},{},[6716],{"type":44,"tag":57,"props":6717,"children":6719},{"className":6718},[],[6720],{"type":49,"value":5188},{"type":44,"tag":6342,"props":6722,"children":6723},{},[6724],{"type":49,"value":6725},"Webhook handler examples for Express, Astro, Fastify, Nuxt, React Router, TanStack Start",{"type":44,"tag":66,"props":6727,"children":6729},{"id":6728},"see-also",[6730],{"type":49,"value":6731},"See Also",{"type":44,"tag":86,"props":6733,"children":6734},{},[6735,6761,6772,6783,6794],{"type":44,"tag":90,"props":6736,"children":6737},{},[6738,6743,6745,6751,6753,6759],{"type":44,"tag":57,"props":6739,"children":6741},{"className":6740},[],[6742],{"type":49,"value":6632},{"type":49,"value":6744}," - ",{"type":44,"tag":57,"props":6746,"children":6748},{"className":6747},[],[6749],{"type":49,"value":6750},"clerk webhooks listen",{"type":49,"value":6752},"\u002F",{"type":44,"tag":57,"props":6754,"children":6756},{"className":6755},[],[6757],{"type":49,"value":6758},"verify",{"type":49,"value":6760}," for local webhook testing",{"type":44,"tag":90,"props":6762,"children":6763},{},[6764,6770],{"type":44,"tag":57,"props":6765,"children":6767},{"className":6766},[],[6768],{"type":49,"value":6769},"clerk-setup",{"type":49,"value":6771}," - Initial Clerk install",{"type":44,"tag":90,"props":6773,"children":6774},{},[6775,6781],{"type":44,"tag":57,"props":6776,"children":6778},{"className":6777},[],[6779],{"type":49,"value":6780},"clerk-orgs",{"type":49,"value":6782}," - Org membership events",{"type":44,"tag":90,"props":6784,"children":6785},{},[6786,6792],{"type":44,"tag":57,"props":6787,"children":6789},{"className":6788},[],[6790],{"type":49,"value":6791},"clerk-billing",{"type":49,"value":6793}," - Subscription, subscription item, and payment attempt events",{"type":44,"tag":90,"props":6795,"children":6796},{},[6797,6803],{"type":44,"tag":57,"props":6798,"children":6800},{"className":6799},[],[6801],{"type":49,"value":6802},"clerk-backend-api",{"type":49,"value":6804}," - Sync via direct API calls",{"type":44,"tag":6806,"props":6807,"children":6808},"style",{},[6809],{"type":49,"value":6810},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":6812,"total":1130},[6813,6829,6844,6862,6875,6890,6907,6923,6939,6956,6971,6985],{"slug":8,"name":8,"fn":6814,"description":6815,"org":6816,"tags":6817,"stars":23,"repoUrl":24,"updatedAt":6828},"route Clerk authentication requests","Clerk authentication router. Use when user asks about Clerk CLI operations, adding authentication, setting up Clerk, custom sign-in flows, Swift or native iOS auth, native Android auth, Next.js patterns, React patterns, Vue patterns, Nuxt patterns, Astro patterns, TanStack Start patterns, Expo patterns, React Router patterns, Chrome Extension patterns, organizations, billing, subscriptions, payments, pricing, plans, seat-based pricing, feature entitlements, syncing users, testing, impersonating a user, or testing webhooks locally. Automatically routes to the specific skill based on their task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6818,6821,6822,6825],{"name":6819,"slug":6820,"type":15},"Authentication","authentication",{"name":9,"slug":8,"type":15},{"name":6823,"slug":6824,"type":15},"Mobile","mobile",{"name":6826,"slug":6827,"type":15},"Web Development","web-development","2026-07-18T05:12:23.438307",{"slug":6830,"name":6830,"fn":6831,"description":6832,"org":6833,"tags":6834,"stars":23,"repoUrl":24,"updatedAt":6843},"clerk-android","implement Clerk auth for native Android apps","Implement Clerk authentication for native Android apps using Kotlin and Jetpack Compose with clerk-android source-guided patterns. Use for prebuilt AuthView\u002FUserButton or custom API-driven auth flows. Do not use for Expo or React Native projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6835,6838,6839,6842],{"name":6836,"slug":6837,"type":15},"Android","android",{"name":9,"slug":8,"type":15},{"name":6840,"slug":6841,"type":15},"Kotlin","kotlin",{"name":6823,"slug":6824,"type":15},"2026-04-10T05:00:18.622871",{"slug":6845,"name":6845,"fn":6846,"description":6847,"org":6848,"tags":6849,"stars":23,"repoUrl":24,"updatedAt":6861},"clerk-astro-patterns","implement Clerk auth in Astro apps","Astro patterns with Clerk — middleware, SSR pages, island components, API routes, static vs SSR rendering. Triggers on: astro clerk, clerk astro middleware, astro protected page, clerk island component, astro API route auth, clerk astro SSR.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6850,6853,6854,6855,6858],{"name":6851,"slug":6852,"type":15},"Astro","astro",{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},"Frontend","frontend",{"name":6859,"slug":6860,"type":15},"Serverless","serverless","2026-04-07T04:46:14.731808",{"slug":6802,"name":6802,"fn":6863,"description":6864,"org":6865,"tags":6866,"stars":23,"repoUrl":24,"updatedAt":6874},"execute Clerk Backend API requests","Clerk Backend REST API explorer and executor. Browse tags, inspect endpoint schemas, and execute authenticated requests. Use when listing users, managing organizations, or calling any Clerk API endpoint.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6867,6868,6869,6870,6871],{"name":18,"slug":19,"type":15},{"name":6819,"slug":6820,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":6872,"slug":6873,"type":15},"REST API","rest-api","2026-04-10T05:00:08.728072",{"slug":6791,"name":6791,"fn":6876,"description":6877,"org":6878,"tags":6879,"stars":23,"repoUrl":24,"updatedAt":6889},"manage subscriptions with Clerk Billing","Clerk Billing for subscription management - render Clerk's PricingTable and in-app checkout drawer, configure subscription plans, seat-limit plans for B2B, feature entitlements with has(), and billing webhooks. Use for SaaS monetization, plan gating, checkout flows, trials, invoicing, and subscription lifecycle management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6880,6881,6882,6883,6886],{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6884,"slug":6885,"type":15},"Payments","payments",{"name":6887,"slug":6888,"type":15},"SaaS","saas","2026-04-29T05:37:27.130955",{"slug":6891,"name":6891,"fn":6892,"description":6893,"org":6894,"tags":6895,"stars":23,"repoUrl":24,"updatedAt":6906},"clerk-chrome-extension-patterns","implement Clerk auth in Chrome Extensions","Chrome Extension auth with @clerk\u002Fchrome-extension -- popup\u002Fsidepanel setup, syncHost for OAuth\u002FSAML via web app, createClerkClient for service workers and headless extensions, stable CRX ID. Triggers on: Chrome extension auth, Plasmo clerk, popup sign-in, syncHost, background service worker token, createClerkClient, headless extension.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6896,6898,6899,6900,6903],{"name":6897,"slug":367,"type":15},"Auth",{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6901,"slug":6902,"type":15},"OAuth","oauth",{"name":6904,"slug":6905,"type":15},"Security","security","2026-04-07T04:46:08.489328",{"slug":6632,"name":6632,"fn":6908,"description":6909,"org":6910,"tags":6911,"stars":23,"repoUrl":24,"updatedAt":6922},"manage Clerk authentication and instances via CLI","Operate the Clerk CLI (`clerk` binary) for authentication, user\u002Forg\u002Fsession management, impersonation, local webhook testing, deploy verification, instance config, env keys, feature toggles, and any Clerk Backend, Platform, or Frontend API call. Use when the user mentions Clerk management tasks, \"list clerk users\", \"impersonate a user\", \"test webhooks locally\", \"enable orgs\", \"enable billing\", \"clerk env pull\", \"clerk doctor\", \"clerk deploy\", \"clerk api\", or any ad-hoc Clerk API request. Prefer the CLI over raw HTTP: it handles auth, key resolution, app\u002Finstance targeting, and formatting automatically.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6912,6913,6914,6915,6918,6921],{"name":18,"slug":19,"type":15},{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6916,"slug":6917,"type":15},"CLI","cli",{"name":6919,"slug":6920,"type":15},"Deployment","deployment",{"name":6904,"slug":6905,"type":15},"2026-07-31T05:52:40.580813",{"slug":6924,"name":6924,"fn":6925,"description":6926,"org":6927,"tags":6928,"stars":23,"repoUrl":24,"updatedAt":6938},"clerk-custom-ui","customize Clerk UI and auth flows","Custom authentication flows and component appearance - hooks (useSignIn, useSignUp), themes, colors, fonts, CSS. Use for custom sign-in\u002Fsign-up flows, appearance styling, visual customization, branding.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6929,6930,6933,6934,6937],{"name":6819,"slug":6820,"type":15},{"name":6931,"slug":6932,"type":15},"Branding","branding",{"name":9,"slug":8,"type":15},{"name":6935,"slug":6936,"type":15},"Design","design",{"name":6856,"slug":6857,"type":15},"2026-04-10T05:00:10.109158",{"slug":6940,"name":6940,"fn":6941,"description":6942,"org":6943,"tags":6944,"stars":23,"repoUrl":24,"updatedAt":6955},"clerk-expo","implement Clerk authentication in Expo apps","Add Clerk authentication to Expo and React Native apps using @clerk\u002Fexpo. Use for Expo setup, prebuilt native components (AuthView, UserButton), custom sign-in\u002Fsign-up flows (email, password, SMS\u002Fphone OTP, MFA), OAuth\u002FSSO, native Google\u002FApple sign-in, Expo Router protected routes, biometrics, and push notifications. Do not use for native Swift\u002FiOS, native Android\u002FKotlin, or web-only framework projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6945,6946,6947,6950,6951,6952],{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6948,"slug":6949,"type":15},"Expo","expo",{"name":6856,"slug":6857,"type":15},{"name":6823,"slug":6824,"type":15},{"name":6953,"slug":6954,"type":15},"React Native","react-native","2026-05-19T06:48:47.074181",{"slug":6957,"name":6957,"fn":6958,"description":6959,"org":6960,"tags":6961,"stars":23,"repoUrl":24,"updatedAt":6970},"clerk-nextjs-patterns","implement advanced Next.js patterns with Clerk","Advanced Next.js patterns - middleware, Server Actions, caching with Clerk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6962,6963,6964,6967],{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6965,"slug":6966,"type":15},"Next.js","next-js",{"name":6968,"slug":6969,"type":15},"Performance","performance","2026-04-10T05:00:15.80215",{"slug":6972,"name":6972,"fn":6973,"description":6974,"org":6975,"tags":6976,"stars":23,"repoUrl":24,"updatedAt":6984},"clerk-nuxt-patterns","implement Clerk auth in Nuxt 3 apps","Nuxt 3 auth patterns with @clerk\u002Fnuxt - middleware, composables, server API routes, SSR. Triggers on: Nuxt auth, useAuth composable, clerkMiddleware Nuxt, server API Clerk, Nuxt route protection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6977,6978,6979,6980,6981],{"name":6819,"slug":6820,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6982,"slug":6983,"type":15},"Nuxt","nuxt","2026-04-07T04:46:18.337538",{"slug":6780,"name":6780,"fn":6986,"description":6987,"org":6988,"tags":6989,"stars":23,"repoUrl":24,"updatedAt":6998},"manage Clerk Organizations for B2B SaaS","Clerk Organizations for B2B SaaS - create multi-tenant apps with org switching, role-based access, verified domains, and enterprise SSO. Use for team workspaces, RBAC, org-based routing, member management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6990,6991,6994,6997],{"name":9,"slug":8,"type":15},{"name":6992,"slug":6993,"type":15},"Multi-Tenant","multi-tenant",{"name":6995,"slug":6996,"type":15},"RBAC","rbac",{"name":6887,"slug":6888,"type":15},"2026-04-10T05:00:14.40165",{"items":7000,"total":1130},[7001,7008,7015,7023,7031,7039,7047],{"slug":8,"name":8,"fn":6814,"description":6815,"org":7002,"tags":7003,"stars":23,"repoUrl":24,"updatedAt":6828},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7004,7005,7006,7007],{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6823,"slug":6824,"type":15},{"name":6826,"slug":6827,"type":15},{"slug":6830,"name":6830,"fn":6831,"description":6832,"org":7009,"tags":7010,"stars":23,"repoUrl":24,"updatedAt":6843},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7011,7012,7013,7014],{"name":6836,"slug":6837,"type":15},{"name":9,"slug":8,"type":15},{"name":6840,"slug":6841,"type":15},{"name":6823,"slug":6824,"type":15},{"slug":6845,"name":6845,"fn":6846,"description":6847,"org":7016,"tags":7017,"stars":23,"repoUrl":24,"updatedAt":6861},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7018,7019,7020,7021,7022],{"name":6851,"slug":6852,"type":15},{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6859,"slug":6860,"type":15},{"slug":6802,"name":6802,"fn":6863,"description":6864,"org":7024,"tags":7025,"stars":23,"repoUrl":24,"updatedAt":6874},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7026,7027,7028,7029,7030],{"name":18,"slug":19,"type":15},{"name":6819,"slug":6820,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":6872,"slug":6873,"type":15},{"slug":6791,"name":6791,"fn":6876,"description":6877,"org":7032,"tags":7033,"stars":23,"repoUrl":24,"updatedAt":6889},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7034,7035,7036,7037,7038],{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6884,"slug":6885,"type":15},{"name":6887,"slug":6888,"type":15},{"slug":6891,"name":6891,"fn":6892,"description":6893,"org":7040,"tags":7041,"stars":23,"repoUrl":24,"updatedAt":6906},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7042,7043,7044,7045,7046],{"name":6897,"slug":367,"type":15},{"name":9,"slug":8,"type":15},{"name":6856,"slug":6857,"type":15},{"name":6901,"slug":6902,"type":15},{"name":6904,"slug":6905,"type":15},{"slug":6632,"name":6632,"fn":6908,"description":6909,"org":7048,"tags":7049,"stars":23,"repoUrl":24,"updatedAt":6922},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7050,7051,7052,7053,7054,7055],{"name":18,"slug":19,"type":15},{"name":6819,"slug":6820,"type":15},{"name":9,"slug":8,"type":15},{"name":6916,"slug":6917,"type":15},{"name":6919,"slug":6920,"type":15},{"name":6904,"slug":6905,"type":15}]