Security

Security

An agent that issues refunds and edits orders has to be safe by design. The model proposes; the policy engine authorizes. Every action is checked against your config before it runs.

How an agent that touches money stays safe

Several independent layers stand between the model and your customers' data and money.

Deterministic policy engine

Every action is checked against your config before it runs. The model can't bypass a refund cap.

Idempotent operations

Every refund, edit, and return uses an idempotency key. Retries can't double-charge.

Full audit trail

Every action stored with the model's reasoning, the policy decisions, and the before and after state.

Protected Customer Data

Name, email, address, and phone are handled under Shopify's Protected Customer Data requirements: redacted before the model, encrypted per store, deleted on request.

PII redacted before AI

Names, emails, addresses, and phone numbers are replaced with placeholders before any message text reaches the model. The provider never trains on your data.

Per-store encryption

Customer data is encrypted at rest with a key unique to your store. That per-store key is itself wrapped by a key held in AWS KMS, so raw keys are never stored in plaintext. Data is deleted on request, and on uninstall the store's key is crypto-shredded, leaving any residual ciphertext unrecoverable.

Prompt-injection screening

A separate model screens every customer message for injection attempts before the main agent ever sees it.

No fabricated actions

A guard blocks the agent from telling a customer it did something it never actually executed.

Fraud guardrails

Risk scoring plus deterministic checks block over-cap refunds, delivered-but-claimed-lost, and bad-faith claims.

Verified inbound, signed links

Webhooks are HMAC-verified, photo-upload and survey links are signed expiring tokens, and the public chat is rate-limited. Public forms are protected by a bot challenge (Turnstile) and a managed WAF.

Frozen config per session

Your policy is snapshotted per conversation, so a mid-session config change can't retroactively change what was already authorized.

What we attest to

How we handle and protect your customers' data.

Encryption in transit and at rest

TLS 1.2+ in transit (via our hosting edge), plus per-store AES-256-GCM encryption of customer data at rest. Each store's data-encryption key is itself wrapped by a key held in AWS KMS.

Encrypted backups

Database backups are encrypted at rest.

Least-privilege access

Access to production systems is limited and protected with multi-factor authentication.

Audit logging

Every action the agent takes is recorded with the model's reasoning and the policy decision behind it.

Incident response

We notify affected merchants of a data breach without undue delay, in line with the 72-hour GDPR obligation.

Data minimization

We request only the protected fields needed to resolve tickets. Nothing extra.

PII redaction before the model

Direct identifiers (name, email, address, phone) plus card numbers and government IDs are replaced with placeholders before any message text reaches the model.

Full data handling details live in our Privacy Policy.