Skip to content

Security

Lead data is customer data. We treat it that way.

Every request passes the same checks: a verified signature or session, a workspace it is allowed to touch, and a rate limit. Here is what that means in practice.

01Signature check
02Clerk session
03Workspace scope
04Rate limit
05Postgres

Controls

What is in place today.

This page lists controls that ship in the product. When something changes, this page changes with it.

Signed webhooks

Meta, WhatsApp, Twilio and Dodo Payments callbacks are rejected unless their signature verifies. Billing changes apply only on a verified event.

Authenticated by default

Every API route requires a signed-in caller. Sign-in runs on Clerk, the same account the MCP server uses, so there are no long-lived API keys to leak.

Workspace isolation

Each request checks that the caller owns or belongs to the workspace it touches. Leads, calls and messages never cross organizations.

Roles and seats

Admin, sales manager and sales rep roles, with seat limits set by your plan.

Rate limiting

AI and calling endpoints are throttled per user, which caps runaway cost and abuse.

Private recordings

Call recordings sit in S3 and play through signed URLs, not public links.

Consent in campaigns

Every campaign email carries an unsubscribe link, and unsubscribed addresses are suppressed from future sends.

Checked before release

Typecheck, the full test suite and a production build gate every merge to main.

AI and your data

Agents read your workspace. They don’t speak for it.

AI features run on Google Gemini and work only within your workspace. Drafts wait for a rep, merges wait for approval, and commitments are never marked done by an agent.

Outbound messages
Rep sends
Record merges
Rep approves
Stage changes
Ready-to-buy only
Commitments
Never auto-closed

Start today

Bring your leads somewhere careful.

Start a workspace and import from your current CRM or a CSV. Duplicates are flagged before anything is created.