Skip to content
Agentic Control Plane

PII Detection and Redaction

AI agents move data between systems. When a user asks Claude to “find the customer record for John Smith,” the response might contain social security numbers, credit card numbers, phone numbers, or email addresses. Without content scanning, this data flows freely between the LLM and your backend tools.

ACP scans every tool call — both inputs and outputs — for PII patterns. Some patterns (SSNs, credit cards) are enforced by immutable platform rules that cannot be disabled. Others are configurable per-tenant.


Two layers of protection

Layer 1: Immutable platform rules

These rules run on every tool call and cannot be disabled, overridden, or configured away — even by workspace admins:

Pattern Action Example
Social Security Numbers Block 123-45-6789, 123 45 6789
Credit card numbers Block 4111-1111-1111-1111, Luhn-validated
SSRF attempts Block localhost, 127.0.0.1, 169.254.169.254, private IP ranges

These are evaluated before any tenant configuration, delegation rules, or scope checks. They are the first layer in ACP’s governance pipeline.

Why immutable? Because a compromised tenant admin shouldn’t be able to disable PII protection. These are platform-level safety guarantees.

Layer 2: Configurable content policies

In Policies → Content Scanning, configure additional patterns:

Pattern Options Default
Email addresses Detect / Redact / Block Detect
Phone numbers Detect / Redact / Block Detect
IBAN Detect / Redact / Block Detect
IP addresses Detect / Redact / Block Detect
Custom regex patterns Detect / Redact / Block —

Redact and Block are Pro-gated policies you enable; Free tier is detection only (Immutable rules for SSN and credit card block regardless of tier — see Layer 1 above).

Detect — flags in the audit log but doesn’t modify the data Redact — replaces the matched text with [REDACTED] before passing to the tool or returning to the user Block — rejects the entire tool call with a content policy violation


How it works in the governance pipeline

Content scanning runs as the final step in ACP’s 7-layer governance pipeline:

1. Immutable rules    ← SSN, CC, SSRF (cannot be disabled)
2. Delegation check   ← Agent-to-agent trust chain
3. Scope enforcement  ← Does the user have the required scope?
4. ABAC rules         ← Attribute-based access control
5. Rate limits        ← Per-user rate limiting
6. Plan limits        ← Subscription tier enforcement
7. Content scanning   ← Configurable PII detection

Immutable rules (layer 1) catch the most dangerous patterns early. Configurable content scanning (layer 7) catches everything else on the way out.


Configuring content policies

In the dashboard

Go to Policies → Content Scanning. Toggle patterns on/off and set the action (detect, redact, block) for each.

Via the API

curl -X PUT \
  -H "Authorization: Bearer gsk_your-api-key" \
  -H "Content-Type: application/json" \
  "https://api.agenticcontrolplane.com/your-slug/api/v1/policies/content" \
  -d '{
    "emailAddresses": "redact",
    "phoneNumbers": "detect",
    "customPatterns": [
      {
        "name": "internal-project-codes",
        "pattern": "PRJ-[0-9]{6}",
        "action": "redact"
      }
    ]
  }'

Custom patterns

Add regex patterns for organization-specific sensitive data:

Use case Pattern Action
Employee IDs EMP-[0-9]{5} Redact
Internal project codes PRJ-[A-Z]{2}-[0-9]{4} Detect
API keys in outputs sk-[a-zA-Z0-9]{32,} Block

Custom patterns are available on the paid bands and Enterprise.


What gets scanned

ACP scans both inputs (what the user sends to the tool) and outputs (what the tool returns):

Input scanning catches PII in user queries:

  • “Look up the customer with SSN 123-45-6789” → blocked by immutable rules
  • “Find records for john.smith@acme.com” → detected or redacted per policy

Output scanning catches PII in tool responses:

  • Salesforce returns a contact record with a phone number → detected or redacted per policy
  • GitHub API response contains an API key in a config file → blocked per custom pattern

Audit log integration

Every content scan produces a record in the audit log:

{
  "tool": "salesforce.query",
  "contentScan": {
    "piiDetected": true,
    "patterns": ["email", "phone"],
    "action": "redact"
  }
}

Query the audit log for contentScan.piiDetected entries to build your own monitoring or alerting.


Plan limits

Feature Free Paid bands (Team / Scale) Enterprise
Immutable rules (SSN, CC, SSRF) Always on Always on Always on
Built-in patterns (email, phone) Detect only Detect, Redact, Block Detect, Redact, Block
Custom regex patterns — 5 patterns 50 patterns

Compliance mapping

Regulation Requirement ACP Coverage
SOC 2 CC7.2 Monitor for anomalies Content scanning with risk scores
GDPR Art. 32 Appropriate technical measures PII detection and redaction
HIPAA § 164.312 Access controls for ePHI Custom regex block patterns for identifiers your workflows use
PCI DSS Req. 3 Protect stored cardholder data Immutable credit card detection
CCPA § 1798.150 Reasonable security measures Automated PII scanning on all data flows

Back to guides · SOC 2 audit trails → · Set up Auth0 →

Run agents? ACP lets you see, control, and price every tool call they make — allow/ask/deny policy, per-session cost, and a full audit log for Claude Code, Cursor, Codex, and OpenClaw, in one command:

macOS · Linux · WSL
curl -sf https://agenticcontrolplane.com/install.sh | bash
Windows · PowerShell
irm https://agenticcontrolplane.com/install.ps1 | iex

Getting started →  ·  see your first governed call →  ·  free up to 5 agents