Call recordings are among the most sensitive data your business holds. This page says exactly how they are treated, and what we do not have.
Agent: Thanks Priya, can you confirm the number ending [PHONE MASKED]?
Customer: Sure, my card is [CARD NUMBER MASKED], expiry [CVV MASKED], and the OTP is [OTP MASKED].
Agent: And the UPI ID on file is [UPI ID MASKED]?
Names stay readable on purpose: a coaching note about an unnamed agent is not much use. Best-effort, not a deterministic redaction pass.
Card numbers, bank details, health information and government identifiers all get spoken aloud on ordinary calls. Masking lets QA happen without every reviewer inheriting access to all of it.
Identifiers are replaced inline while the transcript is produced, so the unmasked values are never written into an audit record.
Names are deliberately left readable.A coaching note about an unnamed agent is not much use, and the agent's identity is not the sensitive part of a call about somebody's bank account.
ai.service.ts · transcription prompt
There are two ways to remove identifiers from a transcript. Deterministic redaction applies pattern rules that either fire or do not. It is predictable, auditable, and blind to anything the patterns did not anticipate. Model-based masking is more flexible about how a number is spoken aloud, and is not guaranteed.
We use the second. It catches an account number read out in words, or a card number broken across a sentence, in ways a regex does not. It can also miss.
If you operate under a regime that requires demonstrable redaction, evaluate this against your own obligations before relying on it. We would rather lose that deal than discover the gap together afterwards.
Masking is performed by the model during transcription and is best-effort rather than a deterministic redaction pass.
Every request is scoped to your organisation, and every single-record fetch is checked against it rather than trusting the identifier in the URL. Your calls are not visible to another tenant.
Inside your workspace, six roles carry different scopes. Agents see only their own calls and their own performance. There is also an external-user role restricted to its own data, for giving a client visibility into their campaign without opening the whole floor.
Nobody can create a user with more privilege than they hold, which is checked server-side rather than by hiding the option.
assertOrgAccess · audit.controller.ts
Vendors in this category tend to list certification badges on the homepage. We have none, and a security page that implied otherwise would fail the first questionnaire it met.
| Criterion | QXAI |
|---|---|
| Per-workspace data isolation | YesYesEnforced on every record fetch, not just at list level. |
| Role-based access control | YesYesSix roles, with privilege escalation blocked server-side. |
| Identifier masking in transcripts | Best-effortBest-effortPrompt-instructed, not deterministic. See above. |
| Card details never touch our servers | YesYesRazorpay hosted checkout; we store order and payment ids only. |
| Sub-processors named publicly | YesYesAudits are produced using Google's Gemini API. Listed in the privacy policy. |
| SOC 2 / ISO 27001 | Not certifiedNot certifiedNo audit has been undertaken. We are not going to describe one as "in progress" to fill the row. |
| HIPAA / PCI-DSS compliance | Not certifiedNot certifiedYou can build a scorecard that checks the disclosures those regimes require. That is not the same as us being certified, and we will not blur the two. |
| Single sign-on (SAML / OIDC) | NoNoEmail and password only. |
| Two-factor authentication | NoNoNot implemented. There is a field for it in the data model and nothing behind it. |
| Automated data-retention deletion | NoNoA retention setting exists in the admin panel and is not currently enforced by any job. Deletion is on request. |
| Audio recordings stored long-term | Batches deletedBatches deletedFiles uploaded for a bulk campaign are removed from disk once the job completes. Transcripts and audit records are retained. |
Security questionnaire or vendor assessment? Send it to us . We would rather answer it than have you guess.