Skip to content
Security

How Autocloz protects your data.

Tenant isolation enforced at the SQL layer, encryption everywhere, role-based access for every operator action, and an audit log you can drill into. The defaults are paranoid; you can keep them that way.

Last updated:

Security principles

Three rules govern how the platform handles customer data:

  • Defense in depth — every sensitive action passes through at least two independent gates (authn + RBAC + cross-tenant filter at SQL layer).
  • No silent fallbacks — when a carrier or integration credential is missing, the system fails loudly with an explicit error code rather than fabricating a fake successful outcome.
  • Auditable by default — every operator action lands in the audit log with actor, target, IP, and event type. Compliance officers can query it.

Tenant isolation

Every query into Autocloz includes the caller's org_id as a hard filter. There is no global read path — even a misconfigured RBAC role cannot leak rows from another workspace because the SQL layer rejects the query.

  • Postgres row-level scoping with org_id as a required predicate
  • JWT carries the org_id; revalidated on every request via membership lookup
  • A dedicated cross-tenant isolation suite (test_*_cross_tenant_isolation) runs locally before every release
  • Bulk endpoints scope the input list to the caller's org before the action; out-of-org IDs are silently dropped

Encryption at rest + in transit

Every connection to Autocloz uses TLS 1.2+. Postgres at rest is encrypted with AES-256 volume encryption. Backups are encrypted with a separate key and stored separately from the primary database.

  • HTTPS-only; HSTS preload header set with max-age=63072000; includeSubDomains; preload
  • TLS termination at the edge with modern cipher suites only (ECDHE + AES-GCM / ChaCha20)
  • Database volumes AES-256 encrypted; daily encrypted backups

Mailbox + carrier credentials

Mailbox passwords, OAuth refresh tokens, carrier API keys, and SIP passwords are sensitive. They are never logged, never returned by any API endpoint after the initial save, and stored encrypted at the application layer above the database encryption.

  • SMTP / IMAP passwords — encrypted with a per-org key derived via HKDF from the platform secret
  • OAuth tokens — refresh tokens encrypted; access tokens never persisted (re-derived from refresh on demand)
  • Carrier API keys — Telnyx / DIDLogic / FreJun keys live in env at the platform level (one shared key per provider), never per-customer; per-agent FreJun OAuth tokens encrypted with the same scheme as mailbox passwords
  • SIP passwords — write-only; the API surfaces only sip_password_set: bool after the initial save

Role-based access control

Every operator surface in Autocloz is gated by an explicit permission check. The four built-in roles (Owner, Admin, Member, Viewer) cover most workspaces; Enterprise plans get the custom-role editor that grants per-module action permissions.

  • Module × action grid — 30+ modules × view/create/edit/delete
  • require_perm(module, action, strict=True) on every admin endpoint — strict mode rejects unknown roles instead of falling through
  • API keys carry a scoped permission grid that narrows beyond the role — a key with only leads:view cannot delete leads even if minted by an admin
  • Voice surfaces have additional role-scoping — members and viewers see only their own calls in the CDR + recordings views

Audit log

Every operator-initiated action — and every administrative system event — writes to a tamper-evident audit log. Compliance officers can drill in by org, actor, event type, or time range.

  • Captured fields: org_id, actor_user_id, actor_email, event, entity_type, entity_id, IP, user-agent, free-form metadata, timestamp (UTC)
  • Append-only — no API path lets anyone delete rows; even Owners can only export
  • Retained according to your plan and exportable to CSV at any time
  • Export to CSV from Settings → Audit log

Voice + webhook signature verification

Voice provider webhooks are not JWT-authenticated — the carrier doesn't have an Autocloz token. Instead, every webhook is verified using the provider's signature scheme, mandatory in production:

  • Telnyx — Ed25519 signature over timestamp|body; rejects requests with stale or missing timestamps (>300s drift)
  • FreJun — HMAC-SHA256 over the raw body with the per-org webhook secret
  • DIDLogic — HMAC-SHA256 with constant-time comparison
  • Idempotency — every webhook event_id is recorded in voice_webhook_event_dedup; replays are silently rejected

Verification can be opt-in in dev for ease of local testing; AUTOCLOZ_ENV=production makes it mandatory.

AI data handling

Autocloz uses third-party LLMs (OpenAI, Anthropic, Groq, ElevenLabs, Deepgram) for AI replies, summaries, voice synthesis, and transcription. We do not use customer data to train models — neither ours nor the providers'.

  • Bring your own key — paste your OpenAI / Anthropic / Groq key per workspace; we never proxy via a shared key
  • Zero retention enabled on every API call where the provider supports it (OpenAI data_retention=none, Anthropic enterprise zero-retention)
  • No content sent to providers is stored on Autocloz beyond the retention window of the source artefact (e.g., a generated reply is stored only as long as the message it answers)
  • Voice transcripts stored next to the recording URL; retention follows the recording-retention policy in workspace ops settings

Infrastructure

  • Runs on dedicated cloud infrastructure with encrypted storage volumes
  • The database and Redis are isolated to a private network with no public access — only the API workers can reach them
  • Daily encrypted backups with point-in-time recovery
  • Have a data-residency requirement? Contact us and we’ll tell you exactly where your data is processed before you commit.

Incident response

On a confirmed security incident affecting customer data, we notify affected workspaces promptly — by email to the workspace Owner and in the product — and follow up with detail and remediation as the investigation progresses.

  • An on-call engineering rotation for production incidents
  • Customer notification by email and in the workspace’s notifications panel
  • A written postmortem shared with affected workspaces

Compliance posture

We build to the controls these frameworks ask for — tenant isolation, encryption, role-based access and audit logging — and we tell you plainly where we are rather than claim a badge we don’t hold.

  • SOC 2 — we follow SOC 2-aligned controls (the tenant isolation, encryption, RBAC and audit logging described above). We are not SOC 2 certified, and we say so on every security questionnaire.
  • GDPR — a Data Processing Addendum is available on request; subject-access and deletion requests are handled within 30 days.
  • India DPDP Act 2023 — we align our data-handling practices to the Act, including consent capture for marketing email.
  • CCPA / CPRA — California residents can request data deletion via [email protected].
  • TCPA + India DLT — outbound calling runs DNC, quiet-hours and DLT checks before every dial.

Reporting a security issue

We run a coordinated-disclosure program. Please report security issues to [email protected] with steps to reproduce. We acknowledge within 24 hours and aim to resolve high-severity issues within 14 days.

We don't currently run a paid bug-bounty program, but we credit researchers who report valid issues, on request.

Free to start

Security you can start free.

A free-forever CRM with tenant isolation and RBAC built in. Free for 3 users, no card required.