Security

The specific things BuzzDesk does so an AI near your orders is safe.

Three guarantees

A shopper can't read an order they don't own. The AI can't write to an order. Your API key can't be read back out of BuzzDesk — not by you, not by us, not by an endpoint.

1. Nobody reads a stranger's order

A storefront chat is anonymous — nothing about a browser proves who is typing. So BuzzDesk treats every conversation as unauthenticated until the shopper supplies both the email used at checkout and the order number, and they match that exact order.

2. The AI cannot write to an order

There is no tool in the assistant's tool set that reaches an order write. The strongest thing it can do is create a pending request. Applying it is gated four ways:

If a write fails, the request is marked failed with the real reason — never silently "approved".

3. Your API key

4. One store can never see another's data

Every record BuzzDesk stores — conversations, messages, change requests, settings, knowledge — is scoped to a store, and every query filters on the store from your session, never from a URL or request body. A user is unique per (owner, store), so the same person installing on two stores gets two independent identities and two independent datasets. A boot-time audit verifies this and reports any residual sharing.

5. The embedded session

BuzzDesk mints an admin session only when store ownership is proven with the caller's own credential — either a verified identity check using their token, or OpoShop's own validation of it during an authorization exchange. "This store is already connected" is never accepted as evidence. A regression probe fires forged-token attacks at the live deployment after any change to that code path.

6. On your storefront

The widget lives in its own fixed layer appended to the page. It does not read, restyle or move any theme element — with the widget present and absent, every element on the page measures to the same pixel. It never renders on checkout, never renders in your theme editor, and renders nothing at all if it cannot load. The resting state is a small corner launcher; the larger panel appears only after a shopper taps it, and closes in one tap.

Reporting an issue

Found something? Email brandon@tryfound.io with the details and we'll respond quickly. Please don't test the identity check against a real merchant's live store.