Each agent decides how much of its calls Tried keeps. The controls are under Security & Fallback Settings in the agent's settings panel.
Data Storage Setting#
| Option | data_storage_setting |
What is kept |
|---|---|---|
| Everything (default) | everything |
Transcripts, recordings, variables, analysis and logs. |
| Everything except PII | everything_except_pii |
Everything, with personal information redacted from transcripts, tool calls, variables and analysis, and beeped out of recordings. |
| Basic attributes only | basic_attributes_only |
Call metadata such as duration, cost, status and disconnection reason. Transcripts, variables, recordings, the call summary and custom analysis data are deleted. |
The setting is applied after the call ends, once post-call analysis has run and the call_ended and call_analyzed webhooks have been sent. Your webhook receives the full call data once; what Tried stores afterwards follows the setting. Keep this in mind for the systems your webhook writes to.
A single call can use a different setting: pass data_storage_setting to Update live call during the call, or to PATCH /v2/update-call/{call_id} after it.
PII to remove#
With Everything except PII, PII to remove picks the categories to redact (pii_config.categories, default all):
| Label | Category |
|---|---|
| Names | person_name |
| Addresses | address |
| Emails | email |
| Phone numbers | phone_number |
| Social security numbers | ssn |
| Passport numbers | passport |
| Driver licences | driver_license |
| Card numbers | credit_card |
| Bank accounts | bank_account |
| Passwords | password |
| PINs | pin |
| Medical IDs | medical_id |
| Dates of birth | date_of_birth |
Redacted text is replaced with a marker such as [redacted:credit_card]. In the recording, a 1 kHz tone covers each redacted word, using the word timings from the transcript. Word timings are removed from redacted utterances so they cannot reveal the original text.
How PII is found#
- Pattern rules: email formats, card numbers that pass the Luhn check, IBANs, US social security numbers and street addresses.
- Context rules: values after words like "account", "BSB", "PIN", "passport", "licence", "Medicare", "born" or "password".
- Phone numbers are parsed with libphonenumber, defaulting to Australian formats.
- Names are matched after phrases like "my name is" or "this is".
- With an LLM key configured, a second LLM pass finds names and addresses the rules miss.
Redaction is automatic and can miss unusual formats. Do not rely on it as your only control for card data. Avoid taking card numbers by voice where possible.
Show PII#
When a call is redacted, Tried keeps an encrypted copy of the original data for 30 days (the platform operator can change this with TRIED_PII_REVEAL_RETENTION_DAYS). Workspace admins can switch on Show PII in Call History or on a call to see the original. Each reveal is written to the audit log. The copy is deleted when it expires.
Remove sensitive data from one call#
On an ended call, Remove sensitive data redacts every PII category from that call, whatever the agent's setting. The API is POST /v2/remove-call-sensitive-data/{call_id}.
Signed recording URLs#
Signed recording URLs (opt_in_signed_url) makes recording and log links expire instead of staying public. Link expiry (signed_url_expiration_ms) offers 1 hour, 6 hours, 24 hours (default), 3 days or 7 days. The API accepts any value from 60,000 ms (1 minute) to 604,800,000 ms (7 days).
Data retention#
Data retention (data_storage_retention_days) deletes calls and their recordings once they are older than the period: Keep forever (default), 7 days, 30 days, 90 days, 1 year or 2 years. The API accepts any whole number of days from 1 to 730. The purge runs daily.
Delete everything for one person#
To answer a data deletion request, POST /privacy/delete-phone-number with { "phone_number": "+61412555019" } deletes every call, recording, contact and SMS stored for that number in your workspace.
Fields#
| Field | Type | Default |
|---|---|---|
data_storage_setting |
everything, everything_except_pii, basic_attributes_only |
everything |
pii_config.categories |
array of categories | all 13 |
opt_in_signed_url |
boolean | not set (off) |
signed_url_expiration_ms |
integer 60000 to 604800000 | 86400000 when on |
data_storage_retention_days |
integer 1 to 730 or null | null (keep forever) |
curl -X PATCH https://api.tried.com.au/update-agent/agent_3f1c9a7b2d4e6f8091a2b3c4 \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data_storage_setting": "everything_except_pii",
"pii_config": { "mode": "post_call", "categories": ["credit_card", "bank_account", "date_of_birth"] },
"opt_in_signed_url": true,
"signed_url_expiration_ms": 21600000,
"data_storage_retention_days": 90
}'For workspace-wide security controls such as SSO, IP allow lists and audit logs, see Account.