metadata are neither redacted nor deleted by retention), text conversations (which retention does not cover yet), and audio (which redaction does not cover yet). What stays yours has the full list.
The controls
Some limits of these controls matter to a review:
- Redaction is not anonymisation or de-identification. Recall is the detector’s: spelled-out numbers and misheard names are missed, and
PERSONand dates are not in the default. Redacted data is still personal data, and redacted PHI is still PHI. - The call record is kept raw, and kept.
GET /v1/calls/{id}returns the caller’s and called numbers and the call’smetadataas they were, whether or not the project redacts, and retention never deletes the call record. Only deleting the project removes it, at the purge. - A call live when redaction is turned on is partly raw. The transcript lines stored before the change stay as they were, in the transcript read and in that call’s
call.ended. - Only project credentials are encrypted by TurnCall. Call data (recordings, transcripts, events, analysis) is stored as it is, so encrypt your database, volumes and bucket at rest. These secrets are stored unencrypted (#338): webhook subscriptions’ signing secrets, a phone number’s call-init
server_url_secret, and in an agent’s config itsserver_url.secret, MCP servers’headersandenv,llm.api_key, static AWS keys inconfig.awsand a tool’swebhook_secret. Anyone with a database dump or backup can read them, and with a signing secret can sign a forged event or call-init request that your receivers accept. Keep provider keys in project credentials, and protect dumps and backups as you would the secrets. - Twilio and WhatsApp webhooks can go unverified. With no
TWILIO_AUTH_TOKENand no phone number bringing its own Twilio account, TurnCall accepts Twilio’s voice and SMS webhooks without checking their signature (#337). WithoutWHATSAPP_APP_SECRET, it accepts WhatsApp’s the same way (#339). Set both in production. - TurnCall does not refuse an
http://webhook URL (#340). Usehttps://for webhooks, call-init and tools, and serve the API over TLS (the Helm chart’s Ingress does).
GDPR
Article numbers refer to Regulation (EU) 2016/679. You are the controller for your callers’ data, or a processor for your customer; either way, these controls support obligations that remain yours.
Not covered by any control here:
- Erasure on request (Art. 17). There is no route that deletes one call or one caller’s calls. Retention deletes by age, and never the call record.
DELETE /v1/chat/sessions/{id}only ends a chat session: its messages stay. Deleting a project deletes its recordings at once and the rest of its data at the purge (PROJECT_PURGE_RETENTION_DAYSafter the delete, 30 days by default;0turns the purge off, and the deleted project’s data is then kept). Answering an individual’s erasure request is yours, in your database and storage, and at your providers and carrier. - Access requests (Art. 15). The API reads a call’s record, transcript, events and recording by call id; finding every call of one person is yours.
- Records of processing (Art. 30), DPIAs (Art. 35), breach notification (Art. 33 and 34) and telling callers they are being recorded and how their data is used (Art. 13) are yours.
HIPAA
Section numbers refer to 45 CFR Part 164: the Security Rule (Subpart C) and the Privacy Rule (Subpart E). If you handle protected health information (PHI) on behalf of a covered entity, you are its business associate; TurnCall, as software you run, is not.
Access control (§164.312(a)(1)): API keys are scoped to a project and carry a role (
admin, developer, viewer), and settings such as redaction, retention and the audit log need an admin key. A key is not a person, so unique user identification (§164.312(a)(2)(i)) needs one key per person or service.
What stays yours
- Agreements with your vendors. Redaction never applies to what the agent hears: your STT, LLM and TTS providers receive the caller’s raw audio or words, and post-call analysis, takeaways and knowledge base embeddings send text to your LLM and embedding providers. A DPA (GDPR) or BAA (HIPAA) with each, and with your carrier (Twilio, Telnyx, your SIP trunk, Meta for WhatsApp), your cloud and your tracing backend, is yours. Your own call-init and tool servers receive raw values too. Running the LLM yourself (Ollama, or any OpenAI-compatible endpoint) removes one vendor; STT and TTS still go to the provider you choose.
- The infrastructure. Encryption at rest of Postgres, Redis, volumes and the bucket; TLS at your ingress; network policy; patching; and the database owner, who can drop the audit log’s trigger.
- Access control. Who holds admin keys, the platform key (
PLATFORM_API_KEY),CREDENTIAL_ENCRYPTION_KEYandAPI_KEY_HASH_SECRET, and who can reach the database and storage directly. - The call record. Its numbers and
metadataare kept as they were, not redacted, and retention never deletes it. Keep personal data out ofmetadataif you can, and remove records yourself when you must. - Backups. Retention deletes from the live database and storage, not from your backups, snapshots or replicas. Backing up, restoring and expiring them is yours.
- The carrier’s recording copy. TurnCall records calls itself. If your carrier records them too, TurnCall deletes a Twilio copy it was told about, on an account it holds credentials for; any other copy stays with your carrier until you delete it there or turn carrier recording storage off. See Retention.
- Text conversations. SMS, WhatsApp and Chat API conversations are redacted (stored redacted once a session ends) but not covered by retention yet. Neither are campaign targets, the suppression list, knowledge base documents or eval scenarios. Deleting a chat session keeps its messages.
- Audio. Redaction is text only in this release: the recording is not bleeped. Keep it briefly with
recordings_days. - Logs and webhook deliveries that already left the server, in your log pipeline and at your webhook receivers.
- Callers’ rights and notices: erasure and access requests, recording-consent and AI-disclosure notices, breach notification, and your own risk analysis.