Legal
Privacy Policy
Last updated October 14, 2026
This Privacy Policy explains how Seapixel ("we", "us", "our") collects, uses, and protects personal data when you visit seapixel.com (the "Site") and when you use the Shopify apps we publish on the Shopify App Store (the "Apps"). It is written to be read, not to hide behind jargon. If anything here is unclear, email us at hello@seapixel.com.
Who we are
Seapixel is a Shopify studio based in Athens, Greece, working with brands globally. For the purposes of data-protection law (including the EU General Data Protection Regulation, GDPR), Seapixel is the data controller for personal data collected through this Site. For our Apps, our role is described in the "Our Shopify apps" section below.
What we collect on this Site
We keep collection to a minimum. Depending on how you use the Site, we may process:
- Contact form submissions. When you contact us, we collect the name, email address, and message you provide, so we can reply. These are sent to our team's Slack workspace, which we use to receive and respond to enquiries.
- Analytics data. With your consent, we use Google Analytics to understand how the Site is used (for example, which pages are viewed). This may include your approximate location, device and browser type, and pages visited. Analytics only runs after you accept it in the cookie banner.
- Server logs. Our hosting provider may automatically log technical information such as IP address and request time for security and reliability. This is standard hosting behaviour and not used to identify you.
We do not sell your personal data, and we do not use it for advertising or profiling.
Cookies and consent
The Site does not set analytics or marketing cookies unless you accept them. When you first visit, a cookie banner lets you choose what we may store:
- Necessary storage is always on and is only what the Site needs to function and to remember your choice.
- Analytics (Google Analytics) is off by default and only runs if you accept it. You can change or withdraw your choice at any time via Cookie settings in the footer.
We use Google Consent Mode, so no analytics cookies or tracking fire before you opt in.
Fonts and third parties
Our display and body fonts are self-hosted on our own servers, so loading the Site does not send your data to a font provider. The third parties that may process data on our behalf are:
- Google Analytics: website analytics, only with consent.
- Slack: receiving and handling your contact-form messages.
- Our hosting provider: serving the Site and standard server logs.
Each processes data only to provide its service to us.
Our Shopify apps
When a merchant installs one of our Apps on their Shopify store, the App processes store data strictly to provide that app's features. For this data, the merchant is the data controller and Seapixel acts as a data processor on their behalf, under Shopify's Partner Program Agreement and API Terms. Each App's specific data handling is also described in its own listing on the Shopify App Store; this website Privacy Policy does not replace an App's in-context privacy information.
The sections below explain, in plain terms, what our Apps access and why, what we store and for how long, and what happens when an App is uninstalled. They are written for merchants, and they also cover the specific points a Shopify app reviewer verifies.
What our apps access, and why
Our Apps request Shopify API access scopes on the principle of data minimization: each App requests only the scopes its features need, and uses the minimum necessary within them. Grouped by purpose, our Apps may access:
- Storefront content, themes, and navigation — to add blocks, sections, redirects, and on-store widgets (for example theme app extensions, URL redirects, or a store locator). This is store configuration, not personal data.
- Products and product listings — to display, compare, search, recommend, or link products in an App's storefront experience. Some Apps also save their own links on a product as an app metafield (for example, the shoppable looks a product appears in). Product catalog data is not personal data.
- Files, locales, and translations — to read media and offer multi-language storefront output.
- Custom data (metaobjects and metafields) — some Apps store their own configuration and content (for example reels, shoppable looks, quizzes, store locations, or app settings) as Shopify metaobjects and metafields inside the merchant's own store, under the App's namespace.
- Discounts — our product-finder quiz app reads the store's discounts so a merchant can offer one with a quiz's results. This is not personal data.
- Orders (protected) — three Apps, our shoppable-video, product-comparison and product-finder quiz apps, request
read_ordersonly to attribute a completed purchase back to an in-app interaction (see "Protected customer and order data" below). No other App requests order access. - Customers (protected) — two Apps request
read_customersandwrite_customers: our customer-login app, only to look up a customer by email and send account invitations; and our product-finder quiz app, only to save a shopper who chooses to enter their email in a quiz as a customer of the merchant's store (see "Email capture in our quiz app" below). No other App requests customer access.
Protected customer and order data
Where an App accesses protected customer or order data through Shopify's Admin APIs, we handle it on these principles:
- Purpose limitation. We use protected data only for the specific feature it was requested for. We never sell it, and we never share it with third parties for their own purposes.
- We never store sensitive personal fields. We do not write customer names, addresses, phone numbers, payment details, or full order contents to our systems.
- Runtime-only where possible. Several features fetch protected data on demand, use it to compute and show a result to the merchant in the moment, and then discard it — it is never written to our databases. For example, our customer-login app reads a customer's status by email to decide whether to offer an invitation, and does not retain that lookup.
- Minimal derived records where a feature needs history. A small number of features must remember an outcome, and for those we store only the minimal derived fields needed:
- Purchase attribution (shoppable-video, product-comparison and product-finder quiz apps): when a shopper buys a product they interacted with in-app, we store the Shopify order id and the product id of the attributed item — plus, in the shoppable-video and quiz apps, the line amount, quantity and currency and which video or quiz it came from — so the merchant can see the sales their app drove. We identify the attributed line using a private cart property our own storefront code set — we do not read or store customer identity, cart tokens, or the rest of the order.
- Account invitations (customer-login app): when a merchant sends an invitation, we store the Shopify customer id and email for that invite so it can be tracked and not duplicated.
- Quiz email capture (product-finder quiz app): when a shopper chooses to enter their email in a quiz, we store that email, the Shopify customer id, and whether they opted in to marketing, alongside their quiz answers and result. These are the only places an App stores a customer email: invitations a merchant chooses to send, and emails shoppers choose to enter in a quiz.
- Technical event data. Our storefront analytics events (below) carry no IP address, browser user-agent, or customer identity. The one place an App keeps technical request data is our redirect app's 404 log: for each missing URL, it keeps the referring page and browser user-agent of the most recent visit, to tell search-engine bots from people. We do not store shopper IP addresses in any Shopify App.
- Merchant control. Merchants can grant or revoke an App's access at any time through Shopify's permission controls. Revoking access immediately stops all further processing.
- What Shopify sends us, and what we keep. Our shoppable-video app limits its order notification with Shopify's field filter: Shopify sends it only the order id, date, currency and test flag, and each line item's id, product id, quantity, price and line properties — the customer's name, email, phone number and addresses are never sent to it. Our product-finder quiz app uses the same filter as the shoppable-video app, plus each line's discounts, so it can count the amount actually paid; it never receives the customer's name, email, phone number or addresses either. Our product-comparison app uses the same filter: Shopify sends it only the order id, date and each line item's properties, and never the customer's name, email, phone number or addresses. While a notification is being processed it passes through our hosting and background-job providers, listed below.
- Processors used by our Apps. Beyond Shopify itself, App data is processed by: Vercel (application hosting), Inngest (background job and webhook processing), Neon (managed PostgreSQL database), Vercel KV (session and token storage, and short-lived anti-abuse counters),, OpenAI (the AI features below — store product and content details only, never shopper data) and Brevo (sending the results email a shopper asks for in our quiz app, and our merchant contact list). For data about merchants only — never shopper data — we also use Slack and Meta's WhatsApp Cloud API for internal notifications to our team (see "Merchant account data" below). Each processes data only to provide its service to us, under contract, and none uses it for its own purposes.
- Security. All data is transmitted over encrypted connections (HTTPS/TLS) and encrypted at rest by our infrastructure providers, stored on reputable EU/US cloud infrastructure, with restricted staff access and an incident-response process consistent with the rest of this policy. Development and production environments are kept separate, with separate credentials and databases.
Email capture in our quiz app
A merchant can add an optional email step to a quiz in our product-finder quiz app. Nothing from this step is sent until the shopper types their email and submits it. When they do, the App:
- finds the shopper in the merchant's Shopify store by email, or creates them as a customer, and adds the App's tag to the customer;
- saves the shopper's latest quiz result (the quiz, the result, their answers and the recommended products) on that customer as an app metafield the merchant can see in Shopify;
- sets the customer's email marketing consent to subscribed only if the shopper ticks the opt-in box; it never unsubscribes a customer or lowers an existing consent;
- fires the merchant's Shopify Flow trigger "Quiz completed", so the merchant's own automations can follow up;
- if the merchant has turned it on for that quiz, sends the shopper one email with their results, through Brevo, with the merchant's store as the reply-to address. This is a service email the shopper asked for, not marketing, and it is capped per store and per email address each day.
In our database the App keeps the quiz submission: the answers, the result and recommended products, and — only when an email was given — that email, the Shopify customer id and whether the shopper opted in. To stop abuse, the App counts requests per email address using a one-way SHA-256 hash of the address, kept in Vercel KV for at most 24 hours; the address itself is never stored there. The merchant can view, export and delete submissions in the App. The customer record, tag and metafield live in the merchant's own Shopify store, under the merchant's control.
AI features in our Apps
Some App features use OpenAI to write text: AI comparison summaries for shoppers in our product-comparison app, AI translation in our quiz app, AI location summaries in our store-locator app, and redirect suggestions in our redirect app. For these we send OpenAI details from the merchant's store only — such as product titles, descriptions, tags, types, options and prices, or a location's address and opening hours — and never shopper or customer personal data. OpenAI processes this data under its API terms, which exclude using it to train OpenAI's models.
- AI comparison summaries are marked as AI-generated in the storefront and are kept for up to 7 days, so a repeat comparison of the same products reuses the summary.
- For each AI request we record the store, the App, the AI model and the number of tokens used, to apply monthly limits and track costs. These records are deleted with the rest of the store's App data (see "What happens when you uninstall").
Analytics and Insights
Our shoppable-video, product-comparison, store-locator and product-finder quiz apps offer storefront analytics so merchants can see how their app-powered experiences perform (impressions, plays, clicks, add-to-carts, quiz views and completions). All four follow the same rules in the shopper's browser:
- Events are sent only while the merchant's Storefront analytics setting in the App is on. A merchant can turn it off at any time in the App's settings, after which the storefront sends no events.
- Events are never sent from Shopify's theme editor, so a merchant's own previews are not counted.
- Events are sent only when the shopper allows analytics in the store's cookie banner (Shopify's Customer Privacy API), or when their region does not ask for consent. While the shopper has not decided, events wait in the page's memory: they are sent if the shopper accepts and dropped if they decline. No analytics data is written to the browser's storage before consent.
These events are anonymous: an event type, the product or content involved, and the time. They carry no IP address, browser user-agent, or customer identity. When a shopper searches for an address in our store-locator app, the event also records the text they typed and the map position searched, so the merchant can see where shoppers look for stores. In our quiz app, a completed quiz is recorded with its answers and result; it is only linked to an email if the shopper chooses to enter one (see above).
- Our product-comparison app stores these events only for stores on its paid Insights plan.
- Our shoppable-video, store-locator and quiz apps record them on every plan.
Purchase attribution comes from Shopify's order notification on our server, not from these browser events.
Data retention
We keep app data only as long as it is useful for the feature, and different Apps retain for different periods:
- Shoppable-video analytics and purchase attribution are automatically deleted on a rolling 100-day basis.
- Product-comparison and store-locator analytics (including product-comparison purchase attribution) are automatically deleted on a rolling 400-day basis, and when the App is uninstalled (see below).
- Quiz submissions, including any email given, are kept for the period the merchant chooses in the App — 30, 90, 180 or 365 days (365 by default) — and never longer than about 370 days. Quiz funnel events (views, starts and steps) are deleted after 40 days, and daily totals, which hold counts only, after 760 days.
- Redirect 404 logs are kept until resolved and, optionally, purged on a schedule the merchant configures.
- Account invitations and app configuration are kept while the App is installed.
Merchant account data
When a merchant installs an App, Shopify gives us the store's details: store name, myshopify domain, storefront URL, store contact email, the store owner's name, and Shopify plan. This is data about merchants, not their shoppers, and for it Seapixel is the data controller. We use it to:
- keep an install record per App and store (store domain, App, install and uninstall dates, and whether the store keeps earlier pricing), deleted 7 days after the App is uninstalled;
- keep the store's contact in our merchant contact list in Brevo, so we can manage our relationship with merchants and contact them about our Apps;
- notify our team of installs, uninstalls and plan changes (store domain, store contact email, Shopify plan and the App subscription name) in our own Slack workspace and, for some Apps, by WhatsApp message to the owner's phone through Meta's WhatsApp Cloud API.
When a merchant writes to us through an App's in-app support form, the name, email, store domain and message they enter reach us the same way: in Slack and, for some Apps, by WhatsApp.
What happens when you uninstall
- On uninstall, an App stops processing store data immediately; scheduled tasks are paused.
- 48 hours after uninstall, in line with Shopify's
shop/redactrequirement, we delete the store's App data from our databases — analytics events, purchase attribution records, quiz submissions and settings, redirect and 404 records, invitations, install records, and app-created metaobject definitions — scoped to that store and that App. - What we preserve: a small, non-personal shop cache (a store's own primary domain and URL settings, keyed only by store domain) is shared across any of our Apps a merchant still has installed and is retained so those Apps keep working; it contains no customer data.
- Customer data requests and erasure: we also honour Shopify's
customers/data_requestandcustomers/redactwebhooks. Two Apps hold records about individual shoppers: our customer-login app (invitations) and our product-finder quiz app (submissions with an email). Oncustomers/redact, we delete that customer's invitations and quiz submissions, matched by Shopify customer id or email. Oncustomers/data_request, our team is notified when we hold records for that customer, and the merchant can view and export that customer's quiz submissions in the App; for invitation records, a merchant can contact us. Our other Apps hold no per-shopper personal data, as their event data is anonymous.
How we use your data
We use the data above only to:
- respond to your enquiries and provide the services you ask for;
- operate, secure, and improve the Site;
- comply with our legal obligations.
Our legal bases are your consent (for analytics), our legitimate interest in running and securing the Site and replying to you, and compliance with legal duties.
How long we keep Site data
This covers data from this website; retention for our Shopify Apps is described under "Our Shopify apps" above.
- Contact messages: kept as long as needed to handle your enquiry and any follow-up, then deleted or archived.
- Analytics data: retained according to our Google Analytics configuration, in aggregate form.
- Server logs: kept for a short period for security and diagnostics.
Your rights
Depending on where you live, you may have the right to access, correct, delete, or port your personal data, to object to or restrict processing, and to withdraw consent at any time. To exercise any of these, email hello@seapixel.com and we will respond within the timeframe required by law. If you are in the EU/EEA, you also have the right to complain to your local data-protection authority.
Children
The Site and our Apps are intended for businesses and are not directed at children. We do not knowingly collect data from anyone under 16.
Changes to this policy
We may update this policy as the Site or our practices change. When we do, we will revise the "Last updated" date above. Material changes will be made clear on this page.
Contact
Questions about this policy or your data: hello@seapixel.com.