If you simply strip or [REDACTED] customer emails, phone numbers, and SSNs before calling an AI node, your downstream n8n nodes break because they lose the recipient address and customer ID.
ZeroLeak Vault solves this with Deterministic Reversible Tokenization: it swaps sensitive fields with context-preserving cryptographic tokens (<EMAIL_9F4A2C>) before the prompt leaves your server, lets the LLM reason over them accurately, and automatically re-hydrates the real values inside your private n8n execution before updating HubSpot, Stripe, Postgres, or Gmail.
john@acme.com maps to the exact same token across multi-step agent tool calls.
Secured by Paddle Merchant-of-Record • Instant Digital Delivery • 14-Day Guarantee
Select an industry scenario or type your own customer payload below. Watch how the workflow strips every sensitive entity before the LLM sees it—and restores the exact values for your downstream CRM/Email node.
Most developers try to solve LLM privacy by replacing emails and names with [REDACTED] before calling OpenAI. Here is why that fails in production workflows:
When two different people or emails in a support thread are both replaced with [EMAIL], the LLM cannot tell who sent what. Worse, when the LLM outputs a structured JSON tool call to send an email or update Stripe, the recipient field literally says "[EMAIL]" — crashing your n8n execution.
// Downstream Gmail Node Error in n8n:
{
"to": "[REDACTED_EMAIL]",
"error": "Invalid recipient address: [REDACTED_EMAIL]"
}
Each unique PII value is hashed with an ephemeral HMAC key into a unique typed token (<EMAIL_9F4A2C>). The LLM reasons over multiple actors seamlessly. The moment the LLM response returns to your n8n server, Node 4 swaps <EMAIL_9F4A2C> back to sarah@outlook.com.
// Downstream Gmail Node Succeeds Automatically:
{
"to": "sarah.jenkins@outlook.com",
"status": "200 OK — Delivered via Private VPC Hydration"
}
No external SaaS proxy subscriptions. No sending your data to a third-party "privacy API". Everything runs natively inside your own n8n instance.
Accepts incoming payloads from Zendesk, Gmail, Typeform, Slack, or Postgres containing raw customer PII.
Scans text & nested JSON keys across 14 PII patterns. Generates deterministic tokens and stores the encrypted lookup map in execution memory.
Sends only tokenized text to OpenAI, Anthropic, or Gemini. System prompt enforces strict symbolic token preservation in tool calls and JSON outputs.
Restores real customer values inside your server memory and writes a cryptographic zero-leak attestation row to your audit log.
// Node 2: Deterministic HMAC-SHA256 + AES-256-GCM Reversible PII Tokenizer for n8n
const crypto = require('crypto');
const SECRET = $env.PII_VAULT_SECRET; // 32-byte key stored in n8n env
const ENTITY_PATTERNS = {
EMAIL: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,
PHONE: /(\+?\d{1,3}[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}/g,
SSN: /\b\d{3}-\d{2}-\d{4}\b/g,
CARD: /\b(?:\d[ -]*?){13,16}\b/g,
APIKEY:/\b(sk-[a-zA-Z0-9]{20,}|ghp_[a-zA-Z0-9]{36})\b/g
};
function maskPayload(rawString, vaultMap) {
let masked = rawString;
for (const [type, regex] of Object.entries(ENTITY_PATTERNS)) {
masked = masked.replace(regex, (match) => {
const digest = crypto.createHmac('sha256', SECRET).update(match).digest('hex').slice(0, 6).toUpperCase();
const token = `<${type}_${digest}>`;
vaultMap[token] = match;
return token;
});
}
return masked;
}
// Full recursive JSON traversal + Redis TTL persistence + Presidio NLP hook included in download.
-- Included SQL Schema for HIPAA / GDPR / SOC2 Compliance Audits
CREATE TABLE IF NOT EXISTS llm_privacy_audit_log (
execution_id UUID PRIMARY KEY,
workflow_name VARCHAR(128) NOT NULL,
llm_provider VARCHAR(64) NOT NULL,
entities_masked_count INT NOT NULL,
entity_types JSONB NOT NULL, -- e.g. {"EMAIL": 2, "SSN": 1, "CARD": 1}
sanitized_payload_sha256 CHAR(64) NOT NULL,
zero_raw_pii_verified BOOLEAN DEFAULT TRUE,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Deploy enterprise-grade LLM data protection in 10 minutes instead of spending a week debugging regex edge cases and nested JSON hydration.
Yes. The core tokenizer and detokenizer run inside standard n8n Code nodes using native Node.js crypto with zero external npm dependencies required. For high-scale clusters, an optional FastAPI + Redis container is also included.
The package includes a hardened system prompt instruction block plus a fuzzy-matching fallback parser in the Detokenizer node that catches case shifts or bracket spacing variations automatically.
Yes! Your $99 license includes unlimited commercial deployment rights across your own internal workflows and paid client installations.