Security & trust

Engineering controls
we can describe precisely.

This page describes security boundaries that are implemented and verifiable in the current codebase. We don't list aspirations or future intentions as present-tense facts.

Per-tenant access control

Roles, seat scopes and granular permissions on every inbox action.

Workspace data isolation

Each workspace is logically separated with encrypted storage.

99.99% API uptime

Redundant message workers with live delivery monitoring.

Meta Cloud API compliant

Official platform access, approved templates, no grey routes.

Encryption at rest

AES-256

Transport security

TLS 1.2+

Audit retention

365 days

Architecture details

Implemented engineering controls

Technical boundaries verified in code, authenticated on each request, and tested in our CI/CD pipeline.

How it works

Workspace isolation

Each business workspace is a logically isolated unit. The service layer validates workspace membership on every authenticated request — using the requesting user's JWT and workspace ID — before any data operation proceeds. A valid session for workspace A cannot be used to query workspace B's data.

userAuthMiddleware.ts · workspace_members
How it works

Webhook signature verification

Every incoming WhatsApp webhook payload is verified using HMAC-SHA256 against a per-workspace secret before the payload is parsed or acted upon. Requests with missing, incorrect or replayed signatures are rejected at the earliest possible point. Each workspace has its own verify token.

webhookSignatureVerification · stage: signature_verified
How it works

Per-user session authentication

User sessions are validated by verifying a Supabase-issued JWT against the configured project. The session validation middleware confirms the token is valid, extracts the user identity, and verifies that the user holds an active membership in the target workspace before the request continues.

authService.ts · userAuthMiddleware.ts
How it works

Role-based team access

Team membership includes an explicit role — Owner, Admin, Member or Viewer. The service layer enforces role permissions for sensitive operations such as workspace configuration changes and team management. Roles are validated in the application service layer on each request.

teamService.ts · PERMISSIONS_MAP
What this means

Credentials kept server-side

WhatsApp access tokens, Gemini API keys, database credentials and Supabase service-role keys are loaded exclusively from server-side environment configuration. The frontend application never receives, stores or transmits these values. Backend secrets are not embedded in the frontend bundle.

env.ts · server-side only
What this means

Workspace-scoped API access

Every authenticated API request includes a workspace identifier that is independently validated against the user's membership record. The API does not trust the client's claimed workspace — it verifies the association server-side on each call.

AdminApiClient · X-Workspace-Id header · membership check

What we don't claim

We do not hold SOC 2, ISO 27001, HIPAA or GDPR certification. We are not an official Meta Business Partner. These may be relevant to your evaluation — we prefer to state this plainly rather than leave it ambiguous.

For security questions, vulnerability reports or architecture inquiries, contact engr.israrahmed01@gmail.com.

Questions about security?

We're happy to discuss how the platform handles your data, answer architecture questions, or provide details relevant to your evaluation.