Effective 2026-08-17

GENCY for Shopify — Data access disclosure

The GENCY for Shopify app holds protected customer data access at the base level only, for anonymous analytics (reason: Analytics). It is required for the app web pixel to subscribe to storefront visitor events. We request none of the protected customer fields — no name, email, phone, or address — and the app contains no code that reads customer records or order records.

1. Access scopes we request

Access scopes requested by the GENCY for Shopify app and what each is used for
ScopeWhat we use it for
write_productsWrite the generated detail-page content (product description HTML, images) back to the merchant’s own products.
write_filesUpload the generated images to the merchant’s Shopify Files so the detail page can reference them.
write_pixelsInstall the app’s own web pixel (see section 2) for anonymous traffic counting.
read_customer_eventsRequired for the app web pixel to subscribe to storefront analytics events. Non-PII: we read only the event name and product IDs.
write_translationsRegister locale translations of the generated product description for merchants selling in multiple languages.

Protected customer data access (base level = read_customer_personal_data, reason: Analytics)

This base-level access is the one Shopify names read_customer_personal_data. Shopify defines protected customer data as data about customers or visitors to a store. The storefront events our app pixel subscribes to (page views, product views, checkout progression) are visitor data, so the app holds base-level access with the reason Analytics. The only values the app actually handles under this access are the event name, product IDs, and the anonymous visitor identifier clientId provided by Shopify — and clientId is reduced in the browser to a one-character bucket label by a one-way hash, with the original discarded (see section 2).

We do not request the following scopes, and the app contains no API call that would use them:

2. What the app web pixel sends

GENCY Pixel (an app pixel running in the strict sandbox) subscribes to page_viewed, product_viewed, checkout_started and checkout_completed. The complete payload sent to our server is shown below — nothing else is transmitted.

{
  "shop": "example.myshopify.com",
  "event": "product_viewed",
  "productIds": ["1234567890"],
  "variant": "A",
  "ts": 1755388800000
}

3. What we store

We store only daily aggregate counters keyed by (shop, product ID, date, variant, experiment run ID). The run ID identifies one A/B experiment, not a person. There is no per-visitor record, no identifier that can be resolved to a person, and no raw event log is retained.

The pixel declares analytics = true, marketing = false, preferences = false, sale_of_data = disabled. Shopify’s pixel manager loads it only when the visitor has granted analytics consent. We do not sell or share this data, and we do not use it for behavioural advertising.

5. Mandatory compliance webhooks

All three of customers/data_request, customers/redact, and shop/redact are implemented and HMAC-verified. Because the app holds no customer personal data, the first two have no customer record to return or erase; on shop/redact we delete the store’s data.

6. Related documents

Privacy Policy · Sub-processors

Questions: support@studiolab.ai

Data controller: GENCY, INC. · A Delaware corporation · Registered office: 131 Continental Dr, Suite 305, Newark, DE 19713, USA

GENCY for Shopify — Data access disclosure · GENCY