What You Can Do
- Trigger automations from Clerk events. Kick off email flows when users sign up, orgs are created, subscriptions go past due, or waitlist entries arrive
- Auto-sync contacts into your audience. Every Clerk event upserts the user into Brew with
clerk_*custom fields (clerk_user_id,clerk_subscription_status,clerk_plan_name, …) you can filter and segment on - Personalize with auth context. Reference
firstName,lastName,planName,organizationName, and other Clerk fields inside emails - Cover lifecycle + billing in one place. Onboarding, dunning, win-back, and waitlist nurture all use the same Clerk connection
How It Works
- Brew mints a unique webhook URL for your brand and you paste it into your Clerk Dashboard.
- Clerk signs every webhook with your endpoint’s signing secret. Brew verifies the signature via the Standard Webhooks (Svix) spec on receipt, tampered or replayed events are rejected.
- For each verified event Brew (a) starts every Live automation whose trigger matches and (b) upserts the Clerk user into your audience with
clerk_*custom fields.
Setup
1
Generate your Brew webhook URL
In Brew, open Integrations, click the Clerk card, and click Generate URL. Copy the URL Brew generates for the next step.
2
Add an endpoint in Clerk
Open dashboard.clerk.com, go to Webhooks → + Add Endpoint, and paste the Brew URL into the Endpoint URL field.
3
Subscribe to the events Brew supports
Enable the user, organization, organizationInvitation, organizationMembership, paymentAttempt, subscription, subscriptionItem, and waitlistEntry events (full list below), then click Create.
4
Reveal the Signing Secret
On the endpoint detail page Clerk shows next, click the eye icon next to Signing Secret to reveal it. The value starts with
whsec_.5
Paste the Signing Secret into Brew
Paste the
whsec_… secret into the Brew connect form and click Connect. Brew verifies every webhook using the Standard Webhooks (Svix) spec.6
Verify it's working
Trigger an event in Clerk (e.g. sign up a test user, or send a test invite). Within a few seconds it should appear in the Manage → Recent events panel of the Clerk integration page in Brew. If it doesn’t, recheck the signing secret in step 5.
Brew only listens for Clerk events. It can’t modify users, create organizations, or charge subscriptions.
Triggering Automations
Once connected, every Clerk event below is provisioned automatically and available as a trigger in the automation builder. The Manage tab on the Clerk integration page is a read-only catalogue of the events Brew is listening for plus a live Recent events stream, no per-event enable step. Whether an event actually fires emails is controlled by whether the bound automation is Live (not Draft).Supported Events
Brew supports the following 13 Clerk events as automation triggers: Useruser.created
organization.createdorganizationInvitation.createdorganizationInvitation.acceptedorganizationInvitation.revokedorganizationMembership.created
paymentAttempt.createdsubscription.createdsubscriptionItem.freeTrialEndingsubscriptionItem.pastDuesubscriptionItem.canceledsubscriptionItem.abandoned
waitlistEntry.created
Common Patterns
Personalization
These resolve as merge tags in the email body, subject line, and preview text. Use a fallback wherever an empty value would read badly, like{{ firstName | there }}.
Use Clerk payload fields anywhere in your emails. Common variables:
Only
firstName, lastName, and createdAt are available on every Clerk event. The rest are event-specific: a tag referenced on an event that doesn’t carry it renders its fallback ({{ planName | your plan }}), so always give event-specific tags one.Clerk organization events (like
organization.created) don’t carry a customer email. Brew emits a synthetic placeholder so you can still route the event internally, and the event carries name, slug, membersCount, and maxAllowedMemberships for the org itself. To email a real person about a new workspace, trigger on organizationMembership.created instead: it carries the member’s own email alongside organizationName and roleName.Troubleshooting
An event arrived but no automation fired
An event arrived but no automation fired
Open the canvas and confirm at least one automation bound to this event is set to Live (not Draft). The Brew integration’s Manage → Recent events panel shows every webhook Clerk has delivered, if the event isn’t there, the webhook isn’t arriving (check Clerk’s endpoint settings and re-paste the signing secret). If the event is there but no email sent, the only remaining gate is
automation.published.Clerk shows 401 on every delivery
Clerk shows 401 on every delivery
The signing secret in Brew doesn’t match the one in Clerk’s Dashboard, usually because it was rotated in one place but not the other. Reveal the current secret on the Clerk endpoint detail page and re-run setup step 5 in Brew.
I want to test before going live
I want to test before going live
Create a Draft automation, run a test send from the email editor, and only publish the automation to Live once you’re happy. The Manage → Recent events panel shows every webhook Clerk has delivered in the last 24 hours so you can verify the trigger is firing the way you expect.
Requirements
- A Clerk account on any paid plan (free instances support webhooks too)
- Admin access to your Clerk Dashboard so you can add a Webhook endpoint and reveal the Signing Secret
Need Help?
Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:- Self-Service Tools
- Talk to Our Team
Search Documentation
Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.
ChatGPT/Claude Integration
Click “Open in ChatGPT” at the top right of any page to explore it further with ChatGPT or Claude.