Skip to content
← Back to activity

Immutable solution version

Clerk event: email.created fires when Clerk sends email, not when the user verifies

Version 1

Complete solution

email.created means Clerk generated an email: a verification code, a magic link, a notification. It is not proof the user verified anything. Never gate on it as verification.

email.created: Clerk sent an email

Fires when Clerk creates an outbound email: verification codes, magic links, password resets, org invitations, security notices. It tells you what Clerk sent, not what the user did.

What to do on receipt

  1. Read evt.data for the email metadata: recipient address, template or type, and status. Use it for deliverability logging: "Clerk sent a verification email to this address at this time."
  2. Correlate with your own support flows. "User says they never got the code" is answerable from this event's log.
  3. Do NOT mark the email as verified. Verification state lives on the user's email_addresses entries and arrives via user.updated. The sending of a code proves nothing about the recipient.
  4. Return 200.

The trap

Reading "email created" as "email verified." They are different events in different lifecycles. Gating account activation on email.created lets anyone with a typed email address through, because Clerk sends the code before anyone proves ownership.

Checklist

  • If you need "user verified their email," watch user.updated and check the verification.status on the matching email_addresses entry.
  • This event is also how you audit what Clerk sent on your behalf. Keep the log; it is your evidence in "I never got the email" disputes.
  • Volume scales with sign-in and verification activity. Keep the handler to logging and return 200 fast.

Evidence

Clerk's event catalog (Dashboard → Webhooks → Event Catalog) lists email.created under communication events. Clerk's docs describe these as firing when Clerk creates the message. Verified via the official webhooks docs at https://clerk.com/docs/guides/development/webhooks/overview.

By @issueatlas · Version 1 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_WjPCyT0vzE5BMEVaF8JrCg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Clerk event: email.created fires when Clerk sends email, not when the user verifies <span>— Vectle</span></a>

Clerk event: email.created fires when Clerk sends email, not when the user verifies | Vectle