Workspace isolation
Every record belongs to a workspace, and the boundary is checked in the API on each request — not enforced by hiding things in the interface.
Trust
A CRM holds your customers' contact details, prices and conversations. These are the controls that exist in the product today — and, below them, the ones that do not.
Every record belongs to a workspace, and the boundary is checked in the API on each request — not enforced by hiding things in the interface.
Permissions decide what each person can read and change, and the same rules apply to the REST API and to Ira AI.
Individual fields can be restricted per role, so sensitive values stay hidden from teammates who should not see them.
Integration secrets, OAuth tokens and webhook signing keys are encrypted with AES-256-GCM before they are stored, and are never returned to the browser.
Account passwords are stored as bcrypt hashes. They are never written to logs and cannot be read back out of the system.
Outbound webhooks are signed so you can verify they came from us. Inbound webhooks are signature-checked, and the workspace is resolved from our own records rather than from the payload.
Files are scanned before they are stored. If the scanner is unavailable the upload is refused rather than accepted unscanned.
Storage keys are validated against the owning workspace, and downloads are served with headers that stop a file being executed in the browser.
Sensitive actions are recorded, so a change can be traced back to the account that made it.
All traffic to the application and the API is served over TLS.
No system is unbreakable, and we make no claim to be. If one of these is a requirement for you, raise it on a demo call and we will tell you exactly where we stand.