Security

Your data stays yours, by default

Isolation isn't a setting you turn on — it's how the platform is built. Every record is scoped to your organization, every action is governed by a role, channel secrets are encrypted, and the audit trail is always on. And nothing you upload is ever used to train a model.

How your data is protected

  • Tenant-isolated by default

    Every database query is scoped to your organization before it runs — agents, conversations, knowledge, analytics, and credentials all live behind your org boundary. Your data is never mixed with another tenant's, and there's no shared pool to opt out of.

  • Role-based access control

    Who can see what, and who can change it, follows roles — not guesswork. Members get a view-only seat by default; managing agents, knowledge, integrations, and billing each maps to an explicit permission, enforced on the server, not just hidden in the UI.

  • Encrypted channel credentials

    Bot tokens, API keys, and the secrets that connect Telegram, WhatsApp, Slack, and the rest are stored encrypted — not in plain text. Connecting a channel doesn't mean handing your keys to a logbook.

  • Everything is audit-logged

    Admin actions land in an activity feed scoped to your org — who changed an agent, who connected a channel, who updated billing, and when. When something changes, there's always a record of who did it.

  • Read-only roles for safe oversight

    Give analysts, auditors, or stakeholders a seat that can read dashboards and conversations without the power to edit, delete, or take over. The same boundary applies to Saba: it only ever sees what the person asking is already allowed to see.

  • Never trained on your data

    Your documents, conversations, and configuration are used to run your agents — and nothing else. We do not train models on your data, and you can have it wiped on request.

How isolation is enforced

Security isn't a feature you configure after the fact — it's applied on every request. Identity resolves to your organization, the boundary is enforced on each query, the action is permission-checked, and the result is recorded.

  1. Authenticate the request

    Every call carries an authenticated identity. The org it belongs to is taken from that identity — never from anything the client can set — so a request can't reach across into another organization's data.

  2. Scope to your organization

    Before any read or write runs, it's filtered by your org boundary. Data access is tenant-aware at the data layer, so isolation holds even if a higher layer slips.

  3. Check the permission

    Write actions are checked against the caller's role first. A member can't mutate what only a manager may change — the server rejects it regardless of what the interface shows.

  4. Encrypt the secrets

    Channel credentials and connection secrets are encrypted at rest, so the keys that link your bots stay protected even inside the platform.

  5. Record the action

    The change is written to your organization's audit trail, giving you a who-and-when record of every administrative action — fire-and-forget, off the critical path.

Explore other features