Skip to content

How to Use ChatGPT and Claude Without Exposing Customer Data

OrchStack blog cover

The alert came from a DLP rule nobody remembered configuring. A support rep had pasted an entire customer contract, billing address included, into a personal ChatGPT tab to draft a response. The prompt was already gone, the model had already processed it, and the only record was a browser-history entry on a company laptop. No audit trail, no contractual coverage, no way to answer the customer's inevitable question: "Where did my data go?"

That moment sits at the center of a problem most growing companies are actively ignoring. Teams adopt AI fast. Governance follows months later, if it follows at all.

By the end of this piece you'll understand the control architecture that separates safe AI usage from a data incident waiting to happen, and you'll be able to decide which layers your organization needs first.

The "no training" trap

Most teams start their AI data conversation in the wrong place. They ask: "Does the provider train on our data?" They get a reassuring answer, and they stop thinking.

OpenAI states that business and API data is not used for model training by default. Anthropic describes commercial customers as data controllers and Anthropic as a processor under its commercial terms, with training excluded unless the customer opts into a specific program. Those are real, meaningful commitments.

They are also about 15% of the problem.

Training exclusion doesn't prevent accidental disclosure in a prompt. It doesn't stop an agent from reading CRM records it shouldn't see. It doesn't cover what happens when a compromised credential gives someone access to your workspace's conversation history. It doesn't address an agent sending an email, issuing a refund, or changing a payment record without approval.

The practitioner reality, drawn from documented failure patterns, looks like this: teams treat "not used for training" as "no risk," and then build integrations where a single OAuth token exposes an entire CRM instance to a model that can't distinguish between what a user should see and what it can technically retrieve.

That's the gap. And closing it requires thinking about AI not as a chatbot but as a governed processing component inside your operations.

The layers that actually matter

Four concepts underpin safe AI usage with customer data. They're ordered by dependency: each one rests on the one before it.

Identity separation

Every interaction with an AI model involves at least three identities: the human user, the AI agent, and the customer whose data is being processed. Most implementations collapse these. A shared API key means you can't tell which user triggered a query. A single service account means every agent has the same access. A prompt containing customer data without attribution means you can't reconstruct who saw what.

The mechanism is straightforward: SSO, SCIM provisioning, dedicated service accounts per automated workflow, and session-level attribution. OpenAI describes SAML SSO and centralized workspace controls for enterprise customers. Anthropic's enterprise documentation lists SSO, SCIM, just-in-time provisioning, role-based access control, and audit logs.

Where practice diverges from documentation: getting SSO configured is usually the easy part. The part that takes longer than expected is mapping your existing role hierarchy into AI-specific permissions. Your CRM roles don't automatically translate into "what this person's agent should be able to retrieve." That mapping is manual, it's tedious, and most teams underestimate it by weeks.

The decision you face: do you invest in per-user, per-agent identity separation now, or do you accept the risk of shared credentials until an incident forces the issue?

Data minimization before the prompt

A model doesn't need a full customer record to classify a support ticket. It doesn't need a Social Security number to summarize an application. It doesn't need a billing address to draft a reply.

Data minimization means sending only the fields required for the task. Tokenization replaces real identifiers with synthetic ones so the model can reason over records without seeing names or account numbers. DLP policies block prompts containing payment-card patterns or unapproved contract text. PII and PHI detection runs before any prompt leaves your network.

This is where the published version and the practitioner version sharply diverge. Redaction sounds clean in a whitepaper. In practice, sensitive data hides in free-text fields, image attachments, filenames, and metadata. Over-redaction strips context the model needs to produce a useful answer. Under-redaction leaves quasi-identifiers that can be re-linked. One documented failure pattern: redaction catches a customer name in the body of a ticket but misses the same name embedded in a forwarded email header three layers deep.

The decision: how much utility are you willing to trade for how much safety? There's no universal answer. It depends on your data types, your regulatory exposure, and how much you can invest in pipeline engineering.

Authorization outside the model

This is the concept most teams get wrong, and it's the one with the highest blast radius.

A language model should never decide whether a user is allowed to access a record. The model proposes a tool call. A separate authorization service, running RBAC or ABAC policies, decides whether that call is permitted. The check considers the requesting user, the customer tenant, record ownership, data sensitivity, and action risk.

In practice, teams wire an agent into a CRM with a global administrator token because it's faster. The agent can now read every contact, every deal, every note. A prompt injection hidden in a support ticket (treated as trusted input because it came from the ticketing system) instructs the agent to retrieve records from a different customer's account. The retrieval service, running with a privileged service account, happily complies because it has no user-level authorization check.

The documented fix is to enforce authorization twice: once before retrieval and again before rendering the result to the user. OAuth scopes should be narrow. Tool allowlists should permit specific typed functions like getticket or draftreply, not arbitrary HTTP requests or raw SQL.

A hard-learned pattern from practitioners: the first week of implementing least-privilege access for agents typically surfaces dozens of implicit permissions nobody realized existed. An agent that "just looks up tickets" turns out to also have read access to internal notes, salary data attached to employee records, and archived contracts. Scoping those permissions down is the real work.

The approval gate and the audit trail

Human-in-the-loop gates are mandatory before an agent sends outbound customer messages, processes refunds above a threshold, changes payment details, or touches anything with legal or financial consequences.

But here's where governance gets uncomfortable: if the approval step is cosmetic, if a manager clicks "approve" on every AI suggestion without reviewing it, the control provides almost no protection. One common failure pattern is that approval fatigue sets in within the first two weeks of deployment. Volume overwhelms the reviewer, and the gate becomes a rubber stamp.

The audit trail captures user identity, agent identity, retrieved sources, policy decisions, model version, prompt and output hashes, tool calls, approval identity, and final outcome. OpenAI states that Enterprise administrators can access audit information through the Compliance API. Anthropic lists custom retention and customer-managed encryption keys among its enterprise controls.

Logs themselves create a second risk. Prompt and tool-call logs may contain the same sensitive data you're trying to protect. Policy-as-code that rejects prompts containing restricted fields needs to also govern what gets written to the log.

The ghost errors nobody warns you about

Problem

The weird fix

Where it surfaces

Model cites a customer record the user can't open

Retrieval service runs with a privileged service account, no user-level check

Enforce authorization before retrieval AND before rendering the result

Agent sends an email despite an approval requirement

Approval lives only in prompt text, not in workflow state

Make approval a separate signed workflow state the tool API verifies independently

Redaction misses sensitive data in attachments

Detection runs on structured fields only, not embedded images or forwarded headers

Extend PII/PHI scanning to attachments, metadata, and nested email content

Self-hosted model feels safer but logs are unprotected

Local inference reduces provider exposure but shifts logging and access control to you

Apply the same DLP, RBAC, and immutable audit trail requirements to self-hosted as to cloud

Where practitioners disagree

There's a live split on whether self-hosted models are meaningfully safer than managed API offerings for customer data. One camp argues that keeping inference on your own servers eliminates provider-side retention, subprocessor risk, and residency concerns entirely. The other camp, and this includes engineers who've actually run self-hosted inference in production, points out that self-hosting shifts every security responsibility (patching, endpoint hardening, access control, log integrity, model governance) onto a team that may not be staffed for it. I land with the second group: self-hosting trades one set of risks for another, and most companies at the 20-to-500 scale don't have the operational depth to take that trade well. But this isn't settled, and your answer depends on your team's capabilities.

Getting governance into the operating layer

Most of the controls described above (identity separation, data minimization, authorization, approval gates, audit trails) are things you'd have to wire together yourself across multiple systems. That's where the real friction lives. Not in understanding what to do, but in building the connective tissue between your CRM, helpdesk, billing system, and AI provider.

When the wiring is the problem If you're spending more time building governance plumbing than building AI workflows, OrchStack's governed operating layer handles identity, permissions, approval gates, and audit logging as a self-hosted system where every agent acts on behalf of a named person and can never exceed that person's permissions.

What about contractual coverage?

Governance isn't just technical. DPAs, BAAs, subprocessor lists, retention schedules, data-residency commitments: these need review before customer data enters any AI pipeline. OpenAI states that DPAs are available for ChatGPT Business, Enterprise, and API customers. Anthropic describes BAA availability for a HIPAA-ready Claude Enterprise configuration. But "available" means you still have to execute them, review the subprocessor list against your own vendor policy, and confirm that retention and deletion terms match your commitments to your customers.

Does using the API instead of the chat interface solve the problem?

The API gives you more control over data flow, logging, and integration architecture, and both OpenAI and Anthropic exclude API data from training by default. But the API doesn't enforce authorization, redaction, or approval on its own. Those controls live in your application layer. The API is a better foundation, not a complete solution.

Is this worth the effort at 50 people?

Yes, and arguably more so than at 500. Smaller companies move faster, which means an uncontrolled AI integration can touch production customer data within days of someone's first experiment. The cost of retrofitting governance after an incident (customer notification, contract review, regulatory response) dwarfs the cost of building it in from the start. If you're evaluating where to begin, understanding why a governed AI layer matters is a practical starting point.

What does this replace in our current stack?

It doesn't replace your CRM, helpdesk, or billing system. It sits between those systems and the AI model, enforcing who can access what, what data reaches the model, what actions require approval, and what gets logged. Think of it as the authorization and audit layer your AI integrations are currently missing.

Can we start with one workflow instead of a company-wide rollout?

That's the recommended path. Pick one workflow with clear data boundaries (support ticket classification, contract summarization, lead enrichment) and build the full control stack for that single use case: identity, minimization, authorization, approval, logging. The patterns you establish there become your template. Trying to govern everything at once is how governance projects stall.

What's the first thing that breaks?

Permission scoping. Almost every team discovers that their initial agent integration has broader access than intended. The first real task is auditing what your AI agents can actually reach in connected systems and cutting it down to the minimum required for each specific workflow.

The next problem you'll hit after getting controls in place isn't technical. It's cultural: getting your team to actually use the governed workflow instead of the faster, ungoverned shortcut they've already built habits around. That's a change-management problem, and it's harder than any of the engineering.

Share this post:
Santosh Patidar