Security

How NavonaAI protects your store

NavonaAI plugs into your Shopify store through a scoped OAuth connection, not a standing account with free rein. Below is exactly what that connection can read, what it can do, and what it is never able to touch.

Your Shopify access token is encrypted

When you install NavonaAI, Shopify issues an access token scoped to your store. That token is encrypted with AES-256-GCM before it's ever written to our database — it is never stored, logged, or transmitted in plain text.

Your NavonaAI dashboard session works the same way on our side: sign-in issues a signed, HTTP-only cookie, so the token that proves who you are is never exposed to page scripts and can't be read by anything running in your browser other than your browser itself sending it back to us.

What each permission is for

The exact set of Shopify access scopes NavonaAI requests when you install it — nothing broader.

read_checkouts

Reads the checkout webhooks Shopify sends while a shopper is checking out.

read_customer_events

Powers the storefront web pixel that reports on-site behavior back to NavonaAI. This is Shopify's customer-events (pixel) scope — not the same as read_customers, which reads a store's actual customer records and which NavonaAI does not request.

read_draft_orders

Reads draft-order webhooks, so a draft order is accounted for the same way a regular order is.

read_orders / write_orders

Reads order webhooks to confirm when a discount was used, and writes tags and metadata onto orders for discount-attribution reporting in your dashboard.

read_products / read_product_listings

Reads your product and collection catalog, used to apply the product and collection exclusion rules you configure in your NavonaAI settings.

write_discounts / write_price_rules

Creates and deactivates the Shopify discount codes NavonaAI offers, and nothing else.

write_pixels

Installs the storefront web pixel extension.

read_themes

Reads whether the app-embed block is active on your store's live theme.

read_locales

Reads your store's published languages, so the popup renders in a shopper's own language.

read_markets

Reads your store's configured markets for correct pricing context.

read_reports

Reads store-level sales and session figures via Shopify's own reporting API, shown on your NavonaAI dashboard.

Can and can't

Can

  • Read the cart, checkout, and order webhooks Shopify sends for the topics above.
  • Read your product and collection catalog to apply the eligibility rules you set.
  • Create and deactivate Shopify discount codes within the incentive limits you configure.
  • Read your theme and locale settings to render correctly on your storefront.

Can't

  • Browse your customer list. NavonaAI does not request read_customers or write_customers — it only ever sees the shopper data already present in the webhook topics above.
  • See payment details. Checkout and payment happen entirely inside Shopify's own checkout — NavonaAI is not part of that step.
  • Set its own discount amount. Every code it creates is an ordinary Shopify discount code, bounded by the incentive you configure in your NavonaAI settings — never an open-ended amount NavonaAI decides on its own.
  • Act on a webhook it can't verify. Anything that fails signature verification is dropped before it's parsed, stored, or acted on.

No shopper email or phone number required

This isn't a policy promise — it's how the storefront popup is built. Arming it for a shopper and issuing a discount code requires nothing more than your store's own identifier. NavonaAI never needs a shopper to hand over their contact details for the offer to work.

Every webhook is verified before we act on it

Every message Shopify sends us — cart, checkout, order, and the compliance webhooks below — carries a signature we verify against your store's credentials first. A message that fails that check is dropped before it is parsed, stored, or forwarded anywhere. Nothing unverified is ever treated as real.

Uninstalling revokes access immediately

Removing NavonaAI from your Shopify admin invalidates the access token we hold for your store and stops the storefront popup from arming. We're notified in real time and mark your store inactive on our side as part of the same event.

Have a question we haven't answered here?

See how NavonaAI handles GDPR data requests on /gdpr, read the full Privacy Policy, or reach us directly.

legal@navona.ai