Where anonymization happens
Conversation data enters Nebuly through the Interaction API. PII handling takes place before downstream analytics. At a high level, the processing pipeline is:- PII removal and anonymization
- Enrichment — including intent, topic, sentiment, implicit feedback, and keywords
- Clustering and analytics — higher-level patterns across interactions
Nebuly Anonymization Module
The Nebuly Anonymization Module (NAM) is a real-time processing component integrated into the Nebuly deployment. It combines two complementary detection mechanisms:- Pattern-based detection for structured identifiers that can be recognized deterministically.
- AI-based contextual detection for personal or confidential information that requires understanding the surrounding text.
Pattern-based detection
Nebuly uses regular expressions to identify structured forms of sensitive information and replace them with typed placeholders. Default and configurable rules can cover identifiers such as:- Email addresses
- Phone numbers
- Credit card numbers
- IBANs
- Medical license identifiers
- US ITINs
- US passport numbers
- US Social Security Numbers
- Other customer-specific structured identifiers
AI-based contextual detection
Pattern matching alone cannot reliably detect all sensitive information. Nebuly therefore also uses a custom-trained language model to identify contextual and unstructured information. By default, the model can detect categories including:- PERSON — names and surnames, including partial names, initials, misspellings, and names embedded in longer strings
- EMAIL_ADDRESS — including malformed or non-standard email formats
- IBAN_CODE
- CREDIT_CARD
- MEDICAL_LICENSE
- PHONE_NUMBER
- US_ITIN
- US_PASSPORT
- US_SSN
- LOCATION — including addresses, cities, regions, landmarks, and partial locations
- DATE — including standard, informal, and ambiguous date expressions
Custom sensitive entities
Different organizations have different definitions of what must be considered sensitive. Nebuly’s contextual detection is therefore configurable and extendable during setup. Customers can define additional entities by providing a clear definition and representative examples. Examples include:- IT_FISCAL_CODE — Italian Codice Fiscale
- IT_COMPANY_NAME — company names and legal entities
- IT_INVOICE_CODE — invoice and SDI identifiers
- PAYROLL — salaries, bonuses, compensation, payroll IDs, and payslip information
- FINANCIAL_CONFIDENTIAL — confidential revenue, margin, or internal financial information
- SOURCE_CODE_SNIPPETS — proprietary source code, configuration, or credentials
- Competitor names
- Geography-specific identifiers
- Other customer-defined confidential information
Customer-side anonymization
Organizations can anonymize or redact data before it reaches Nebuly. This creates an additional customer-controlled layer in front of Nebuly’s own anonymization. It is particularly useful for organizations that already operate an internal sanitization pipeline or have policies requiring confidential information to be removed at the source. In this setup:- The customer sanitizes the original conversation data.
- The sanitized interaction is sent to Nebuly.
- Nebuly’s configured anonymization controls provide an additional layer of protection.
Per-interaction privacy controls
The Interaction API provides privacy controls that can be applied to individual interactions.anonymize
Use anonymize = true to enable PII anonymization for an interaction.
Nebuly detects sensitive information and renders cleaned, non-identifying content for downstream use in the platform.
hide_content
Use hide_content = true when the full interaction content should not be visible in the Nebuly UI.
Nebuly can still compute analytics on the interaction, while its content is hidden from users of the platform.
These controls address different requirements and can be combined:
anonymizeremoves or masks sensitive information.hide_contentcontrols whether interaction content is visible.
User pseudonymization
User identifiers do not need to be sent to Nebuly in their original form. Customers can hash user IDs before sending them to Nebuly. Nebuly can then hash those identifiers again, creating a double-hashing scheme. This provides a stable identifier for aggregate analytics while reducing the ability to recover the original user identity, including for someone who has access to the customer-side hashing keys.Access to conversation content
Anonymization is complemented by access controls governing who can view conversation data. Nebuly supports:- Role-Based Access Control (RBAC)
- Single Sign-On (SSO) with Microsoft Entra ID, Okta, and Google
- Project-level permissions
- Identity-provider group scoping
Self-hosted deployments
For organizations with strict data-residency or security requirements, Nebuly can be deployed entirely inside the customer’s infrastructure. Supported environments include:- Microsoft Azure
- AWS
- GCP
- On-premises Kubernetes deployments
Data retention and deletion
Nebuly follows a data-minimization approach: customers choose what information to send through the Interaction API, typically including:- User input
- AI output
- Conversation ID
- Optional metadata and tags
- Optional pseudonymized user identifiers