Conversation history redaction

Automatically redact sensitive entities from stored conversation history.

Conversation history redaction detects and removes sensitive information from your conversation data before it is stored. When enabled, detected entities are replaced with placeholders in transcripts and analysis, and with a bleep sound in audio recordings.

This feature is available to enterprise clients only. Contact sales for access.

Overview

When a conversation ends, a post-processing step scans the transcript and audio for sensitive entities. Any detected entities are redacted before the conversation data is stored:

  • Transcripts and analysis: Entity instances are replaced with [ENTITY_NAME] (e.g. [NAME], [EMAIL_ADDRESS]).
  • Audio: Entity instances are replaced with a bleep sound.
  • Webhooks: Transcript and audio webhooks also contain redacted data.

Because post-processing runs after the conversation ends, there will be a short delay before the conversation appears in your history.

Configuration

The redaction configuration has two fields:

FieldTypeDescription
enabledbooleanWhether to redact sensitive entities from the conversation history.
entitieslist[string]List of entity types to redact. See supported entities for valid values.

How redaction works

Placeholder format

Each redacted entity is replaced with its type name in uppercase brackets. For example, if email_address is configured, an email like john@example.com in the transcript becomes [EMAIL_ADDRESS].

Parent and child entities

Entities follow a hierarchy using dot notation. You can configure redaction at any level:

  • Parent entity (e.g. name): Redacts all child entities under it. All matches use the parent placeholder — for example, both given names and family names are replaced with [NAME].
  • Child entity (e.g. name.name_given): Redacts only that specific type, using its own placeholder [NAME_GIVEN].

If you pass both a parent entity and one of its children, the child entry is ignored since the parent already covers it.

Example

Configuring ["name", "email_address", "financial_id.payment_card.payment_card_number"] will:

  • Replace all names (given, family, other) with [NAME]
  • Replace email addresses with [EMAIL_ADDRESS]
  • Replace payment card numbers with [PAYMENT_CARD_NUMBER]

Supported entities

Name

EntityDescription
nameAll name types (given, family, other).
name.name_givenNames given to an individual, usually at birth. Often first/middle names in Western cultures.
name.name_familyNames indicating a person’s family or community. Often a last name in Western cultures.
name.name_otherTitles, suffixes, nicknames, partial names, initials, and other name components.

Contact

EntityDescription
email_addressEmail addresses in any format, including spelled-out versions.
contact_numberFax, telephone, or mobile numbers in any domestic or international format.

Personal information

EntityDescription
dobDates explicitly identified as birth dates.
ageNumbers associated with an individual’s age.
religious_beliefTerms indicating religious affiliation or belief.
political_opinionTerms referring to political party affiliation, movement, or ideology.
sexual_orientationTerms indicating sexual orientation.
ethnicity_raceTerms indicating nationality, ethnicity, race, or cultural origin.
marital_statusTerms indicating marital status.
occupationJob titles or professions.
physical_attributeDistinctive bodily attributes including height, weight, and descriptions.
languageNames of natural languages.

Credentials

EntityDescription
usernameUsernames, login names, or handles.
passwordAccount passwords, PINs, passcodes, access keys, or security answers.

Web

EntityDescription
urlInternet addresses and URLs.

Organization

EntityDescription
organizationNames of organizations or departments within an organization.

Financial identifiers

EntityDescription
financial_idAll financial identifier types below.
financial_id.payment_cardAll payment card fields below.
financial_id.payment_card.payment_card_numberPayment card numbers / primary account numbers (PAN).
financial_id.payment_card.payment_card_expiration_datePayment card expiration dates.
financial_id.payment_card.payment_card_cvv3-4 digit card verification values.
financial_id.bank_accountAll bank account fields below.
financial_id.bank_account.bank_account_numberBank account numbers including IBANs.
financial_id.bank_account.bank_routing_numberBank routing numbers (ABA routing transit numbers).
financial_id.bank_account.swift_bic_codeSWIFT/BIC codes for international bank identification.
financial_id.financial_id_otherOther financial identifiers such as sort codes, BSB numbers, CLABE, cryptocurrency wallet addresses, etc.

Location

EntityDescription
locationAll location types below.
location.location_addressStreet addresses without city, state, or postal code components.
location.location_cityMunicipality names, including villages, towns, and cities.
location.location_postal_codePostal codes and zip codes.
location.location_coordinateGeographic positions using latitude, longitude, and/or elevation.
location.location_stateState, province, territory, or prefecture names.
location.location_countryCountry names.
location.location_otherLandmarks, neighborhoods, counties, boroughs, regions, and other locations.

Date

EntityDescription
dateSpecific calendar dates, including days of the week, months, or years.
date_intervalBroader time periods including date ranges, months, seasons, years, and decades.

Unique identifiers

EntityDescription
unique_idAll unique identifier types below.
unique_id.government_issued_idGovernment-issued identifiers such as SSNs, passport numbers, driver’s license numbers, and international equivalents.
unique_id.account_numberCustomer account or membership identification numbers.
unique_id.vehicle_idVehicle identification numbers (VINs), serial numbers, and license plate numbers.
unique_id.healthcare_numberAll healthcare number types below.
unique_id.healthcare_number.medical_record_numberUnique codes or IDs assigned to patients by healthcare providers.
unique_id.healthcare_number.health_plan_beneficiary_numberIDs assigned by health insurance companies or government health programs.
unique_id.device_idDevice identifiers such as MAC addresses, IMEI numbers, and serial numbers.
unique_id.unique_id_otherOther unique identifiers such as tax IDs and tracking numbers.

Medical

EntityDescription
medicalAll medical types below.
medical.medical_conditionDiseases, injuries, symptoms, diagnoses, disorders, and chronic conditions.
medical.medicationPrescriptions, vitamins, supplements, drugs, dosages, and pharmaceutical products.
medical.medical_procedureSurgeries, treatments, interventions, and therapies.
medical.medical_measurementVitals, lab results, blood type, test results, and measurements tied to a specific individual.
medical.medical_otherAllergies, medical devices, and other health-related information.

Entity detection operates on dynamic conversational data and does not have a 100% detection rate. Recall is prioritized over precision — the system is more likely to redact too much rather than too little — but enabling this feature alone does not guarantee compliance with any specific regulation.

Frequently asked questions

If an error occurs during entity detection, the system falls back to Zero Retention Mode behavior, where no conversation data is stored.

No. Redaction applies to stored conversation history visible to you. ElevenLabs may still have access to conversation data through internal logs. To prevent this, enable Zero Retention Mode.

When redaction is enabled, a post-processing step runs after each conversation to detect and redact entities. This introduces a short delay before the conversation appears in your history.

Yes. This feature is in early stages, and more flexible configuration options will be supported in the future.