Privacy Policy
Effective date: November 13, 2026
CounterQuest is a rewards and loyalty app for Shopify stores. Shoppers earn points from purchases and from other things the store chooses to reward, and redeem them online or at the register. This policy explains what data the app and the counterquest.app website handle, why, where it is kept, and how it is deleted.
Merchants: our Terms of Service and Data Processing Addendum govern how we process your customers' data.
Who we are
CounterQuest, 15 Hershey Rd, Shippensburg, PA 17257, United States.
Privacy questions and requests: privacy@counterquest.app. Help with the app: support@counterquest.app.
Our role
- For a store's customers, the store (the merchant) decides how their data is used. The merchant is the controller (or "business" under US state privacy laws), and CounterQuest is a processor (or "service provider") that handles the data only to run the rewards program for the merchant, following the merchant's settings.
- For merchant account data and our website waitlist, CounterQuest is the controller.
Data we handle
From merchants
- Installation data: the store's myshopify domain, the access token Shopify issues to the app, and the permissions (scopes) granted. Used to connect to the store.
- Program settings: points rates, rewards, VIP tiers, badges, quests, events, page text and similar choices. These are saved in the store's own Shopify data (a shop metafield).
- Billing: Shopify bills merchants for the app; we never see card or bank details. We only record the date a store's subscription lapsed (to run a short grace period), and delete that record when the subscription is active again or the app is uninstalled.
- Store records the app creates: check-in events (name, points, dates), sync bookmarks, daily totals for reports (such as member count and points outstanding), community goal counters, and cached Dashboard and report numbers (which include each member's customer ID with their points balance, total spent and order count, but no names or contact details; names are looked up from Shopify when a page is shown), plus a record of customer data requests forwarded by Shopify.
About a store's customers
The app reads, through Shopify's API, the customer details it needs to run the program: name, email address, phone number, account creation date, number of orders and total spent, customer tags, email marketing status, and order details (amounts, items, discount codes used and refunds). It can also read the customer's Shopify gift cards (last four characters and balance only) and store credit balance, so they can be shown to the customer and to staff.
Most rewards data is stored in the merchant's own Shopify store, on the customer or order record (app metafields):
- points balance and recent points history;
- birthday and the year a birthday bonus was given;
- one-time rewards already claimed, activity counters (orders, check-ins, trade-ins, quests and similar), and badges earned;
- "What do you collect?" style interests the customer picked;
- reward codes the customer redeemed, and in-app notices (for example "back in stock");
- on orders: points the order earned and any taken back by refunds.
The app also writes to the store, as part of the program:
- single-use, customer-only discount codes and gift cards when a customer redeems points, and a referral discount code (with a "first-time customers" segment) when a customer asks for a referral link;
- customer tags starting with "Rewards: " (for example VIP tier, Reward ready, At risk, Birthday this month, Want list match) and "Collects: " tags for chosen interests, so the merchant can use them in Shopify Email, Flow or segments;
- the customer's first and last name, when the customer fills them in on their rewards profile;
- email marketing consent, set to subscribed only when the customer clicks an opt-in for email alerts. The app never emails a store's customers itself; any such email is sent by the merchant through Shopify.
Some data is kept in CounterQuest's own database:
- Want list: the products (or text) a customer saved, and when a saved item was found in stock.
- Referral code: the customer's referral code and its Shopify discount ID.
- Change log: manual points changes made by store staff (customer ID, amount, reason, source, time), so they can be reviewed or undone.
- Push notification subscriptions: if a customer turns on phone notifications, the push address and encryption keys their browser provides, linked to their customer ID.
- Backups: weekly snapshots of the rewards fields listed above, by customer ID only (no names or emails). The most recent 8 are kept.
- Integration records: if a merchant connects one of their own systems through our partner interface, a record of each event it sent (for example a trade-in) so it is not counted twice.
- Import files ("Switch apps"): when a merchant moves from another loyalty app, they upload that app's export. The rows we receive can contain names, email addresses, phone numbers, points balances, birthdays and tiers, and may include people who are not customers in the Shopify store. We keep them only to match and run the import: the rows are cleared a day after the import finishes, and the import record itself is deleted after 30 days.
When a signed-in customer uses the rewards window or pages on the store, Shopify tells the app which customer is signed in. The app uses this only to show and change that customer's own rewards.
From visitors to counterquest.app
If you join our waitlist, we store what you enter: name, email address, and optionally your store URL, type of shop, point-of-sale system, current loyalty app and a note. We use it to contact you about CounterQuest and the founding-shop offer: you get a confirmation email, and the details are emailed to us so we can follow up. The website loads its fonts from Google Fonts, so your browser sends your IP address to Google when you visit. The website does not use advertising or analytics trackers.
In shoppers' browsers
The app's storefront scripts use the browser's local and session storage for functional things only: briefly caching the customer's rewards data, remembering that a banner or prompt was dismissed, and counting visits to decide when to suggest installing the store's web app. This data stays in the browser.
How we use data
- To run the rewards program: award and take back points, apply rewards, show balances, badges and progress, and pay birthday, referral and other bonuses the merchant set up.
- To show the merchant's staff a customer's rewards in Shopify admin and at the register.
- To alert a customer when a want-list item is back in stock, or a reward is ready, by an in-app notice, a push notification (if they turned it on), or a customer tag the merchant can use for email.
- To import balances from a merchant's previous loyalty app, when the merchant asks.
- To give the merchant reports, totals, backups and exports.
- To answer waitlist sign-ups.
We do not sell personal data, share it for advertising, or use it to build profiles across stores. The app contains no advertising or third-party analytics trackers.
Exports and access requests
- Members export: the merchant can download all of their members (points, VIP tier, totals, birthday, orders, spend and similar) as a CSV at any time from the Customers page, and a spreadsheet of any backup. The export is built on request through Shopify and is not stored by us.
- Customer data download: on each customer's page the merchant can download everything the app holds about that customer (rewards fields, want list, referral codes, points changes, push subscriptions, integration records and backup entries). This is how a merchant answers a customer's access request, including one Shopify forwards to us; for those requests our server records only counts, never the data itself.
Public in-store display
If a merchant turns on the in-store display option, the app publishes a small feed for a screen in the shop. It contains only program details (name, earn rates, events) and store-wide totals (new members, rewards used, badges earned, referrals over 30 days). It never contains names, balances, spending or rankings.
Service providers
We use these providers to run CounterQuest:
| Provider | What it does | Location |
|---|---|---|
| Shopify | The merchant's store platform. Holds the customer records, orders, metafields, tags, codes and gift cards described above, and bills merchants for the app. | Per Shopify's own policies |
| Vercel | Hosts the app and the counterquest.app website, and keeps short-term server logs. | United States (US East) |
| Supabase | Hosts the app's PostgreSQL database (on Amazon Web Services). | United States (AWS us-east-1) |
| Resend | Sends CounterQuest's own emails: waitlist confirmations and sign-up alerts to us. It is not used for emails to a store's customers. | United States |
| Cloudflare | DNS for counterquest.app, and forwarding of email sent to @counterquest.app addresses to our inbox. | Global network |
| Google Fonts | Serves the fonts on counterquest.app (receives visitors' IP addresses). | Global network |
| Browser push services (for example Google Firebase Cloud Messaging, Apple) | Deliver push notifications to customers who turned them on. Messages contain a short title, text and link. | Operated by the customer's browser or device vendor |
Data is processed in the United States. Where the law requires a transfer safeguard (for example for data from the EU or UK), we rely on the Standard Contractual Clauses in our service providers' data processing terms.
Retention and deletion
- Uninstall: when a store uninstalls the app, we delete its access sessions and its billing-lapse record right away, and the public in-store feed stops.
- Shop deletion: Shopify sends a shop deletion request about 48 hours after uninstall. When it arrives we delete all of the store's rows in our database: want lists, referral records, change log, push subscriptions, integration records, import files, check-in events, backups, display feed, Dashboard and report cache, customer data request records, daily report totals, sync records, community goal counters and sessions.
- Data in the merchant's store: the rewards fields on customers and orders (points, history, birthdays, badges, saved codes and the like) are app-owned data in the merchant's Shopify store. Shopify removes app-owned data after an app is uninstalled, on its own rules and timing, so points balances should be treated as lost once the app is uninstalled. Merchants who may want them later should download the members export or a backup spreadsheet first. Discount codes, gift cards, customer tags, and name and consent changes the app made are ordinary store data and stay under the merchant's control.
- Customer deletion: when a merchant (or Shopify, on the customer's behalf) requests erasure of a customer, we delete that customer's want list, referral record, change log entries, push subscriptions and integration records, delete the store's import files, remove the customer from every backup, and delete the app's rewards fields on their Shopify record if it still exists. Their ID is removed from the Dashboard and report cache right away.
- Import files are cleared a day after the import finishes and deleted after 30 days.
- Backups are taken weekly; only the latest 8 are kept.
- Push subscriptions are also deleted when the customer turns notifications off or their browser reports the subscription has ended.
- Waitlist details are kept until 12 months after CounterQuest launches on the Shopify App Store, then deleted, or sooner if you ask us to (email privacy@counterquest.app).
- Server logs are kept by our host for a short period. Logs are used only to run and fix the service.
Security
All connections to the app use HTTPS. Requests from the store's website are verified with Shopify's signature, and admin and register requests with Shopify's session tokens. Database access uses a dedicated login limited to the app's own data. No system is perfectly secure, but we limit what we collect and keep most rewards data inside the merchant's Shopify store.
Your rights
Shoppers: the store you shop with controls your rewards data. To see, correct or delete it, contact that store. Stores can send us access and deletion requests through Shopify, and we act on them as described above. You can also turn off push notifications in your browser or on the rewards page, and unsubscribe from a store's marketing emails at any time.
Merchants and waitlist sign-ups: you can ask us for a copy of your data, to correct it, or to delete it by emailing privacy@counterquest.app.
Depending on where you live (for example under the GDPR in the EU and UK, or the CCPA in California), you may have rights to access, correct, delete or port your data, and to object to or restrict some uses. We do not sell or "share" personal information for cross-context advertising. We will not treat you differently for using these rights.
CounterQuest is operated from the United States and has not appointed a representative in the EU or UK. If you are in the EU or UK, you can also complain to your local data protection authority.
Children
CounterQuest is a business tool for merchants and is not directed at children. We do not knowingly collect children's data for our own purposes. Stores are responsible for their own customers' eligibility for their rewards program.
Changes
We may update this policy as the app changes. We will change the effective date above, and tell merchants about significant changes.