Data Privacy
Woes is designed to keep customer-visible surfaces separate from operator-only and server-only data.
Customer-Visible Surfaces
Customer-visible surfaces include:
- Widget messages.
- Email replies.
- Discord replies.
- Survey prompts.
- Public signed survey response pages.
These surfaces must never expose:
- Raw API credentials.
- Provider or model internals.
- System prompts.
- Operator-only debug traces.
- Another workspace’s data.
- Service-role diagnostics.
Credentials
API credentials, source auth settings, Bring Your Own AI provider keys, Stripe
secrets, webhook secrets, and integration secrets must stay server-side and must
remain separate from source documentation content, customer-visible messages,
and model prompts. Source auth credentials are handled through the
application’s secure credential mechanism; workspace REST API keys are shown
once at creation, then stored only as hashes.
Secrets must never be returned in plaintext after creation, included in model
context, or exposed through customer-facing surfaces.
Do not put credentials in:
- Source documentation content.
- Agent prompts.
- Macros.
- Survey messages.
- Customer replies.
- Screenshots in public docs.
Bring Your Own AI Provider Keys
Bring Your Own AI provider keys are customer-owned model-provider credentials.
They are used only from server-side agent execution when the workspace is on the
Bring Your Own AI plan and has an active provider.
Woes returns only redacted provider-key status to the UI:
- Provider name.
- Active/inactive state.
- Verification status.
- Last verification time.
- Last-four-character key hint.
- Operator-safe error state.
Woes must never return the full provider key to customer-facing surfaces,
browser widget code, REST API responses, public docs, or operator debug traces.
Stripe Billing Data
Stripe handles payment details, subscription billing, invoices, and payment
methods. Woes stores only workspace-scoped billing references and entitlement
state needed to enforce plan limits:
- Stripe customer id.
- Stripe subscription id.
- Stripe subscription status.
- Plan and add-on entitlement values.
Card numbers, Stripe secret keys, webhook signing secrets, and payment-method
details are not stored in workspace settings.
AI Context
The support agent receives workspace-scoped context and sanitized customer fields. It should treat customer fields as hints, not API evidence.
Endpoint claims, auth rules, schemas, fields, and response behavior must come from retrieved API context.
Logs And History
Workspace-visible logs and history are tenant-scoped and redacted before they
are returned to the browser. They can include user/system activity and usage
events such as public API calls or live API checks, but they must not expose raw
API keys, bearer tokens, source auth secrets, request bodies, responses,
provider internals, service-role details, or platform-admin audit internals.
See Security Logs.Last modified on July 3, 2026