Who this applies to
Two groups of people share data with Wapsi:
- Merchants — Shopify store owners who install our app from apps.shopify.com/wapsi.
- Shoppers — people who tap "Notify me on WhatsApp" on a merchant's sold-out product page.
The merchant is the data controller for their shoppers' contact details. Wapsi is the data processor — we hold the data on the merchant's behalf and only act on it under their instructions.
What we collect from shoppers
When a shopper signs up for a restock alert, we collect:
- Their phone number — required, normalised to international (E.164) format. This is what we send the WhatsApp message to.
- Country code / approximate country — looked up from the IP address the request arrived on, without sharing the IP with any third party. Used to pre-fill the country picker in the widget and to format the phone number correctly.
- The Shopify product and variant they're waiting on — so we know which restock event to message them about.
- A timestamp — when they signed up.
- Shopify customer ID — only if they were already logged in to the merchant's store when they signed up. We use this to attribute later purchases back to the alert.
We do not collect email, name, address, payment details, or any browsing data outside the moment of signing up.
What we collect from merchants
When a merchant installs Wapsi we receive, via Shopify:
- Shop domain and Shopify shop ID.
- An offline OAuth access token — encrypted at rest. Used only to read inventory and product data, and to register webhooks.
- WhatsApp BSP credentials the merchant enters into the admin — currently a Zoko API key. Used only to send the merchant's own WhatsApp messages on their behalf.
- Inventory, product, and order webhooks from Shopify — processed transiently to decide when to send a restock alert and to attribute resulting orders back. Webhook payloads are not retained beyond what's needed for one alert run.
Why we collect each piece
- Phone number — to send the one WhatsApp message the shopper asked for.
- Product and variant — to know which restock fires which alert.
- Country — to format the number correctly for WhatsApp.
- Shopify customer ID — so the merchant can see "this alert led to this order" in their dashboard.
- OAuth token — to talk to Shopify on the merchant's behalf.
- BSP credentials — to talk to WhatsApp on the merchant's behalf.
We don't profile shoppers, build advertising audiences, sell data, or use anything we collect for purposes the merchant hasn't asked for.
Who we share data with
Just the parties needed to deliver the message:
- Shopify — the platform the merchant's store runs on; we read from and write back to the merchant's own data there.
- The merchant's WhatsApp BSP — whichever one they configured. We currently support Zoko. The BSP is the company that owns the WhatsApp Business number messages are sent from. The BSP then hands the message to Meta's WhatsApp infrastructure.
- Hetzner Cloud — our hosting provider. Wapsi is hosted in Germany (EU).
- Cloudflare — DNS provider for
wapsi.app. Cloudflare does not proxy traffic; it only answers DNS queries.
We do not share data with advertisers, analytics vendors, or data brokers. Wapsi runs no third-party trackers on this site or in the storefront widget.
How long we keep it
- Active subscriptions (a shopper waiting on a restock) — kept until the alert is sent or the shopper unsubscribes.
- Sent alerts — kept for 13 months for delivery audit and revenue attribution, then deleted.
- Unsubscribed shoppers — removed from the active list immediately.
- OAuth tokens + BSP credentials — removed when the merchant uninstalls.
- All merchant data — fully purged 48 hours after Shopify's
shop/redactwebhook fires, which Shopify sends 48 hours after uninstall.
How shoppers opt out
- Ask the merchant to remove them from the subscriber list inside their Wapsi admin.
- Email contact@wapsi.app with the phone number to remove — we'll honour it within one business day.
Once opted out, the shopper's phone number is no longer associated with the merchant's store in our system. If they sign up again later on a different sold-out product, that creates a fresh signup.
GDPR + Shopify privacy webhooks
We implement the three Shopify-mandated privacy webhooks:
customers/data_request— when a shopper asks the merchant for a copy of their data, we return everything we hold against that customer ID + phone within 30 days.customers/redact— when a shopper asks the merchant to be forgotten, we remove all data tied to that customer ID + phone without undue delay.shop/redact— Shopify fires this 48 hours after a merchant uninstalls; we remove every row tied to that shop on receipt.
Security
All traffic is TLS-encrypted in transit. Sensitive credentials are encrypted at rest. We run no analytics, advertising trackers, or behavioural pixels on the storefront widget or on this site — only typography is loaded from public font CDNs.
Children
Wapsi is sold to Shopify merchants and used by their adult shoppers. We don't knowingly collect data from anyone under 16. If you believe a child has signed up for an alert, email contact@wapsi.app and we'll remove the record.
International transfers
Our servers are in Germany (EU). Shopify and the merchant's WhatsApp BSP may operate from other regions; we have no control over where they store data they already hold under their own privacy policies.
Changes to this policy
If we change anything material we'll update the effective date at the top and, for merchants, post a notice in the admin. Continuing to use Wapsi after a change means the new policy applies.
Contact
Questions, data requests, or complaints: contact@wapsi.app. We aim to reply within one business day.