Unnecessary egress
Customer identifiers leave your perimeter every time an AI feature runs over a ticket.
Solution
Mask names, emails and account details before the LLM sees them.
Privian sits between your support tooling and the model provider. Customer identifiers are replaced with deterministic placeholders at the gateway and restored on the way back, so agents and end users see normal text — providers never do.
Problem
Modern support workflows pipe ticket context — names, emails, phone numbers, billing references, sometimes whole conversation transcripts — directly into an LLM prompt. The model returns a summary or a draft reply, and the workflow moves on. The customer data, however, has now been forwarded to a third-party provider that has no operational reason to ever see it.
Why this matters
Customer identifiers leave your perimeter every time an AI feature runs over a ticket.
The more provider-side context you accumulate, the harder it is to switch models.
Most support tools don't log what specifically was sent to which model on which ticket.
API keys and tokens pasted into tickets get forwarded along with the rest of the text.
How Privian fits
Customer identifiers are replaced with placeholders before any provider call.
Agents and end users see real names; the provider never did.
Every support AI surface — summaries, drafts, copilots — flows through the same hop.
Switch between OpenAI, Anthropic and others without changing your data-handling posture.
Architecture
Support app → Privian gateway → LLM provider
│ mask
│
(provider sees only placeholders)
│
▼
rehydrate ← provider response
│
▼
Support UI (agent / customer)Your support tool keeps its existing HTTP client. The only change is the base URL and the API key. The provider call still runs on your BYOK credentials, so model usage shows up on your account.
Example flow
curl https://api.privian.io/v1/gateway \
-H "Authorization: Bearer $PRIVIAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.5",
"prompt": "Draft a reply to Michael Olsen at michael@example.com about ticket #4821.",
"stream": false
}'Request shape is intentionally small: model, prompt, and an optional stream flag. See the API reference for the full contract.
Use cases
Summarize long threads without forwarding raw customer details.
Generate suggested responses with PII masked end-to-end.
Give agents an in-app assistant that never leaks customer context to the model.
Hand off chat transcripts to an LLM for triage with identifiers masked.
Implementation
Step 1
Add an OpenAI or Anthropic key in the Privian dashboard. Keys are encrypted at rest.
Step 2
Generate a Privian API key (test or live) scoped to your environment.
Step 3
Set the base URL to https://api.privian.io and send prompt + model.
Step 4
Send a ticket containing a known identifier and confirm it is masked in transit.
Step 5
Migrate summaries, drafts and copilots one at a time. No prompt rewriting required.
Step 6
Use the dashboard to see request volume, model and entity counts — never raw content.
Transparency
FAQ
Learn more