Dograh

Where Voice Agent Call Data Goes and How Long It Stays

Where Voice Agent Call Data Goes and How Long It Stays
TechnicalNovember 10, 2026·7 min read

Where Voice Agent Call Data Goes and How Long It Stays

Pritesh Kumar
Pritesh Kumar·Co-founder, Dograh AI

Building Dograh, the open-source alternative to Vapi. OSS and Voice AI. Exit founder and YC alum.

One voice agent call leaves copies in several places: the call record, recordings, transcripts, traces, logs, model providers and the systems that receive webhooks. Each copy has its own clock. Self-hosted Dograh, the open-source AI voice agent platform you can also run on Dograh Cloud, keeps its copies on your servers until you delete them.

Key Takeaways

  • A retention setting covers one copy. Count the trace, provider and webhook copies too.
  • Download links in webhook payloads open the recording, so guard them like recordings.
  • Local open-weight models remove the model provider's copy of the call.

This post is part of our guide to compliant AI voice agents, which traces one call's data from the carrier all the way to storage. Below, we map every copy a call leaves in Dograh, who can open each, what the law asks and a retention policy you can run.

Every copy one call leaves behind

A finished call leaves copies in more places than the recording folder. The map below is for a self-hosted Dograh install, where every platform copy sits in a database and bucket you run, set up through the storage and logging settings.

CopyWhere it sitsHow long it staysWho can open it
Call record: call data, extracted values, QA results, costPostgreSQLUntil you delete itYour Dograh organization
Mixed recording plus separate caller and agent tracksMinIO or your S3 bucketUntil you delete itYour organization, and anyone with a download link
Transcript fileMinIO or your S3 bucketUntil you delete itYour organization, and anyone with a download link
Uploaded campaign contact listsMinIO or your S3 bucketUntil you delete itYour organization
Traces with prompts and transcriptionsThe Langfuse project you set upLangfuse's own retention rulesYour Langfuse users
Server log filesYour serversRotated, 7 days by defaultYour server admins
Speech cache (off by default)Redis24 hoursYour servers only
Audio and text sent to model providersEach providerEach provider's termsThe provider
Webhook payloadsYour CRM, helpdesk or warehouseYour own rules thereYour staff

Two rows surprise most teams. The recording is saved three times, once mixed and once per side, and recording upload can only be switched off for the whole server. Transcripts are saved either way. For the region of each copy, see our data residency checklist.

Who can open a stored call

Inside Dograh, people in your organization can open any call in the app. Outside it, the widest door is the download link. A Webhook node payload can carry recording_url and transcript_url, and those are public download links that open the file for whoever holds them. Treat every system that stores a payload as a place that holds the recording.

Storage is the next door. For a private bucket with links that expire, set up the S3 backend with your own bucket and keep it closed to the internet. Traces stay private unless someone switches on "Make traces publicly viewable", so leave that off.

Old recordings nobody deletes are what leaks. A security researcher found three unprotected databases linked to Sears Home Services holding 1,442,577 call recordings with transcripts, plus over two million chat transcript files, with names, addresses, phone numbers and appointment details. A recording you deleted on schedule cannot turn up in a list like that.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

Copies that leave your servers

Some copies sit with other companies, and their clocks are set by those companies. With your own keys, the audio and text of a call reach the speech-to-text, language and voice providers you chose. OpenAI's API data controls keep inputs and outputs for up to 30 days in abuse monitoring logs, with zero retention only by OpenAI's prior approval. Deepgram keeps request data for model improvement unless the request sets its opt-out flag, so check whether you have opted out with every provider you use.

Dograh orchestrates the call flow, tools and telephony, and the speech and language models are a separate layer you pick. Bringing your own key moves the contract, but the audio still reaches the provider. Open-weight models running on your own servers are the only way to leave no provider copy at all.

Tracing sends each call's prompts and transcriptions to the Langfuse project you configure. A self-hosted Langfuse keeps traces until a retention policy is set, and retention settings come with its Pro and Enterprise cloud plans or the self-hosted Enterprise Edition. Usage telemetry is on by default and carries IDs and call details, not audio or transcripts, until you set ENABLE_TELEMETRY=false. Who owns each copy on a hosted platform is a separate argument, made in our post on who owns call data on open-source and hosted voice AI.

What the law asks you to keep or delete

Most rules set a maximum, and a few set a minimum. The General Data Protection Regulation (GDPR) says personal data should be kept in a form that identifies people for no longer than its purpose needs. Our post on GDPR and voice AI covers erasure requests in detail.

California asks for a stated period. Under the California Consumer Privacy Act (CCPA), a business must tell consumers how long it plans to keep each category of personal information, or how it decides, and must not keep it longer than is reasonably necessary and proportionate for the purpose it disclosed. Call recordings, transcripts and extracted fields each need a line in that notice.

Some records must outlast the call. Under the Telephone Consumer Protection Act (TCPA), the FCC's do-not-call rules require a do-not-call request to be honoured for five years. Generally, that means the stop request a caller made on a recorded call should stay on your list long after the recording itself is deleted. Retention duties also vary by sector, such as health and financial records, so confirm your periods with counsel before you write them down.

A caller on a recorded call asks to stop. The recording is later deleted from the bucket and its backups, while the stop request stays on the do-not-call list, honoured for five years.
Under the Telephone Consumer Protection Act (TCPA), the FCC's do-not-call rules require a do-not-call request to be honoured for five years. Most rules set a maximum, and a few set a minimum.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

A retention policy you can run

A retention policy is a short table your team can follow. Write one line for each copy in the map:

  1. Call records and extracted values: kept for the period your notice states, then deleted from PostgreSQL.
  2. Recordings and transcripts: a shorter period where you can, then deleted from the bucket and its backups.
  3. Campaign contact lists: deleted once the campaign's reporting is done.
  4. Traces: a Langfuse retention policy, or tracing off in production.
  5. Do-not-call requests: kept for five years in your own list.
  6. Webhook copies: the same periods in every receiving system.

Self-hosted Dograh has no per-minute platform fee, but servers, model keys and phone minutes still cost money. Dograh Cloud charges a 1¢-a-minute platform fee. Self-hosting is what puts every platform copy in storage you run, so the policy above is yours to enforce from the first call.

Deletion happens in your own storage, on a schedule your team runs, because call records and recordings stay until your team removes them. When a caller opts out or a dispute starts, flag the record so the team deletes it, or holds it, by hand. The best stored value is one that was never captured, which is why our post on what a voice agent should never say out loud starts at the prompt.

Glossary

Storage limitation
The GDPR principle that personal data is kept in identifiable form only as long as its purpose needs. For a voice agent it applies to recordings, transcripts and extracted fields alike.
Public download link
A link in a Dograh webhook payload that opens a call's recording or transcript for whoever holds it. Any system that stores the payload holds access to the file.
Abuse monitoring retention
The period a model provider keeps API inputs and outputs to check for misuse. OpenAI keeps them for up to 30 days unless it approves zero retention.
Retention schedule
A table that sets how long each kind of record is kept and who deletes it. A voice agent needs one line per copy, including copies outside the platform.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.