About this policy
The short version: Flow Discounts is an app you install on your Shopify store to run sales. This policy explains, in plain words, what it collects, why, how long we keep it, and what you can ask us to do.
Flow Discounts is made and run by The Synix, trading as Synix (“we”, “us”, “our”). The app itself is branded only as Flow Discounts, so you will not see our company name inside it; this policy is where the two connect. You install it from the Shopify App Store to run price drops, volume and spend offers, buy-one-get-one deals, free shipping offers and discount codes across your catalogue, and to put every price back the way it was when a sale ends.
We wrote this policy by going through the app itself, feature by feature, rather than starting from a template. Where it says we do not collect something, that is a statement about how the app is built, not a promise we hope to keep.
Who this policy is for
Merchants. You and your staff, if you use Flow Discounts on your Shopify store. Most of this policy is about you, because you are the only person the app really knows.
Shoppers. People who visit or buy from a store that uses Flow Discounts. There is very little to say here, and that is the point: the parts of the app that meet your shoppers run inside Shopify and inside their own browsers, and send us nothing.
Website visitors. People who visit flowdiscounts.com.
What this policy does not cover
Shopify holds your store’s data and decides how its own platform handles it; that is covered by Shopify’s privacy policy, not ours. Other apps you install are covered by their own policies. If you send us information about someone else, this policy explains what we do with it, not why you had it.
Our role: when we decide, and when you do
The short version: For information about you and your store, we are responsible and you can come straight to us. For anything to do with your shoppers, you are responsible and we only follow your instructions.
Privacy law separates the party that decides why information is used (the “controller”, or “business” in some US states) from the party that only acts on instructions (the “processor”, or “service provider”).
We are the controller for information about you and your store: your store address, plan, currency and time zone; the contact email addresses Shopify lists for your store; the key that lets the app work on your store; the sales you create; and anything you send us by email. Your subscription is Shopify's: it bills you and holds the record, and the app only asks it which plan you are on when it needs to know.
We are a processor for you for anything touching your shoppers: the customer groups you pick when you limit a sale, the shopping baskets the discount logic prices inside Shopify, the storefront widgets running in shoppers' browsers, and the privacy requests Shopify passes to us on your behalf.
When we act as your processor we use that information only to do the job you set up. We do not use it for our own purposes, we do not combine it across stores, we build no profiles, and we keep nothing beyond what the feature needs. A shopper with a privacy question should ask the merchant whose store they used; that merchant can then instruct us, and Shopify’s own request system reaches us automatically.
How Flow Discounts works, in plain terms
The short version: There are four parts. The screens you use, our servers, small widgets on your storefront, and the logic that applies discounts at checkout. Only the first two ever see our systems.
The screens inside Shopify. When you open Flow Discounts in your Shopify admin, the pages come from our servers. What you set up is sent there and saved.
Our servers and database. They store your sales, their history, the original price of everything the app changes, and a log of what happened. They also talk to Shopify on your behalf to read your catalogue and apply your sales. Background work, such as starting a sale at nine in the morning or restoring prices when one ends, runs here too.
The storefront widgets. If you switch them on in your theme, small pieces of the app appear on your storefront: countdown timers, a savings table on the product page, a badge on collection pages, a shipping progress bar, a savings line in the cart, and a pop-up that lets a shopper pick a free or discounted item they have earned. They read the sale information we publish into your own store, and they read the shopper’s basket from your storefront. They never contact us.
The discount logic at checkout. Six of the seven kinds of sale work through a small program that Shopify runs inside its own systems every time a basket is priced. It sees the basket and the rules you wrote, decides the discount, and forgets it. It cannot reach the internet, so nothing from a checkout can travel to us.
Price sales are different. A price sale does not create a discount at checkout; it changes the actual price on your products, so the new price shows everywhere, on every sales channel. Before we change anything we write down what the price was, so we can put it back. While the sale runs we do not re-read your prices: if you or another app changes one, we notice when the sale ends, leave your price alone, and tell you.
What we collect from you and your store
The short version: What Shopify tells us about your store, the key that lets the app act on it, the sales you set up, and ordinary technical logs.
Your store’s details
Your store’s .myshopify.com address, its Shopify plan, whether it is a development store, its currency and its time zone. We use the time zone so that a sale you schedule for nine in the morning starts at nine in your morning, and the currency so money is handled correctly.
Your store’s contact email addresses
Shopify lists two email addresses for every store: the owner’s address and the store’s public contact address. We read both and keep them.
We want to be straight about this: we do not currently send email to either address. They are held so that, if the app were ever in a position where it had to warn you about something on your store, such as prices left on sale after the app was removed, we would know whether we could reach you. If we ever start sending such notices, we will say so in this policy first. Nothing in the app puts them on a screen, sends them anywhere, or writes them to a log, and they are never shared.
The key that lets the app work
To start a scheduled sale or put prices back when you are not looking, the app needs a key from Shopify for your store. Shopify issues it when you install the app, it expires and renews by itself, and Shopify cancels it the moment you remove the app. We keep it in our database and never write it to a log.
You sign in through Shopify. We do not run our own accounts or passwords, and we never see your Shopify password. The app is given access to the store rather than to a person, so the activity log records “your store” rather than a name. The short-lived token Shopify puts in the page does identify the signed-in staff member to the app for the length of one request; we do not read it, keep it, or write it down anywhere.
Everything you set up
Sale names, the discount rules and amounts, schedules, the products and collections you pick, the tags you ask us to apply, the discount codes you type, paste, upload or generate, the customer groups you choose, and the words and colours you set for the storefront widgets. Each time you edit a sale we keep the earlier version too, so you can compare it and go back to it.
The record of what changed
For every product a price sale touches, we record which product and variant it was, what the price and compare-at price were before, what we set them to, and how it turned out. This is the only copy of your pre-sale prices, and it is what makes putting them back possible. Alongside it we keep an activity log of what the app did and when.
Sales other than price sales keep a similar record of which products are in them, and for those the app rechecks the list while the sale runs and clears away the version it replaced. The record of your original prices is not treated that way: it belongs to a price sale, and it stays until the whole store is erased.
Your subscription
Plans are bought, charged and cancelled through Shopify. Whenever the app needs to know your plan it asks Shopify and forgets the answer. We never see, ask for or store card details, bank details or a billing address. Shopify bills you, and your invoices are in your Shopify settings.
Technical logs
Our servers keep ordinary running logs: which page was requested, your store address, the names and internal reference numbers of sales and background jobs, and any error text. They also briefly contain the short-lived token Shopify puts in the address of the first page you open, which expires within about a minute. Google, our hosting provider, records the network address and browser type of requests as part of running the service. Logs are kept for a limited period, thirty days by default, and are then deleted automatically.
Emails you send us
If you write to us we keep your message, your address and our reply, for as long as it takes to help you and to keep a record of it.
Our website
flowdiscounts.com is an ordinary information site. It sets no tracking cookies, uses no analytics and loads nothing from an advertising network.
If you fill in the contact form we keep what you send, so that we can answer you: your name, your email address, the subject you picked and your message, plus your company and store address if you choose to add them.
Two further things are saved next to your message, and neither one names you. The first is a scrambled fingerprint of the network address the message came from, made in a way we cannot reverse; it exists only so that one person cannot flood the form, and it is never compared against anything else. The second is the description your browser sends with every request it makes. Messages are deleted automatically six months after they arrive.
What we do with information about your customers
The short version: Almost nothing. We never look at who they are.
Customer groups. You can limit a sale to one of the customer groups you have already created in Shopify. So you can pick them by name, the app reads the list of groups: their names and their reference numbers. A group is a rule you wrote, not a person. We keep only the reference numbers of the groups you chose. We never open a customer record, never work out who is in a group, and never read a name, email address, phone number or address. Shopify treats this as protected customer data and gates it behind an approval. Without that approval the list simply comes back empty and your sale applies to everyone. Choosing individual named customers is not something the app offers at all. Shopify's discount object has a field for exactly that, and when the app updates a discount it reads back what is in it so as not to wipe something out. Because the app never puts anything there, it always comes back empty, and nothing from it is kept.
Baskets at checkout. When Shopify prices a basket, the discount logic sees the items, quantities, prices, the currency, whether an item is a subscription, and, only for shipping offers, the two-letter country code of the delivery address, so it can tell whether the offer applies there. It never sees a name, an email address, a phone number, a full address, a customer account, whether the shopper is signed in, or the code they typed. It returns a discount and keeps nothing of its own. Shopify does keep a log of these runs, including what went in and what came out, in your store; we can open that log when we are working out why a discount behaved oddly, and we cannot delete it.
Baskets on the storefront. The widgets read the shopper’s current basket from your own store to decide what to show, in the shopper’s browser. That never leaves their browser. To notice when the basket changes, the widget wraps the network calls your storefront makes and watches where they are addressed. It looks at the address only, never at what is sent or what comes back, and it keeps none of it. When a shopper accepts a free or discounted item from the pop-up, the item is added to their basket with a short note naming your offer, which Shopify keeps on the order for good. Neither you nor we can remove it afterwards, and it is the only mark the app leaves on an order. We never read your orders.
Sales figures. The app’s home page can show how many times each live discount has been used, and for discount codes the total sales Shopify attributes to them. These are totals Shopify calculates and reports for the discount as a whole. We do not read orders to produce them.
What we never collect
The app is built so that none of the following ever reaches us:
- Your customers' names, email addresses, phone numbers, postal addresses, accounts or purchase history.
- Your orders, order lines, checkouts, refunds or payments.
- The names or email addresses of individual members of your staff.
- Shoppers' network addresses, device identifiers, browser fingerprints or browsing behaviour. The storefront widgets never contact us, and the app sets no cookies of its own anywhere.
- The contents of a product file you upload. Your browser opens it, takes only the column you chose to match on, and sends those values to us to look them up in your catalogue. The file itself never leaves your computer, and of the lookup we keep only the file's name, which column you matched on, and the products it found.
- Card or bank details of any kind.
- Anything from an analytics, advertising or session-recording service. The app uses none.
The permissions you grant at install
The short version: Shopify shows you a list of permissions when you install. Here is what each one is really for, including two we hold for planned features and do not use yet.
| Permission | What we do with it |
|---|---|
| Manage discounts | Create the discounts behind your sales, keep their settings current, attach discount codes, remove them when a sale ends, and read how often they were used |
| Manage products and prices | Read your catalogue so you can choose what goes on sale; set and restore sale prices; add and remove the product tag you choose; mark the products a sale covers so the discount knows where to apply |
| Read sales channels | Let you limit a sale to products published on particular channels |
| Read customer groups | Show your customer groups by name so you can limit a sale to one. No customer records are opened |
| Read inventory | Read an item’s cost, and only when you set a minimum-margin rule, so the app can refuse to price below your floor |
| Add files to your store | Try to save a copy of your original prices into your own store’s Files after a price sale, so you keep it even if the app is gone. Without this permission the app skips the file and nothing else changes |
| Manage markets and price lists | Requested for a planned feature. Not used today |
| Create custom data records | Requested for a planned storefront feature. Not used today |
The app deliberately does not ask for access to your orders, your reports, your customer records or your customers' activity.
What the app changes inside your store
The short version: A sale is a real change to your store, not just a record on our side. Here is everything it touches, and what happens when the sale ends or the app is removed.
| What appears in your store | What it is | When it goes |
|---|---|---|
| Sale prices on your products | For price sales only: the new price, with the old one moved to the compare-at price so shoppers see it struck through | Put back when the sale ends |
| A discount | Named after your sale, with its schedule, rules and any codes you supplied | Deleted when the sale ends |
| The sale’s settings | A small record attached to that discount, so the checkout logic knows the rules | Deleted with the discount |
| A marker on each product in the sale | A short code telling the checkout logic this product is included. It names the sale by a scrambled identifier, never by your wording | Removed when the sale ends, or when the product leaves it |
| A product tag | Only if you asked for one: exactly the tag you typed | Removed when the sale ends, and only from products the app tagged |
| Storefront widget settings | The wording, colours and live sale details your storefront widgets need to draw themselves | Rewritten each time you save, or a sale starts or ends |
| Your discount codes | The codes you supplied, attached to the discount | Codes you remove are withdrawn the next time the sale is applied |
| A copy of your original prices | After a price sale is applied, the app tries to save a spreadsheet of your previous prices into your store’s Files, named after the sale and the date. It only happens if you granted the app permission to add files; otherwise it is skipped, and you can download the same list from the sale’s page instead. Applying the same sale again adds another file rather than replacing the first | Never removed by us. It is yours to keep or delete |
Where that spreadsheet is written, it sits in your store’s Files like any other file you upload there, which means Shopify serves it from its content network and anyone holding the link can open it. Nobody can guess the link, and we never publish it, but if you would rather it did not exist you can delete the file from your Shopify admin at any time; the app does not need it, because it keeps its own record.
On stores running the buy-one-get-one pop-up, the widget settings are written into the page so the widget can work without calling us. That means sale names, widget wording and the reference numbers of the products and variants a sale covers can be read by anyone who views your storefront’s page source, so treat them as public. A sale you have scheduled for a future date is included from the moment you schedule it, not from the moment it starts, so do not put anything confidential in the name of a sale you have not launched yet.
When you remove the app
Shopify cancels our access the moment you uninstall, before it tells us. From then on the app cannot read or change anything in your store. In practice:
- Prices from a running price sale stay at their sale level. End your sales before you uninstall. If you reinstall within the 48-hour window, the first screen you see tells you how many prices are still discounted from before and offers to put them all back in one click.
- Discounts, markers, tags, widget settings and the file of original prices stay in your store until you remove them, or until Shopify clears away app-owned data on its own. The discounts stop working, because the logic behind them is gone.
- If you reinstall within 48 hours, we offer to put the original prices back from our records. After that, Shopify asks us to erase everything about your store and the offer is no longer possible.
Why we use this information, and the legal grounds
The short version: To run the app you asked for, to keep it working and secure, to bill through Shopify, and to meet our legal duties. Nothing else.
| Why | What it uses | Legal ground (UK and EU) |
|---|---|---|
| Installing the app and running it on your store | Store details, the access key | Performing our contract with you |
| Creating, applying, refreshing, ending and undoing sales | Your sales, product identifiers and prices | Performing our contract |
| Showing you what happened and what needs attention | The activity log, the price record, job records | Performing our contract, and our legitimate interest in giving you an accurate account of changes to your store |
| Limiting a sale to a customer group | The group identifiers you picked | Your instruction, as your processor |
| Drawing storefront widgets and applying discounts at checkout | Sale settings published to your store; baskets, handled inside Shopify or the shopper’s browser | You decide the grounds for your storefront; we act for you |
| Billing and plan limits | Subscription details read from Shopify | Performing our contract |
| Keeping the service secure and working | Technical logs, job records, error reports | Our legitimate interest in a secure, reliable service |
| Answering privacy requests passed on by Shopify | The customer reference in the request | Our legal obligation, and acting for you |
| Answering your emails | Your address and message | Performing our contract, and legal obligation |
| Keeping records we must keep | Billing and compliance records | Legal obligation, and establishing or defending legal claims |
We do not use any of this to train machine-learning models, to build marketing profiles, to advertise, or to compare one merchant against another for our own or anyone else's benefit. Where we rely on legitimate interests we have weighed them against your rights and believe the result is what you would expect from a discounts app. You can object at any time using the contact details at the end.
Who we share it with
The short version: Three infrastructure companies keep our systems running, and Shopify, because Shopify is your store. Nothing is sold, and nothing goes to advertisers.
We do not sell personal information, we do not share it for cross-context behavioural advertising, and we do not pass it to data brokers. It reaches only:
Google Cloud, which runs our servers, schedules our background work, keeps our secrets and collects our logs.
Neon, which provides our database.
Shopify, because Shopify runs your store, your storefront and your checkout, bills your subscription, and serves the app’s files.
Vercel, which serves our website. It sees requests to the website and anything typed into its contact form on the way to our database, and nothing from the app itself.
Each of them handles the information only to provide their service to us, and is bound by their own data-protection commitments. Appendix B lists them with what they receive and where they are. We use no analytics, advertising, session-recording or email service, and no storage of our own beyond that database. We are not using an error-monitoring service. The app has a place to plug one in, and nothing is configured there: no such vendor exists in our secrets and no error report leaves our servers. If we ever add one, it goes into Appendix B before it goes live.
We will also disclose information if the law requires it, to answer a lawful request from an authority, to enforce our terms, or to protect the rights and safety of people using our service. If the business is ever sold or merged, information may transfer with it, and we will require the new owner to honour this policy.
We will give you at least thirty days' notice, through the app or by email, before adding a new company that would handle information about your shoppers on your behalf, so you have time to object.
Where your information is kept
The short version: In Singapore. We are based in Pakistan. If you are in Europe or the UK, standard contract terms cover the transfer.
Our servers and database are in Singapore. The Synix is established in Pakistan, and our team works from there. Shopify keeps your store’s data in its own regions, which it chooses. Our website is served by Vercel from its worldwide network, and anything you send through its contact form is written to the same database in Singapore.
Neither Singapore nor Pakistan has been declared “adequate” by the European Commission or the UK government, so if you are in the European Economic Area, the United Kingdom or Switzerland, transfers to us rely on:
- the European Commission’s Standard Contractual Clauses;
- the UK Addendum to those clauses, for transfers from the United Kingdom;
- the Swiss supervisory authority’s recognised amendments, for transfers from Switzerland;
- and the practical protections described in this policy: encryption in transit, encryption at rest by our providers, and holding as little as the app can.
Ask us at privacy@flowdiscounts.com for a copy of those terms or for our data processing agreement.
Our representatives in the EU and the UK. Because we are outside both and we offer this app to merchants inside them, the law expects us to appoint someone there who can be contacted about data protection instead of, or as well as, us. We have not appointed one yet. We are arranging it, and when it is done their name, address and contact route will appear here. Until then, write to privacy@flowdiscounts.com and we will answer within the same deadlines. We say this rather than leaving the question open, because you are entitled to know where we stand.
How long we keep it
The short version: While the app is installed we keep what it needs to work and to undo what it did. When you uninstall, Shopify tells us to erase everything about your store 48 hours later, and we do, apart from ordinary running logs that expire by themselves within about thirty days.
While the app is installed. Your store details, the access key, your sales and all their versions, the record of original prices and the activity log stay in place, because they are what the app runs on and what lets it put your prices back. Sale history is not cleared when a sale ends: you can still compare versions, run the sale again and download the prices it changed. Records of finished background work are scheduled for deletion seven days after they succeed, or thirty days after they fail, and a regular clean-up removes them in batches.
When you uninstall. Nothing is deleted at that moment. Shopify has already cancelled our access, and we hold your records through the 48-hour window in which reinstalling can restore your prices. We note the date, and which sales were still holding prices down. We send you nothing, because the app cannot send email.
About 48 hours later. Shopify asks us to erase the store, and we delete everything we hold about it in one go: the access keys, your store details and contact addresses, every sale and version, the discount records, the record of original prices, the job history and the activity log.
We check that the request really came from Shopify and really names your store before we act on it. If that check fails, or the deletion itself runs into an error, nothing is deleted and the attempt is recorded so that a person can look at it and carry the deletion out by hand. It is not silently dropped, and it is not retried automatically.
Two things sit outside that deletion, and we would rather say so than let the word "everything" do work it cannot. The first is our running logs, which mention store addresses, sale names and internal reference numbers; they are not searched or erased on request, and they expire on their own within about thirty days. The second is anything already in your own Shopify store, which is yours.
Logs. Kept by our hosting provider for a limited period, thirty days by default, then deleted automatically.
Things in your own store. Files and changes in your store are yours, and are unaffected by our deletion.
Emails and legal records. Kept while we deal with the matter, and afterwards for as long as accounting, tax or legal-claim rules require.
Appendix C sets this out item by item. We may keep information that has been stripped of anything identifying, as aggregate figures.
How we keep it safe
The short version: Everything travels encrypted, every message from Shopify is signature-checked, every record is tied to one store, secrets live in a vault, and the app is built to hold as little as possible.
- In transit. All connections between your browser, our servers, Shopify, Google Cloud and Neon are encrypted.
- At rest. Our database and log providers encrypt what they store. We do not add a second layer of encryption to individual fields such as access keys, so access to the database itself is tightly limited.
- Messages from Shopify. Every notification from Shopify is checked against Shopify’s signature before we act on it, and anything that fails is rejected and never processed. That includes the uninstall and erasure notices.
- Background work. The endpoints that run scheduled work accept only requests carrying a shared secret, compared in a way that cannot leak it, and refuse to run at all if that secret is missing.
- One store at a time. Every record carries the identifier of the store it belongs to, and every query the app makes is filtered by it. An automated check refuses to build the app if a query is written without one. The maintenance tools described in the next point are the deliberate exception, and they are not part of the app.
- Least access. Our systems hold only the permissions they need. Secrets are kept in Google’s secret manager, never in our code.
- Minimal credentials. The app uses expiring keys issued to the store rather than to a person, and never writes them to logs or error reports. Diagnostics have credentials, email addresses and tokens stripped out before they leave our servers. They can still name your store, a sale, a product or a discount code, because that is what makes a fault diagnosable at all.
- Built to hold little. No access to orders, no customer identities in the checkout logic, and product files processed in your own browser.
- People. Access to production systems is limited to the people who need it, through individual accounts with strong authentication.
- Support by hand. We should be straight that this is not an entirely automatic service. Where a maintenance tool changes something, your activity log records it the same way it records the app's own work, so an entry that reads as automatic may have been a person at Synix. When something goes wrong on a store, someone at Synix can read that store's sales, its price records and its activity log in order to fix it, and we keep command-line tools that can look across stores to find work that is stuck. Those tools are run deliberately by a person, never on a schedule, and the ones that delete anything refuse to run without an explicit instruction. We do not browse merchants' data outside that work.
- Separate environments. Development and testing use Shopify development stores and separate databases. No merchant data is copied into them.
- If something goes wrong. If we become aware of a breach affecting personal information, we will tell affected merchants without undue delay, tell Shopify within 24 hours as our partner terms require, and notify the authorities within the time the law allows, which is 72 hours where the GDPR applies.
No system is perfectly secure and we will not pretend otherwise. We keep improving these measures and will update this section when they change.
Your rights
The short version: Ask us what we hold, have it corrected or deleted, get a copy, object, or complain to a regulator. Write to us and we will answer within the legal deadline.
In the UK, the EU or Switzerland you can ask for a copy of what we hold about you; ask us to correct it; ask us to delete it where there is no longer a reason to keep it; ask us to restrict how we use it; receive what you gave us in a portable form; object to uses based on our legitimate interests; and withdraw consent where we relied on it, without affecting what happened before. You can also complain to your national data protection authority, to the Information Commissioner’s Office in the UK, or to the Federal Data Protection and Information Commissioner in Switzerland.
In California and other US states with privacy laws you can ask what we collect, use and disclose and get a copy; ask us to delete or correct it; opt out of the sale or sharing of personal information; limit the use of sensitive personal information; and not be treated differently for asking. We sell and share nothing, we collect no sensitive personal information, and we honour the Global Privacy Control signal. Where your state allows it, you can appeal a decision we make by replying to our answer, and we will explain the outcome. Over the past twelve months we have collected the categories described in this policy, for the purposes described, and disclosed them only to the companies in Appendix B.
Elsewhere, including Canada, Australia, Brazil, Singapore, Japan and South Korea, similar rights apply under local law, and we handle every request the same way.
How to ask. Email privacy@flowdiscounts.com from the address linked to your store. We will check you are entitled to what you are asking about, usually by confirming through your Shopify store, and reply within thirty days, or forty-five days under US state laws, with one extension where the law allows. There is no charge unless a request is excessive. You may use an authorised agent where the law provides for one, and we will ask for proof of the authority.
You can also see most of what we hold from inside the app: every sale and version, the activity log, and downloadable files of your original prices, your discount codes, any products a sale could not change, and any rows of an uploaded file that did not match.
Your customers' rights, and Shopify’s privacy requests
The short version: Your customers ask you. Shopify then tells every app on your store, including ours, and here is exactly what ours does.
Shoppers should send privacy requests to the merchant whose store they used, following that merchant’s own privacy policy. Shopify passes such requests to apps automatically, and Flow Discounts handles them like this.
A customer asks for their data. We check the request is genuinely from Shopify and about your store, take the customer’s Shopify reference from it, and search our records for it. The only place a customer reference could ever appear is a sale’s eligibility list, which the app gives you no way to fill in. We write the outcome into your store’s activity log so you can answer your customer, and that entry carries the customer’s Shopify reference number as proof of which request was answered. It is a number Shopify uses to identify a record in your own store; we hold nothing else about that person. Shopify puts the customer’s email address and phone number in that request, whether or not the app is approved to see such things elsewhere. We do not use them, do not write them down, and do not keep them once the request has been answered; the only thing that survives is the reference number in your activity log.
A customer asks to be erased. We search in the same way. If a reference were ever found, we would deal with it by hand within Shopify’s thirty-day window rather than silently altering a running discount, because changing a live sale is a decision for you, not for us.
You uninstall the app. About 48 hours later Shopify asks us to erase your store, and we delete everything we hold about it, as described above.
Cookies and browser storage
The short version: The app sets no cookies. The storefront pop-up remembers, for one browser tab, that it has already been shown. That is all.
In the Shopify admin. Our pages set no cookies and store nothing in your browser. Shopify’s own admin sets its cookies to keep you signed in, and the app loads Shopify’s interface toolkit and font from Shopify’s own network, as every embedded app does.
On your storefront. The widgets set no cookies and use no long-term browser storage. On stores running the buy-one-get-one pop-up, the widget keeps a few short-lived notes in the browser tab: which offer was shown, whether it was dismissed and when, whether the floating button was hidden, and which products belong to a sale. The browser discards them when the tab closes. None of it identifies the shopper, none of it is sent anywhere, and on stores without that pop-up the code is not even loaded. Because the widgets run on your storefront and read your shoppers' baskets, whether you need to ask for consent is your decision as the store owner.
On our website. No tracking cookies and no third-party analytics. If that ever changes we will update this section and ask for consent where it is required. We honour the Global Privacy Control signal.
Children
The app and our website are business tools for merchants and are not aimed at children. We do not knowingly collect information from anyone under 16, or under 13 where local law sets that age. Whether your storefront is aimed at children is a matter for you; the app’s widgets collect nothing about shoppers of any age. If you believe we hold a child’s information, tell us and we will delete it.
Automated decision-making
We make no automated decisions about people that have legal or similarly significant effects. A discount is worked out for each basket from the rules you wrote and what is in that basket, never from who the shopper is. We do not profile merchants or shoppers.
Changes to this policy
We will update this policy when the app, our systems or the law changes. The date on the cover tells you which text is current. For anything significant we will let you know through the app, or by email if we hold an address for you, before it takes effect. Continuing to use the app after that date means the updated policy applies.
How to contact us
The Synix, trading as Synix Plot 156, Block A Muslim Town, Lahore, Pakistan
Privacy: privacy@flowdiscounts.com Website: flowdiscounts.com
Our data protection contact, the person responsible for this policy and for answering requests under it, is reachable at that address. There is no separate postal route; write to the address above and mark it for the attention of the data protection contact.
Write to us with any question about this policy, to exercise a right, to ask for our data processing agreement or our list of providers, or to report a security concern. If you are in the UK, the EU or Switzerland and are not satisfied with our answer, you may complain to your data protection authority.
Appendix A — What we hold, at a glance
Everything the app keeps about you, where it comes from and how long it lasts. “Erasure” means the deletion Shopify asks us to carry out about 48 hours after you uninstall.
About your store
| What | Where it comes from | How long we keep it |
|---|---|---|
| Store address, plan, whether it is a development store, currency, time zone | Shopify, kept current as your settings change | Until erasure |
| Store owner email and store contact email | Shopify’s record of your store, and the notice Shopify sends when you uninstall | Until erasure. Not used to send anything |
| The access key for your store, and its renewal key | Issued by Shopify at install | Until erasure. Cancelled by Shopify when you uninstall |
| When you installed and uninstalled | Recorded by the app | Until erasure |
| Your subscription plan, status, dates and price | Read from Shopify when needed | Not kept |
| Storefront widget wording, colours and placement | Set by you | Until erasure |
| Setup progress and dismissed notices | Your use of the app | Until erasure |
| Emails you send us | You | Until resolved, then the legal record period |
| A message sent through the website contact form | You | Six months, then deleted automatically |
| A one-way fingerprint of the network address that sent it, and the browser description | Your browser, when you submit the form | Six months, with the message |
About your sales
| What | Where it comes from | How long we keep it |
|---|---|---|
| Sale name, type, status, schedule and tag | Set by you | Until erasure |
| Every saved version of a sale: its rules, amounts, schedule, the products and groups chosen, the name of any file you uploaded, and any discount codes | Set by you | Every version, until erasure |
| The discounts we created for it | Shopify | Removed when the sale ends; erased with everything else |
| The original and applied price of each product, and what happened to it | Your catalogue, read at the time | Kept after the sale ends so prices can still be restored and downloaded, until erasure |
| Which products are in a sale that is not a price sale | Your catalogue, rechecked while the sale runs | The version in force, until erasure; the version it replaced is cleared |
| Activity log of what the app did and when | The app | Until erasure |
| Background job records, including the reference of any prices file the app saved into your store | The app | Seven days after success, thirty after failure |
About your catalogue
| What | Where it comes from | Do we keep it? |
|---|---|---|
| Product and variant names, handles, codes, barcodes, images and options | Shopify, while you build a sale | No, shown on screen only |
| Product tags, types, vendors and sales channels | Shopify | Only the ones you choose, inside the sale |
| Prices and compare-at prices | Shopify, at the moment a sale is applied | Yes, as the record that lets us put them back |
| Item cost | Shopify, only when you set a minimum-margin rule | No |
| Identifiers from a file you upload | Your browser, sent to look them up in your catalogue | No. The file’s name, the column you matched on and the products found are kept in the sale |
| How often a discount was used, and code sales totals | Shopify, when you open the home page | No |
About your customers
| What | What happens |
|---|---|
| Customer group names and reference numbers | Read so you can pick a group; only the reference numbers of the groups you chose are kept |
| Names, emails, phone numbers, addresses, accounts, order history | Never read, never received, never kept |
| Baskets at checkout | Handled inside Shopify by the discount logic, which cannot reach us. Shopify keeps its own log of those runs in your store, which we can read and cannot delete |
| Baskets on the storefront | Handled in the shopper’s own browser |
| A customer reference in a Shopify privacy request | Recorded in your activity log as proof the request was answered, until erasure |
Appendix B — Companies that help us run the app
| Company | What they do for us | What they receive | Where |
|---|---|---|---|
| Google Cloud | Runs our servers, schedules background work, stores our secrets, collects our logs | All traffic to and from the app, internal job references, our secrets, log entries | Singapore |
| Neon | Provides our database | Everything the app stores, as described in Appendix A | Singapore |
| Shopify | Runs your store, storefront and checkout, bills your subscription, serves the app’s files | Everything the app reads from or writes to your store, and your billing | Shopify’s own regions |
| Vercel | Serves our website, flowdiscounts.com | Requests to the website, and whatever you type into its contact form on its way to our database | Vercel’s worldwide network |
We use no analytics, advertising, tracking, session-recording or email service, and no storage of our own outside the database above. The only files the app creates are placed in your own Shopify store.
Appendix C — How long we keep each thing
| What | How long | Deleted by |
|---|---|---|
| Access keys | While installed, plus 48 hours | Shopify’s erasure request |
| Store record, including contact addresses and settings | While installed, plus 48 hours | Shopify’s erasure request |
| Sales, every version, and their discount records | While installed, plus 48 hours; not cleared when a sale ends | Shopify’s erasure request |
| The record of original prices | While installed, plus 48 hours; survives the end of a sale so prices can still be restored | Shopify’s erasure request |
| The product list of a sale that is not a price sale | The version in force, until erasure; a replaced version is cleared while the sale runs | The refresh, then Shopify’s erasure request |
| Activity log | While installed, plus 48 hours; added to, never edited | Shopify’s erasure request |
| Background job records | Seven days after success; thirty days after failure | Automatic clean-up, then erasure |
| Technical logs | The hosting provider’s retention period, thirty days by default | Automatically |
| Files and changes in your own store | Yours, unaffected by our deletion | You |
| Emails you send us | Until resolved, then the legal record period | Us |
| Website contact form messages, and the fingerprint stored with them | Six months | Automatically |