VerticalAI docs

Privacy

Data and privacy controls per agent, from call recording and spoken consent to PII redaction, retention, and telemetry.

The Privacy section of the agent editor decides what a call leaves behind: whether the audio is recorded, what the agent says about recording and being an AI, what gets redacted from stored transcripts, how long that data is kept, and how much call content flows to third-party telemetry.

Every control here is a per-agent override of a workspace default. Leave a control on "Inherit workspace default" and the agent follows whatever the workspace is set to. Pin it and you fix it for this agent only. The two are kept separate on purpose: set a sensible default once for the workspace, then tighten or relax it on the one agent that needs it. Workspace defaults live in Workspace and members.

You will find this section at Agent editor, Privacy. Like every editor section, it is editable on a draft and locked once the version is published, so make privacy changes before you publish (see Agents for the draft-and-publish flow).

What "inherit" means

Each control that can inherit reads back as one of three states:

  • Inherit workspace default stores no per-agent value. The agent uses the workspace setting, and if you later change the workspace, this agent moves with it.
  • On or a pinned value fixes the setting for this agent, regardless of the workspace.
  • Off is also a deliberate pin. An explicit "off" wins even when the workspace default is on.

For the toggles (call recording and the two disclosures) the inherit state is stored as an empty value on the agent. The moment you flip a toggle on or off, you have pinned it.

Call recording

Call recording controls whether the platform stores the call audio.

SettingEffect
Inherit workspace defaultRecords only if the workspace default is on
OnRecords this agent's calls
OffNever records this agent's calls

The workspace default for recording is on, which is the one privacy default that starts switched on rather than off. Recording is also gated by a platform-level capability flag above the workspace setting, so a call records only when that flag is on and recording resolves to on for the agent.

When you record audio, you should tell the caller. That is what the recording disclosure below is for. Recordings and transcripts both appear on the Transcripts and analytics page once calls come in.

The agent can speak two short consent lines at the very start of a call, before its normal greeting. They ride in front of the greeting as the first thing the caller hears (see the opener in Voice and fillers), and they are spoken in the agent's own voice. You can audition either line with the Preview button, which plays it in the agent's Cartesia voice.

Recording disclosure

The recording disclosure tells the caller the call is being recorded. This is the line that matters legally: in two-party-consent jurisdictions (Western Australia, for example) recording a private conversation needs the caller's consent. Turn this on whenever you record call audio.

Pick one of the preset lines or write your own. The presets are plain, one sentence each, for example:

  • "This call is being recorded for quality and coaching purposes."
  • "Just so you know, this call may be recorded for training and quality."
  • "This call is being recorded."

When the disclosure resolves to on, it is spoken first, ahead of the AI disclosure and the greeting.

AI disclosure

The AI disclosure tells the caller they are speaking with an AI assistant. This is best-practice rather than a legal requirement in Australia, and it is independent of recording. It is spoken after the recording disclosure, before the greeting. Presets include lines like "You're speaking with an AI assistant."

Why an enabled-but-blank disclosure is blocked

A switched-on disclosure with no line blocks publishing

If you turn a disclosure on but leave its line empty, the agent would announce nothing: a silent consent failure. The editor rejects the save, and if the bad state somehow reaches publish, the readiness validator blocks it with an error. Add the line the agent should speak, or switch the disclosure back off.

This is enforced in more than one place so no path around the editor can slip a broken disclosure through:

  • At save time, the settings API rejects a switched-on disclosure with a blank line, whether the change comes from the editor, the API, or an automated tool.
  • At publish time, the readiness validator raises a blocking error (recording-disclosure-enabled-blank / ai-disclosure-enabled-blank) so you cannot ship a version that discloses nothing. See the publish gate in Agents.
  • At call time, the runtime never speaks an empty clause. If recording is on but the recording disclosure is on with a blank line, the runtime substitutes a neutral default recording line rather than recording in silence. An explicit "off" is honoured as a deliberate choice and speaks nothing.

The validator also flags two softer, non-blocking risks you can acknowledge: recording is on but the disclosure is off, and the disclosure is on but the agent does not store audio (the spoken claim would be misleading).

PII redaction

The Data storage control decides how much of each call is kept after the PII redactor runs. Redaction happens when transcripts are written to storage. It never touches the live conversation the model sees during the call, so it cannot break the agent mid-call.

LevelWhat is kept
EverythingTranscripts stored verbatim, no redaction
Everything except PIISelected PII categories redacted before storage
Basic attributes onlyTranscript dropped entirely, only metadata kept

The default is Everything. Even on "Everything", credit-card numbers and CVV/CVC codes are always stripped: that masking is a payment-card compliance baseline, not a setting you can turn off.

PII categories

When you choose Everything except PII, a category list appears. Tick the categories to redact from stored transcripts:

CategoryWhat it matches
Person nameCaller and other personal names
AddressStreet addresses
EmailEmail addresses
Phone numberAustralian and international numbers
SSN / TFNUS Social Security and Australian Tax File Numbers (checksum-validated)
Credit cardCard numbers (Luhn-checked)
MedicareAustralian Medicare numbers (checksum-validated)
Date of birthDates, masked broadly when this category is on

Most categories are matched by pattern as the transcript is written, with format checksums where one exists (cards, TFN, Medicare) so ordinary order numbers are not masked by accident. Date of birth is matched broadly: because a date in free speech cannot be told apart from a birth date without context, turning this on masks dates conservatively.

Two categories, Person name and Address, cannot be caught reliably by pattern. They are handled by a post-call pass that reads the whole conversation once the call ends, so there is a short window between storage and that sweep. Card and CVV masking, by contrast, always happens on write.

Data retention

Retention sets how long this agent's transcripts and recordings are kept before automatic deletion.

SettingEffect
Inherit workspace defaultFollows the workspace retention setting
A fixed periodDeletes data older than that period (1 day to 2 years)
Keep foreverNever auto-deletes

The default is to inherit the workspace default. Use a shorter period on an agent that handles sensitive calls, or "Keep forever" on one you need a long record for. Retention applies to both transcripts and recordings on the Transcripts and analytics page.

Telemetry

Telemetry controls how much call content flows to the third-party observability tools the platform uses (Langfuse, Axiom, PostHog, Sentry). It is separate from Data storage above: data storage governs what the platform keeps, telemetry governs what leaves to those services.

LevelWhat is sent
Inherit workspace defaultFollows the workspace telemetry level
Off (metadata only)No conversation content, metadata only
Redacted contentContent sent after the PII redactor runs
Full contentVerbatim content

The workspace default is Off (metadata only). The inherit row names the level it resolves to, so you can see what an agent on "inherit" actually sends without leaving the page.

How it fits together

  • Workspace defaults set the baseline for every agent. Change them in Workspace and members.
  • Per-agent overrides here pin or relax any one control for a single agent. Leave a control on inherit and it tracks the workspace.
  • Publishing runs the readiness validator, which blocks an enabled-but-blank disclosure and flags recording-versus-disclosure mismatches. See Agents.
  • The opener is where the spoken disclosures land at the start of a call, ahead of the greeting. See Voice and fillers.
  • The results (recordings, transcripts, redaction, retention) show up on Transcripts and analytics.

On this page