PLACEHOLDER: legal review pending. This policy is based on the owner’s draft privacy notice of 5 November 2026; remove this note once it has been reviewed.
Who we are
Retain Flow is a Shopify app for marketing messages, automations and reports, provided by CodeX FZ LLC, Compass Building, Al Shohada Road, Al Hamra Industrial FZ, Ras Al Khaimah, United Arab Emirates (“we”, “us”).
When a merchant installs Retain Flow, the merchant decides which customers to contact and why. The merchant is the controller of its customers’ data; we process it on the merchant’s behalf and only to provide the app. If you are a shopper who received a message from a store, see Got a message from a store?.
This website
This website sets no cookies, runs no analytics or advertising trackers and has no forms. Our hosting provider processes your IP address and request details to deliver the pages and protect the site from abuse. If you email or message us, we use what you send only to reply.
What we process for merchants and their customers
| Data | Where it comes from | Why we use it |
|---|---|---|
| The store’s identity (shop domain, Shopify IDs) and the store’s app access token | Shopify, at install | To work inside the Shopify admin and keep each store’s data separate. For staff permissions we keep each staff member’s Shopify user ID and their Retain Flow role, not their name or email address |
| Order facts: order ID, dates, currency, merchandise amount, refunds, payment and test status, and the customer’s Shopify ID | Shopify order webhooks and order history | Sales reports, campaign results and measuring whether campaigns caused extra sales |
| Product facts: title, link, image link, price, availability | Shopify | Product blocks in emails |
| Customer segment membership (customer Shopify IDs) | The store’s Shopify customer segments | Choosing who receives a campaign |
| Marketing consent per channel (email, SMS, WhatsApp: subscribed or not, when it changed, opt-in level), and whether the customer has an email address or phone number on file | Shopify customer records | Sending marketing only to customers who agreed to it |
| Email address, phone number and first name | Read from Shopify when a message is sent | Delivering the message and personalizing it. Passed only to the provider that delivers that message |
| Suppressed addresses and numbers | Bounces, complaints and unsubscribes | Making sure we never send to them again |
| Signup popup entries and the consent given there | The store’s storefront | Creating or updating the customer and their consent in Shopify |
| Web push subscriptions: the browser’s push address and keys, browser type, and when it was last shown or clicked | The shopper’s browser, after they allow notifications | Delivering push messages and removing dead subscriptions |
| Campaign activity: who was in a campaign, which messages were sent, skipped or held and why, clicks, and delivery events (delivered, bounced, complained, failed) | Created by Retain Flow and reported by the delivery providers | Delivering campaigns, honoring limits and opt-outs, and reporting results |
We do not store customers’ postal addresses. Order line items are reduced to amounts; we keep no product-level purchase history per customer. We do not use Shopify’s storefront browsing events yet; this policy will be updated before we do.
What we do not do
- We do not sell customer data or share it for anyone else’s advertising.
- We do not use one store’s customer data to serve another store. Every store’s data is kept separate.
- We do not make automated decisions with legal or similarly significant effects on anyone. Choosing who gets a campaign has no such effect.
Who we share data with
Only service providers that help us run Retain Flow, limited to that work:
| Provider | What for | What they receive |
|---|---|---|
| Shopify | The platform the app runs on, sign-in and billing | What Shopify already holds |
| Amazon Web Services (Amazon SES), Mumbai region, India | Sending email | Recipient email address, message content, and delivery events |
| Meta Platforms (WhatsApp Business Platform) | Sending WhatsApp messages from the store’s own WhatsApp Business account | Recipient phone number and message content |
| PLACEHOLDER: SMS provider | Sending SMS in Pakistan | Recipient phone number and message content |
| Browser push services (for example Google, Mozilla, Apple and Microsoft, depending on the shopper’s browser) | Delivering web push | The browser’s push address and an encrypted message they cannot read |
| PLACEHOLDER: application hosting provider and region (planned: Hetzner) | Running the app and its database | All app data, stored on our servers |
| PLACEHOLDER: website hosting (recommended: Cloudflare) | Serving this website | Visitors’ IP addresses and request details |
We will list any new provider here before it receives data.
How long we keep data
| Data | Kept for |
|---|---|
| Raw webhook data after processing | 30 days |
| Campaign activity (recipients, sends, skips, clicks) | 25 months |
| Order facts | While the app is installed |
| Consent history | While the customer exists in the store |
| Suppressed addresses and numbers | As long as needed to keep honoring the opt-out, bounce or complaint |
| Web push subscriptions | Until the shopper unsubscribes, the browser rejects it, or the store uninstalls |
| Customer data exports for privacy requests | 30 days |
| Our access log (who accessed customer data, never the data itself) | 12 months |
When a customer asks Shopify to erase their data, we remove or anonymize it within 30 days. When a merchant uninstalls Retain Flow, Shopify notifies us after 48 hours and we delete that store’s data, keeping only records that hold no customer data (privacy request records and the access log).
Customers’ rights
Customers exercise their privacy rights through the store and Shopify. When Shopify forwards a request, we prepare everything we hold about that customer for the store to provide (access), or erase or anonymize it (deletion). Consent changes made in Shopify reach Retain Flow automatically, and marketing stops on any channel the customer leaves. You can also write to us at privacy@retainflow.io PLACEHOLDER: confirm this inbox exists; we will pass your request to the store, which decides on it.
Security
Each store’s data is separated at the database level. Access to customer data is logged. We keep only the data listed above, and we have a security incident response policy. If an incident affects a store’s data, we tell that store without undue delay. Connections to Shopify and to the delivery providers use HTTPS. PLACEHOLDER: describe encryption of storage and backups once hosting is set up.
Where data is processed
Email is processed by Amazon SES in Mumbai, India. PLACEHOLDER: app hosting region, the SMS provider’s region, and the safeguards used for transfers outside the store’s country.
Contact
Privacy questions and requests: CodeX FZ LLC, privacy@retainflow.io or WhatsApp +92 321 4141337. Incident owner: Sheikh Aziz Ur Rehman.
Changes
We update this policy before Retain Flow processes new kinds of data, and show the date of the latest version at the top.