Privacy policy
Who we are
Seenly is an app for Shopify stores. It sorts the products in a store's collections on a schedule. Aljodi Integrated e-commerce runs the app. Our postal address is Abu Alanda 11152, Amman, Jordan. In this policy, "we" means Aljodi Integrated e-commerce, and "you" means the merchant who installs the app.
This policy says what data the app reads from your store, what it stores, how long it keeps it, and how it deletes it. It covers the app, these web pages, and the messages you send us.
What the app reads
The app asks Shopify for two permissions, called scopes, and no others:
read_products: to read your collections, their products, and each product's status, dates and availability.write_products: to set a collection's sort order and to move its products.
With these permissions, the app reads the data in this table.
| What the app reads | Why | Does the app store it? |
|---|---|---|
| Your store's time zone | To run a Daily schedule at your store's local hour | Yes |
| Your collections: ID, handle, title, number of products, and the collection's image | To show your collections on the app's screens | The ID and the handle, in the database. The title, the number of products and the image's address and text can also appear in the app's logs |
| The products in each collection the app sorts: product ID, status, publish date, creation date, and whether each variant is for sale | To build the new order of the collection | Yes, in the files of each sort. No titles, no prices and no inventory numbers |
| The order of products in a collection, before and after a sort | To find which products to move, and to check the order in Shopify after every sort | Yes, in the files of each sort |
| Product titles and photos, and the SKU of a pinned product's first variant | To show product names and photos on the app's screens | No. The app reads them when a screen opens, and does not keep them |
The app reads each collection in Shopify's own Best selling order. It sees each product's place in that order. It never sees a sales number.
What the app changes in your store
The app changes only two things:
- a collection's sort order, for example to Manual, or to one of Shopify's own sort orders when you choose one;
- the positions of products in a collection.
The app never changes a product, a price, an inventory level, a title, a theme or a file of your storefront.
What the app stores, and why
| What the app stores | Why |
|---|---|
| Your store's address (its myshopify.com domain), the app you installed, and the install time | To know which store the app works for |
| The access token and the refresh token that Shopify gives the app. They are encrypted | To read and sort your collections on your schedule, also when nobody has the app open |
| Your settings: sorting profiles (lanes, pinned product IDs, rotation days), schedule, pause, language and time zone | To sort the way you chose |
| For each collection the app has seen: its ID and handle, whether the app sorts it, its own profile, its pause, and its rotation records | To sort each collection you chose and show its status |
| The IDs of products you excluded from the top positions | To keep those products out of the top positions |
| For products in a collection the app sorts: the product ID and a score of how often the product was in the top positions | So that Product rotation can pick products that were rarely in the top positions |
| A record of each sort and of the run queue: status, times, and why a sort stopped | To continue a sort that stopped, and to show Recent runs and the Run queue |
| The files of each sort: product IDs, handles, statuses, dates, availability and positions | To continue a sort, and so that a person can check a sort later |
| A short lock while a sort runs: the store, the sort's ID, the server's name and times | So that only one sort works on a store at a time |
| A record of each uninstall message from Shopify, and the result of the deletion | To delete your data after the uninstall, and to show that it was deleted |
| Log lines: your store's address, event names, IDs, times and counts. When the app reads your collections, its log lines also hold each collection's ID, handle, title, number of products, and the image's address and text | To find and fix problems. A log line never holds a token |
The database is run by Neon. The files of each sort are kept in Vercel Blob, as private files. The logs are kept by Vercel.
How long, and how it is deleted
While the app is installed
The app keeps the data in the table above while the app is installed. Today there is no shorter time limit. There are four exceptions:
- the IDs of excluded products are deleted when you include the products again;
- the lock is deleted when the sort ends, or when a later sort of your store takes it over;
- the uninstall record is kept for 7 days after the deletion ends;
- log lines are kept for the time that Vercel keeps logs, also after an uninstall.
When you uninstall the app
- Shopify sends the app a message that you uninstalled it.
- The app checks Shopify's signature on the message. Then it records the message and answers Shopify. This step deletes nothing.
- The app's timer runs every minute. At its next run, it does the deletion first, before any sort. So the deletion normally happens within minutes.
- The deletion deletes your store's files in Vercel Blob first. Then it deletes your store's row in the database. This deletes every record linked to your store: settings, collections, excluded products, scores, sorts, the run queue and the access tokens. A lock record can stay, as the list below explains.
- If a step fails, the app tries again after 1, 2, 4, 8, 16, 32 and then 60 minutes, up to 10 times (about four hours). If it still fails, the app keeps a record of the failure so that a person can check it.
If you install the app again before the deletion runs, the deletion does not delete your new install.
About 48 hours after an uninstall, Shopify sends a second message, shop/redact. The app does the same deletion again. Normally nothing is left to delete.
What can stay after the deletion
- The uninstall record (your store's address, Shopify's message IDs, times, and the result) stays for 7 days after the deletion ends. If the deletion failed, the record stays until a person checks it.
- Neon keeps a history of the database so the database can be restored. Today this history is set to one day.
- Our service providers may also keep their own backups, for a time they set.
- Log lines that name your store stay in Vercel's logs for the time that Vercel keeps logs.
- If a sort stopped suddenly, for example because the server stopped it, its lock record can stay: your store's address, the sort's ID, the server's name and times. Today the deletion does not remove this record. It holds no other data.
When you write to us
When you write to support@shelfbench.com, we keep:
- your email address and your name;
- your store's address, if you give it;
- what you send us, for example your message and any screenshots.
We use them only to answer you and to help you with the app. Our email provider, Namecheap Private Email, keeps the messages. We keep a message while we need it to help you. You can ask us to delete it at any time.
What the app never collects
- Customer data of any kind: names, email addresses, postal addresses or phone numbers.
- Orders, order lines or sales numbers.
- Payment or card data.
- Inventory numbers. The app sees only whether each variant is for sale.
- Protected customer data, as Shopify defines it.
- Data about shoppers on your storefront. The app adds nothing to your storefront.
- Analytics or tracking of its own in the app's screens. The screens load only Shopify's own App Bridge and Polaris files and the app's own files. Shopify's App Bridge, which every embedded app loads, can send page-speed measurements to Shopify.
- The identity of your staff. When a staff member opens the app, Shopify tells the app which staff account it is. The app checks this, but does not store it or write it to a log.
Cookies. The app's screens set no cookies. The app uses no cookie for tracking or analytics. One older install address can set one security cookie, for 10 minutes. Shopify's own install does not use that address. These public pages set no cookies, run no scripts and use no analytics.
Request logs. Our hosting provider, Vercel, records each request to the app's screens and to these pages in its request logs. A record holds the IP address and the browser that sent the request. Vercel keeps these logs for the time that Vercel keeps logs.
Our role, and why we use the data
- We use the data in this policy only to run the app for you: to sort your collections, to show the app's screens, and to answer your messages. We use it for nothing else.
- The legal basis is our agreement with you to provide the app. In the words of the GDPR (the European Union's data protection law), this is a contract.
- For your store's data, we act for you and on your instructions. In the words of the GDPR, you are the controller and we are the processor.
- For the messages you send us and for the request logs, we decide how the data is used. In the words of the GDPR, we are the controller.
- We do not sell or share personal information, as the California Consumer Privacy Act (CCPA) uses these words. We do not use the data for advertising.
Service providers
The app uses these service providers, and no others:
| Provider | What it does for the app | What data it handles |
|---|---|---|
| Shopify | The platform the app works on. All the data the app reads comes from Shopify. Shopify sends the app its messages and serves App Bridge and Polaris | The data in "What the app reads" |
| Vercel | Runs the app's code and these pages, runs the timer every minute, keeps the files of each sort in Vercel Blob, and keeps the logs | The app's requests and their request logs, the files of each sort, and the logs |
| Neon | Runs the app's database | The data in "What the app stores, and why", except the files of each sort and the logs |
| Namecheap Private Email | Runs our support mailbox | The messages you send us, as "When you write to us" explains |
Apart from these providers, the app sends your store's data to no other company.
Where the data is kept
- The database is in the United States, in the AWS region us-east-1 (Neon).
- The files of each sort are in the United States, in Vercel's region iad1 (Vercel Blob).
If your store is outside the United States, the data in this policy is kept in the United States.
The data can come from the European Economic Area, the United Kingdom or Switzerland. For this data, each provider's data processing agreement gives the safeguards that the law asks for, such as the European Union's standard contractual clauses.
Security
- All traffic to Shopify and to the app's own address uses HTTPS.
- The connection to the database is encrypted, and the app checks the database server's certificate and name.
- The access token and the refresh token are encrypted (AES-256-GCM) before they reach the database. The key is kept in the hosting settings, not in the database.
- An access token is valid for one hour, and the app then renews it. The refresh token changes at each renewal.
- A token, a session token or a secret is never written to a log or an error message.
- Every request from the app's screens must carry a session token signed by Shopify. The app takes the store from that token, never from other values in the request.
- Every message from Shopify must carry Shopify's signature. The app checks it before it reads the message.
- The app's screens can be shown only inside the Shopify admin of the store itself.
- The app's timer refuses every call that does not carry the secret that Vercel sends.
- The files of each sort are private. A link alone does not open them.
- The app asks only for the two scopes it needs.
Your rights
You can ask us:
- what data the app holds about your store;
- to correct that data;
- to delete that data;
- to limit how we use that data, or to stop a use you object to;
- to give you a copy of that data in a common file format.
Write to support@shelfbench.com. Give your store's address (for example, your-store.myshopify.com). We may ask you to show that you can act for the store. We answer a request about your data within one month, the time that the GDPR sets.
You can also delete all the data yourself: uninstall the app. The section "When you uninstall the app" explains what happens next.
The law where you live may give you other rights. You can use them by writing to the same address.
If you are in the European Economic Area or the United Kingdom, you can also complain to the data protection authority where you live or work.
Shopify's privacy messages
Shopify sends apps messages about privacy. This is what the app does with each one.
| Message | What it means | What the app does |
|---|---|---|
app/uninstalled | The merchant uninstalled the app | Deletes the store's data, as "When you uninstall the app" explains |
shop/redact | Shopify asks the app to delete a store's data, about 48 hours after an uninstall | Does the same deletion again. Normally nothing is left |
customers/data_request | A customer asks for the data an app holds about them | The app holds no customer data, so it has nothing to send. It answers Shopify. It keeps nothing in its database. One log line records that the message arrived |
customers/redact | Shopify asks the app to delete a customer's data | The app holds no customer data, so it has nothing to delete. It answers Shopify. It keeps nothing in its database. One log line records that the message arrived |
For an uninstall or a shop/redact message, the app keeps Shopify's message IDs and times, not the message itself. If the IDs are missing, it keeps a fingerprint of the message (a SHA-256 hash) instead.
Shoppers
The app holds no data about your shoppers. It adds no script, no cookie and no code to your storefront. Shoppers see one change: the order of products in a collection.
Children
The app and these pages are for businesses. They are not meant for children. We do not knowingly collect data about children.
Changes to this policy
We update this page when the app changes what it reads, stores or deletes. The date at the top of this page shows the last change.
Contact
For a question about this policy or about your data, write to support@shelfbench.com.
Our postal address: Aljodi Integrated e-commerce, Abu Alanda 11152, Amman, Jordan.
For help with the app, see the support page.