Clerk CRM: turning signups into a real sales pipeline
Clerk knows who signed up, who verified email, and who hasn't logged in this week. Here's how to turn that data into a sales pipeline that actually drives revenue — without Zapier glue.
Clerk is the best auth system for Next.js SaaS apps right now. What it isn't is a CRM — and the gap between "a user exists in Clerk" and "a sales-ready pipeline record" is where most SaaS teams drop a surprising amount of revenue on the floor. This post covers how to bridge that gap without Zapier, webhooks you have to maintain, or a second Postgres database.
What Clerk gives you (and what it doesn't)
Clerk handles identity beautifully: signups, email verification, password reset, SSO, MFA, organizations, sessions. For an auth system, that's a complete feature set.
What Clerk does not give you:
- A pipeline showing who's ready to be contacted and who's stale.
- A way to segment users by "signed up but hasn't activated" or "last logged in 90 days ago."
- Email campaigns targeted at behavior (logged in 5 times this week → send upgrade nudge).
- Notes, tasks, deals, or any CRM-native structure on top of the user.
- A combined view that joins Clerk identity with Stripe revenue.
For any of that, you need a CRM — and it needs to read from Clerk, not duplicate it.
The bad-architecture trap: duplicating users
The naive approach is to have sales operations manually add users to HubSpot as they come in. Two weeks later, the HubSpot user list is out of date, and the CRM disagrees with reality. A slightly better approach is a Zapier zap from Clerk's "user created" webhook to HubSpot, but that breaks the moment Clerk tweaks its webhook payload, and it can't backfill.
The right architecture is: Clerk is the source of truth for identity, and the CRM reads from it directly via Clerk's API. No duplicate Postgres, no webhook endpoint that someone on the team has to babysit.
Sambandh does this. See the Clerk CRM landing page and the Clerk integration technical docs.
What "read from Clerk" looks like in practice
When Sambandh is connected to Clerk, every Clerk user is automatically a Sambandh contact with these fields populated:
- Email, name, phone (from Clerk's user profile)
- Verified status (email verified, phone verified, MFA enabled)
- Signup date + signup source (OAuth provider, email/password, etc.)
- Last sign-in timestamp
- Session count over time
- Organization memberships (Clerk orgs → Sambandh Companies)
All of this updates in real time via Clerk webhooks. No batching, no polling, no staleness.
On top of that CRM-native data layer, you can add:
- Notes about the user (internal-only, never synced back to Clerk)
- Tasks assigned to a team member ("follow up with this user by Friday")
- Deal records linked to an expansion opportunity
- Tags for segmentation ("enterprise trial," "post-activation," etc.)
- Pipeline stage based on where they are in the customer lifecycle
None of this pollutes Clerk. Clerk remains a pure auth layer; the CRM is a layer on top of it.
Stages for a Clerk-driven pipeline
The sales pipeline guide covers subscription pipelines in depth. For a Clerk-authenticated SaaS, the stages translate roughly as:
- Signed up — Clerk
user.createdfired. - Verified — user verified their email.
- Activated — user hit your product's activation event.
- Paid — Stripe subscription transitioned to
active(requires Stripe connected). - Expanded — plan upgrade or seat add.
- At-risk — declining usage OR payment issues.
- Churned — subscription canceled.
Every stage move is triggered by a real event — Clerk for stages 1–3, Stripe for stages 4–7. Sambandh wires both sides together automatically when you connect both accounts. See the Stripe CRM guide for the Stripe side.
Joining Clerk identity with Stripe revenue
The single most valuable CRM feature for a Clerk + Stripe SaaS is the joined view: one row per customer, showing Clerk identity + Stripe revenue + activity in one place.
This is the join that generic CRMs fumble. HubSpot doesn't natively integrate with Clerk — you'd need Zapier to push both sides, and Zapier doesn't do joins. Salesforce treats Clerk as an unknown system entirely. Sambandh performs the join natively: users are matched by email (or by stripe_customer_id stored in Clerk metadata, if you've set that up), and the joined record has all fields from both systems.
The filters this unlocks:
- "Clerk users who signed up 14+ days ago but have no Stripe subscription" — your self-serve trial leak.
- "Stripe customers whose Clerk last-sign-in is 30+ days ago" — likely at-risk.
- "Enterprise org members who haven't completed MFA setup" — security-sensitive outreach.
- "Users whose Clerk account is verified AND who are on a paid plan AND who haven't opened a support ticket" — your happy-path customer cohort, great for case studies or referrals.
Each of these is one filter in Sambandh. In a CRM without native Clerk + Stripe integration, each one requires custom ETL or is just impossible.
Handling Clerk organizations
Clerk's multi-user organizations map 1:1 to Sambandh Companies. When a user signs into a Clerk org, Sambandh:
- Creates the Company record (if new)
- Links the user (Contact) to the Company
- Tracks role (admin, member) as a custom field on the membership
- Respects role changes via
organizationMembership.updatedwebhook
This is essential for B2B SaaS — a single "customer" is often the org, not the user. Sambandh lets you filter and segment at either level: "all users in acme.com" or "acme.com as a single record."
See the Clerk CRM landing page for the full org-aware feature list.
What about Clerk metadata?
Clerk lets you attach public and private metadata to users and orgs. By default, Sambandh syncs only public metadata. You can opt-in to sync specific private metadata fields for CRM use — e.g., if you store stripe_customer_id or company_size in private metadata, whitelist those two fields on connect.
Private metadata you don't whitelist stays in Clerk and is never seen by Sambandh. This is important for data-minimization principles and GDPR compliance.
The developer experience
If you're building automation on top of the Clerk + Sambandh combination, Sambandh exposes every Clerk-derived field via its API:
const contacts = await sambandh.contacts.list({
filter: {
clerk_verified: true,
stripe_mrr: { gt: 0 },
clerk_last_sign_in: { before: '30 days ago' },
},
})
Rate-limited at 1000 req/min on Pro, 5000 req/min on Teams. See /developers for full SDK docs.
Migration from another setup
If you currently have Clerk + HubSpot with a Zapier bridge, migration is one-way:
- Connect Sambandh to Clerk.
- Sambandh backfills every Clerk user as a Contact (typically 5–10 minutes for up to 10k users).
- Export existing CRM data as CSV.
- Import via MoveTo — Sambandh matches by email to merge existing notes/tags/deals.
- Delete the Zap.
See the CRM migration guide for the full walk-through.
Frequently Asked Questions
Does Sambandh write data back to Clerk?
No — the integration is read-only by default. Changes you make in Sambandh (notes, tags, pipeline stages) stay in Sambandh. If you need bidirectional sync, it's opt-in for specific fields.
What Clerk webhook events does Sambandh listen for?
user.created, user.updated, user.deleted, session.created, organization.created, organizationMembership.created, and organizationMembership.updated. All with signature verification.
Can I connect multiple Clerk instances?
Yes — Sambandh Teams supports multiple Clerk connections, so if you have separate Clerk instances for staging and prod, both can be represented.
Does this work with Clerk's B2B features?
Yes. Clerk's organization model, role hierarchies, and multi-tenant setups all map cleanly to Sambandh's Company + Contact structure. See Clerk CRM.
What if we move off Clerk later?
Your Sambandh data stays intact. Contacts are CRM-native records that just happen to have had Clerk fields populated. If you switch to Auth0 or WorkOS, you disconnect Clerk and connect the new provider — Sambandh will re-match users by email.
Running Clerk + Stripe and ready to see them joined? Start a free trial — connect both in under 3 minutes.
Related reading
Ready to try a CRM built for how you actually work?
Start Free Trial