Privacy Policy
Last updated: September 24, 2026 · Applies to the Shopify app “njX Price Rollback & Snapshots” by njX
Who we are
njX Price Rollback & Snapshots is operated by njX, an independent developer. Contact: [email protected].
What the app does
It keeps a snapshot of your products’ prices, compare-at prices and status, writes down every change it sees, and lets you put those values back to a moment you choose — after a preview, on your confirmation, or on a timer you set. It also sends alerts and a daily digest to Telegram, Slack, Discord or e-mail.
What the app writes to your store
- Only on your order: a restore you confirmed in a preview, or a timer you scheduled. The app never writes on its own.
- Only three things: a variant’s price, a variant’s compare-at price, a product’s status (active, draft, archived). Nothing else is ever written — no titles, stock, images, tags, collections, orders or customers.
- Never creating or deleting: a product or a variant that no longer exists is shown with what it was, not recreated.
- Every write is recorded in the app’s log as made by the app, with the restore it belongs to, and can be undone.
Data we read and store
- Products and variants: title, SKU, price, compare-at price, product status and whether the product is published.
- Our own records: the log of changes we saw (with their source), the restores you ran and their rows, the named snapshots and timers you set, the problems the rules opened and how they were closed.
- Settings and channels: your thresholds and the hour of the digest; the e-mail addresses, Slack and Discord webhook URLs and Telegram chat ids you add (all stored encrypted and shown masked).
- Logs: which message went where and when, and messages you send through the support form.
The app has no access to orders or customers. It requests only the read_products and write_products permissions, so there is nothing about your customers for us to receive, store or be asked about. Shopify’s mandatory customer-data and customer-redaction requests are answered automatically: we hold no customer data.
How your numbers are used
- Your prices are used for your shop only: to remember them, to build your previews and restores, and to build your alerts and digest.
- They are never sold or shared, and never used to train machine-learning or AI models, or to feed any kind of market or competitor analysis. We do not compare your prices with anyone else’s.
- We keep a small amount of anonymous operational telemetry — how long a webhook took, how many values a restore wrote, which rule fired — identified by shop domain and used to keep the app healthy.
Where data is processed
- Cloudflare (Workers, D1, Queues) runs the app and stores its database. E-mail is sent through Cloudflare Email Service; a backup provider (Resend) may deliver a message when the first one is unavailable.
- Telegram (Telegram FZ-LLC), Slack (Slack Technologies, LLC, a Salesforce company) and Discord (Discord Inc.) deliver messages to the chats and channels you connect. Delivered messages live there under their own privacy policies.
- Shopify handles billing; we never see payment details.
Retention
- The log of changes: one year on every plan (the plan decides how far back you can look and restore: 7, 90 or 365 days). The history after a named snapshot is kept while the snapshot exists.
- The snapshot of your variants, your restores and their rows, snapshots and timers: while the app is installed.
- Closed problems: 90 days. Delivery logs: 90 days. Processed-webhook ids: 7 days.
- When you uninstall the app, or when Shopify sends a
shop/redactrequest, all data for your store is deleted. Nothing is written to your store on uninstall.
Channels and recipients
An e-mail address receives nothing until its owner clicks the confirmation link, and every message carries a one-click unsubscribe. A confirmation link is bound to the exact recipient it was issued for and only works while that recipient is still waiting to be confirmed. Anyone in a connected chat or channel can see the alerts and restore reports, which contain product names and prices — connect a channel your team should see.
Security
All traffic is encrypted in transit (TLS). Stored data and its backups are encrypted at rest by Cloudflare (D1); e-mail addresses, webhook URLs and chat ids are additionally encrypted with a separate key (AES-256-GCM) and shown masked in the app. Provider error messages are stripped of the recipient’s address before they are logged. Links in e-mails are signed and expire. Shopify webhooks are verified by signature, requests from our Telegram bot are checked against a secret token, and every write to your store goes through a preview that expires after 30 minutes and is checked value by value against the store right before it is written. Only the operator has access to production; the Cloudflare, GitHub and Shopify Partner accounts require strong passwords and two-factor authentication.
Incident response
- Detection. Errors, failed deliveries, restores that hang and health checks are monitored around the clock by an internal alerting bot.
- Containment. On a suspected breach we revoke the affected access tokens, rotate secrets and, if needed, pause restores and deliveries until the cause is fixed.
- Notification. Affected merchants are notified by e-mail within 72 hours of confirming an incident; Shopify is informed through the Partner channels.
- Review. Every incident ends with a written post-mortem and a change that prevents the same failure.
What the app cannot tell you
Shopify tells apps what changed and when, never who changed it. We do not know which member of your staff edited a price, and we never imply that we do.
Contact
Questions or GDPR requests: [email protected], or the support form.