Privacy Policy
ShopPulse: Visitor Counter & Social Proof
Draft for lawyer review. This document is a template, not legal advice. It has not been reviewed by a lawyer. Do not publish as final until counsel has reviewed it and the bracketed fields are filled.
Version: 0.2 (draft) | Effective date: [EFFECTIVE DATE, set on publication] | Last updated: 2026-11-07
ShopPulse ("the app", "we", "us") is provided by [LEGAL ENTITY NAME: set LEGAL_ENTITY_NAME], [ADDRESS: set LEGAL_ADDRESS]. Contact: support@tekgen.io.
This policy covers two groups of people: merchants who install the app on a Shopify store, and shoppers who visit those stores. Our role is different for each, so read the section that applies to you.
1. Our role: controller and processor
- Merchant data (the merchant's own account and business details): we are the controller.
- Shopper data (the technical data the widget handles about people browsing a merchant's store): the merchant is the controller and we are the processor acting on the merchant's instructions. Our data processing addendum (see section 11) applies.
2. What we collect from merchants
| Category | Examples | Source |
|---|---|---|
| Shop identity | Shop domain, Shopify access token needed to operate the app | Shopify OAuth |
| Shop profile | Shop name, shop owner email, contact email, timezone | Shopify webhook and Admin API |
| Staff session data | Name, email, Shopify user id, locale, account-owner flag (stored in the Shopify session table for staff who open the app) | Shopify OAuth |
| App configuration | Widget message, colours, display rules, per-product rules, geo and A/B settings, plan | Merchant input |
| Billing status | Plan and subscription status. We never see card details; Shopify bills you | Shopify |
| Support requests | Category, subject, message, reply-to email, shop and plan | Merchant input |
| Feature board | Feature requests and details you post, your votes, an email opt-out flag | Merchant input |
| Live chat | If chat is enabled: shop domain, plan, owner email and name are sent to the chat provider | App to chat provider |
| Diagnostic logs | Shop domain, request metadata, error details, merchant email addresses and subjects of emails we send (never email bodies) | Server |
3. What the widget handles about shoppers
- A random session identifier generated in the shopper's browser, kept in
sessionStorageunder the keylv_sid, which is cleared when the tab closes. It is not linked to a name, email, account or cookie. - The product being viewed and, for A/B tests, the variant shown (
sessionStoragekeyslv_variant_<product id>). - Anonymous interaction events: impression, hover and click, with product and variant.
- If the merchant enabled country targeting, the country code the storefront reports for the visit. It is used to decide whether to show the widget and is not stored.
- The shopper's IP address and user agent are visible to our servers and hosting provider as part of each request and may appear in standard server and proxy logs (see section 8). We do not use them to profile or identify shoppers and do not store them in our database.
We do not collect shoppers' names, emails, addresses, order data or payment data. We set no cookies. We do not read Shopify customer identifiers; Shopify may append a logged-in customer id to App Proxy requests and we do not store or log it.
Because this data is anonymous in our hands but a session id and IP address can still be personal data in some laws, we treat it as personal data for security and retention purposes.
4. Purposes and legal bases (GDPR / UK GDPR)
| Purpose | Data | Legal basis |
|---|---|---|
| Provide and operate the app (settings, widget, plans) | Merchant data | Contract (Art. 6(1)(b)) |
| Compute the live count and analytics for the merchant | Shopper data (as processor) | Merchant's instructions; the merchant's legitimate interest in social proof |
| Billing and plan sync | Merchant data | Contract |
| Support, feature board, product emails about your requests | Merchant data | Contract and legitimate interests (Art. 6(1)(f)) |
| Security, abuse prevention, rate limiting, debugging | Logs, IP, session id | Legitimate interests |
| Legal compliance, responding to authorities | As needed | Legal obligation |
5. Retention
| Data | Retention |
|---|---|
| Live viewer keys in Redis | About 60 seconds |
| Analytics events (impression, hover, click) | 90 days, then deleted automatically |
| Server and proxy logs | 30 days [confirm against hosting configuration] |
| Support requests | 12 months from creation, then deleted or anonymised |
| Feature requests and votes | Until shop redaction; request text is then deleted or anonymised |
| Shop settings and rules | Until 48 hours after uninstall (Shopify sends a redact request), then deleted |
| Access token and owner/contact email | Cleared on uninstall |
| Live chat and mailbox history | Per section 7, deleted on a redaction request |
6. Sharing and subprocessors
We do not sell personal information and do not share it for cross-context behavioural advertising. We use the subprocessors listed at /subprocessors and in docs/legal/subprocessors.md. We will update that list before adding a new subprocessor (see section 12).
7. Erasure and uninstall
On uninstall we mark the shop uninstalled and remove its live viewer data. 48 hours later Shopify sends shop/redact; we then delete the shop's settings, rules, analytics, support requests, votes and profile data. Copies held by processors (live chat contacts, support mailbox threads) are deleted manually following our erasure runbook. Customer data-request and redaction requests forwarded by Shopify find no shopper personal data in our database.
8. Logs
Our hosting provider and application write operational logs. They can contain shop domains, request paths and IP addresses, error details, and merchant email addresses and subjects (never message bodies). We keep them for 30 days and use them only for security and debugging.
9. International transfers
We and our subprocessors may process data outside the EEA and UK. Where required we rely on the EU-US Data Privacy Framework (for certified providers) or the EU Standard Contractual Clauses (and the UK Addendum) with appropriate safeguards. Hosting region: [HOSTING REGION, to be confirmed].
10. Security and breach notification
We use encryption in transit, access controls, rate limiting and request signature verification on all storefront endpoints. If we become aware of a personal data breach affecting merchant or shopper data we will notify affected merchants without undue delay and in any event within 72 hours of becoming aware, so they can meet their own obligations.
11. Your rights and our response time
Depending on where you live you may have the right to access, correct, delete, restrict or port your personal data, to object to processing, and to complain to a supervisory authority. Email support@tekgen.io.
- GDPR / UK GDPR: we respond within one month (extendable by two months for complex requests).
- CCPA / CPRA (California): we confirm within 10 business days and respond within 45 days (extendable once by 45 days). We do not discriminate against you for exercising your rights.
- Shoppers: because we process shopper data for the merchant, we may direct your request to the merchant (the controller). We cannot identify an individual from our anonymous session identifiers.
We do not sell personal information and do not share it for cross-context behavioural advertising.
Data processing agreement: merchants who need a DPA can accept ours (see docs/legal/dpa.md) or request a signed copy at support@tekgen.io.
12. Changes to this policy
We may update this policy. We will post the new version with a new version number and effective date, and for material changes notify merchants by email or in the app at least 30 days in advance where practical. Continued use after the effective date means you accept the update.
13. Contact
[LEGAL ENTITY NAME: set LEGAL_ENTITY_NAME], [ADDRESS: set LEGAL_ADDRESS], support@tekgen.io.