Privacy Policy
Growly Discounts: Last updated: April 28, 2026
Growly Discounts ("the App") is operated by Growly Oy ("we", "us", "our"). This privacy policy explains how we collect, use, and protect information when you install and use the App on your Shopify store.
1. Information We Collect
1.1 Via Shopify APIs
When you install the App, we access the following data through Shopify's APIs:
- Customer tags: to determine discount eligibility based on customer groups (e.g., "vip", "wholesale"). We do not access customer names, emails, phone numbers, or addresses.
- Product data: product names, prices, variants, SKUs, and product tags to apply price-based discounts, target campaigns by product attributes, and preview pricing on the storefront.
- Product and variant metafield definitions and values: merchant-defined custom fields that some campaigns use as targeting criteria (e.g. "discount everything in season:winter").
- Location data: POS store location names and IDs to enable store-specific discounts.
- B2B / Markets catalog data: Company Location Catalogs and Market Catalogs (catalog name, type, attached price list, currency, parent adjustment settings). Used by our B2B/wholesale catalog discount mechanism to write fixed prices directly into the merchant's catalog price lists.
- Store currency and locale settings: shop currency, enabled presentment currencies, IANA timezone, and shop locales, used to display prices and schedule campaigns in the merchant's local context.
- Theme template files: contents of the merchant's main theme's product / collection templates and global app embed settings, read to detect whether our storefront blocks (member-price label, volume-breaks table) are installed and active.
- Discount configurations: to create and manage automatic and code-based discounts via Shopify's Discount API.
- Subscription / billing state: the merchant's current Shopify app subscription status (Free / Growth) and trial state, used to gate plan-restricted features.
1.2 Stored in Our Database
We store the following data on our servers:
- Shopify session tokens (for API authentication against the merchant's shop).
- Discount campaign configurations: name, type, value, targeting rules, schedule, mechanism (cart discount, price sync, shipping, B2B catalog, volume breaks), exclusions, and code/limit settings.
- Customer group definitions: group name and the list of customer tags that map to that group.
- Product membership snapshots: for each campaign, the set of product / variant Shopify GIDs that the campaign currently targets (or excludes). Refreshed when targeting changes or via Shopify webhooks.
- Price-sync logs: per-variant audit trail of price changes a campaign has written into Shopify (original price, discounted price, write timestamp, rollback timestamp). Used by rollback so a campaign can restore the prices it changed.
- B2B / Markets catalog write logs: parallel to price-sync logs but for fixed-price writes into Shopify B2B / Markets catalog price lists. Stores catalog ID, price list ID, variant GID, written price, currency, and the previous price (for rollback).
- Variant price cache: a per-shop snapshot of variant prices (variant GID, product GID, current price, compare-at price) used to compute variant-aware discount previews on the storefront without hitting Shopify's API on every page view. Refreshed via Shopify product webhooks.
- SKU index: a per-shop mapping from product SKUs to variant / product GIDs, used by SKU-based campaign targeting.
- Metafield value index: indexed copies of merchant- defined product / variant metafield values that are referenced in campaign targeting rules. Refreshed via webhooks when those metafields change.
- App settings: language preference, default values, appearance settings, onboarding state, and the merchant's plan / trial state.
- Internal queues and health-check rows: bulk- operation queue entries, dirty-webhook backlog entries, and a single shared cron health-check row. Operational data only; contains no merchant-identifiable content beyond the shop domain.
1.3 What We Do NOT Collect
- We do not collect customer names, email addresses, phone numbers, or physical addresses.
- We do not collect payment or financial information.
- We do not use cookies or tracking technologies on your storefront.
- We do not identify shoppers or build browsing profiles. Our storefront theme block does make limited app-proxy requests to our server containing the product handle / variant ID being viewed and the shop's locale so it can render member-price previews; we do not log those requests against any shopper identifier and do not retain them after the price is rendered.
- We do not collect order history or customer purchase patterns.
2. How We Use the Data
We use the collected data solely to provide the App's functionality:
- Apply automatic discounts at checkout based on customer tags and configured rules.
- Sync discounted prices to product listings so loyalty / sale prices show on the storefront for eligible customers.
- Write fixed prices into B2B and Market catalog price lists for wholesale and market-segment discounts.
- Enable store-specific POS discounts based on POS location.
- Display volume / quantity-break price tables and loyalty price previews on your storefront via theme blocks.
- Apply shipping discounts (free shipping, percentage off, fixed delivery price) at checkout based on cart conditions.
- Manage discount campaign schedules and rules.
We do not sell, rent, or share your data with third parties for marketing or advertising purposes.
3. Data Storage and Security
- Data is stored in a PostgreSQL database hosted on Render (Frankfurt, EU).
- All data in transit is encrypted via TLS/HTTPS.
- API access is authenticated through Shopify's OAuth and session tokens.
- Database access is restricted to the application only.
4. Data Retention
- Campaign data and settings are retained for the duration of your subscription.
- When you uninstall the App, deletion of all your shop's data (campaigns, customer groups, settings, sessions, caches, logs) is initiated immediately and typically completes within minutes of the uninstall webhook firing. Per Shopify's requirements, we guarantee completion within 48 hours.
- Price-sync and catalog write logs are retained while the associated campaign is active so rollback can restore changed prices, and are deleted when the campaign or the app is removed.
- Operational caches (variant price cache, SKU index, metafield value index) are continuously refreshed by Shopify webhooks and rebuilt on demand; they hold no data beyond what Shopify provides for the merchant's shop.
5. Data Sharing and Sub-processors
The App relies on the following third-party services:
- Shopify: platform provider and primary data processor. All merchant and storefront data originates from Shopify's APIs.
- Render (renderhq.com): application and PostgreSQL database hosting in the EU (Frankfurt) region.
- Sentry (sentry.io): error and exception monitoring. When the App encounters an error we send the stack trace and diagnostic context (typically the shop domain, the URL path of the failing request, the user-agent string, and any relevant campaign / operation IDs) to Sentry so we can diagnose and fix bugs. We do not send customer-identifiable data, payment information, or storefront shopper traffic to Sentry.
- Crisp (crisp.chat): in-app live chat support, loaded only inside the merchant admin dashboard for paying (Growth-tier) subscribers. Crisp processes chat messages plus standard browser / session metadata typical of chat widgets (URL, user-agent, navigation events within the admin). It is not loaded on your storefront and does not see any shopper data.
We do not share data with any other third-party services. We do not sell, rent, or trade merchant or shopper data.
6. Your Rights
We comply with GDPR, CCPA/CPRA, and other applicable privacy regulations. You and your customers have the right to:
- Access: request a copy of stored data.
- Correction: request correction of inaccurate data.
- Deletion: request deletion of stored data.
- Portability: request data in a portable format.
- Uninstall: removing the App triggers automatic deletion of all stored data, completed within 48 hours.
Customer data requests are handled through Shopify's mandatory compliance webhooks (customers/data_request, customers/redact, shop/redact). We respond to all requests within 30 days.
7. Changes to This Policy
We may update this privacy policy from time to time. We will notify you of significant changes through the App or via Shopify's notification system.
8. Contact Us
If you have questions about this privacy policy or your data, contact us at:
Growly Oy
Email: info@growly.pro
Website: growly.pro