Automated calling produces an unusually sensitive dataset: phone numbers, recorded voices, and transcripts of people discussing their salaries, their notice periods and their plans. Anyone running this at scale should be able to answer where it all sits.
Separation between workspaces
Every record — call, agent, number, rating, recording — belongs to one workspace, and every query is scoped to it. A valid id from another workspace returns "not found" rather than a permission error, which is deliberate: distinguishing the two would confirm the record exists.
What an API key can reach
Keys are scoped to twelve mounts and answer 403 everywhere else, including endpoints your own user can open in the browser. Billing changes, workspace settings, team management and the platform console are outside a key's reach entirely.
Only a hash of each key is stored, so a lost key is replaced rather than recovered. Revocation takes effect on the next request.
Recordings, and your own bucket
Recordings can be written to your own S3 or R2 bucket, which is worth doing: your region, your access policy, your lifecycle rules, and your data if you ever leave.
Buckets are private. Playback goes through a short-lived signed link generated on request — a permanent URL to a recording is a permanent leak waiting to be pasted into a chat thread.
What gets deleted, and when
- Turn-level transcript rows are pruned after 90 days. The denormalised full transcript on the call is not, so the record of what was said survives.
- Audit events are kept 180 days.
- Recordings follow the retention window you set; a workspace can be stricter than the platform default, and a sweep enforces it.
Pick a retention period explicitly. The common failure is never choosing and holding everything forever because deleting felt risky.
Webhook targets
Outbound webhooks must be publicly reachable over HTTPS. Addresses that resolve to private ranges are refused at delivery time, not only at registration — so a DNS change cannot quietly turn your endpoint into an internal one. Every delivery is signed with HMAC-SHA256 over the exact body.
The audit trail
Consequential actions are recorded with who did them. In practice this matters less for catching bad actors than for the ordinary question of who changed a prompt last Tuesday — which comes up constantly and is otherwise unanswerable.
What to tell the people you call
If calls are recorded, say so in the opening line. One clause, and it removes an entire category of problem later.
