Privacy policy

This policy explains what Bulk Look AI: Product Images collects from your Shopify store, why, who else processes it, and how to get it deleted.

Who we are

Bulk Look AI: Product Images is an embedded Shopify app that generates new product images from the main product photos already in your store and publishes the results back to your products. This policy covers the app and the pages on this domain.

What we collect through Shopify's APIs

The app requests the read_products and write_products access scopes. With those scopes we read:

  • Product title, description, handle, status, product type, vendor and tags.
  • Product options (for example Size or Color), the number of variants and, for the first five variants, each variant's title, SKU and weight.
  • The link to the product's main (featured) image. No other product image is read.
  • Product category and taxonomy values, which we use to pick a suitable image style.
  • Your store's myshopify.com domain, used to keep your data separate from other stores.

We write back only what you ask us to: an image you selected, added to the product you selected, with alt text.

We do not request access to your customers, orders, or any customer personal data. The app has no scope that would let it read them.

What we collect directly from you

  • Shopify session data: your store's myshopify.com domain, the access token Shopify issues to the app (with its refresh token, expiry date and the access scopes granted). Apart from the store email address described next, the app does not request the names or email addresses of your staff accounts.
  • Your store's email address: the app reads the store owner's email address, and the store's customer-service email address, from your Shopify store settings, and Shopify includes the store's email addresses in the notification it sends when the app is uninstalled. We keep one of them, the owner's address when there is one, only to send you the notices described under What happens when you uninstall. We do not use it for marketing.
  • The settings you choose in the app: generation type, category, image size, background scene, selected model character, and any prompt text you write yourself.
  • Character images you upload, if you choose to upload your own model photo instead of using a preset, and the portraits you create with Create new.
  • Credit balance, purchase history, generation history (including the text prompt sent for each image, which contains the product name and any instruction you typed), and promo code redemptions. Credit usage entries name the product a generation was for.
  • Any message you send us by email.

What we collect from your customers

Nothing. The app runs entirely in the Shopify admin. We do not place cookies or tracking on your storefront, we do not receive data about your shoppers, and no part of the app runs on your public store.

How we use it

  • To generate images. A text prompt is written from your product's details and your settings, and is sent together with links to the product's main photo to our image generation provider; the result is returned to you.
  • To publish images to your products when you click publish.
  • To operate the credit system: charging credits for a generation, returning them when the image provider reports a failure or an image is not made, and recording purchases.
  • To authenticate you and keep your data separated from other stores.
  • To send you the data-retention notices described under What happens when you uninstall: one email when you uninstall and two reminders before your data is deleted. They are notices about your data, not marketing.
  • To respond to support requests and to investigate errors and abuse.

We do not sell your data, we do not use it for advertising, and we do not use it for any purpose beyond running the app.

We do not train AI models on your data

Your product data and images are sent to third-party AI services only to produce the image you requested. We do not use your product data, images, or generated results to create, train, fine-tune, or improve any machine learning model. How long each provider keeps what it receives is set by that provider's own terms.

Third parties that process your data

To generate images we pass data to the following processors. Each one receives only what its task needs.

  • NanoBanana API (nanobananaapi.ai) — receives links to the product's main photo and, for model shots, to the character photo, plus a text prompt that contains the product name and any instruction you typed. It returns the generated image. It generates every product image. Its interface asks for a callback address; the app does not use callbacks (it asks for the result itself), so it gives a placeholder on the reserved example.com domain, which is not ours. NanoBanana may try to send its completion notice, which contains a link to the generated image, to that address.
  • Replicate (replicate.com) — generates the portrait when you use Create new in the character picker. It receives only a text description built from the options you choose (gender, ethnicity, skin tone, hair colour and length, age range). It does not receive product data or photos, and the app does not use it to generate product images.
  • xAI (x.ai) — writes the text prompt. It receives text only: the product title, product type, category, vendor, tags, the first 1,500 characters of the description, options, variant titles and weights, the style and settings you chose, the character's name and any instruction you typed. It does not receive images.
  • Cloudflare R2 (cloudflare.com) — stores generated images and AI-generated character portraits.
  • Cloudflare (cloudflare.com) — DNS and proxy for this app's domain, so all traffic between your browser and the app passes through it.
  • A separate upload service — when you upload a photo for a character, the app asks this service for a storage location and your browser sends the photo there. It holds that photo, and the app's request to delete it may not succeed (see How long we keep it).
  • Brevo (brevo.com) — sends the notices described under What happens when you uninstall. It receives your store's email address, your store's myshopify.com domain and the text of the message, and keeps delivery logs under its own terms.
  • Shopify — handles all payments through Shopify Billing. We never see or store your card details.

Your browser also loads fonts from Google Fonts and preset and character pictures from Unsplash and a third-party image host.

Generated images are stored in Cloudflare R2 and served from a public URL. The URL is not listed or indexed by us, but anyone who has the link can open the image. When you delete an image in the app, the app removes its record and asks storage to delete the file. If storage does not confirm the deletion after a few tries, the app keeps a hidden record of the file, so that it can still be found and removed, and deletes that record with the rest of your store's data. Copies already published to your Shopify product, and copies cached by Cloudflare or a browser, are not removed by this.

Where data is stored and processed

The app runs on servers in the United States, and the processors listed above operate internationally. If you are located in the European Economic Area or the United Kingdom, your data is transferred outside that area for processing. We are not established in Europe.

How long we keep it

  • Generated images: kept until you delete them in the app. If you uninstall the app they are kept for 14 days, so that you can reinstall and carry on, and are then deleted (see What happens when you uninstall).
  • The record of each generation (the text prompt, the product, the settings and the time): kept with its image and deleted with it. A generation that failed or was cancelled leaves a record that the app does not show you, so you cannot delete it there; it is deleted with the rest of your store's data 14 days after you uninstall, or sooner if you email us.
  • Prompts we have written for your products: the app keeps the text prompt written for a product and its settings, so that the same request is not written twice. It is not shown in the app and is not deleted when you delete an image. It is deleted 14 days after you uninstall, or sooner if you email us.
  • Characters you upload or create: kept until you delete the character in the app, or until 14 days after you uninstall. Deleting removes it from your list and asks storage to delete the picture. For an uploaded photo the request may not succeed, because the photo is held by the upload service; email us if you need it removed.
  • Session and access token: deleted as soon as Shopify tells us you uninstalled the app (its app/uninstalled notification, which Shopify sends when you uninstall), and again when your store's data is deleted. Shopify's shop/redact request, which it sends about 48 hours after you uninstall, is also handled.
  • Your store's email address and the notices we sent you: once the app has read the address from your store settings it is kept, and it is deleted with the rest of your store's data. We keep a record that each notice was sent or skipped, and that the deletion happened (your store domain, the dates and how many items were deleted), without the address or the text.
  • Credit balance and transaction history: kept, including after you uninstall, for accounting and fraud records. When your store's data is deleted, the product names are removed from the credit entries; the amounts, dates, charge references and the balance stay, and so does the list of promo codes your store used, which enforces one use per store. Reinstalling the app gives you your credit balance back.
  • Database backups: a copy of the database is taken before each update of the app, and the last 20 copies are kept. A record you delete, including a store's data deleted after an uninstall, can therefore remain in a backup until newer copies replace it. We restore a backup into the live app only to recover from a failure, and if we do, we delete again the data of every store that had already been deleted.
  • Server logs: short operational lines that contain your store's domain and, in some of them, a product name. They are rotated automatically by size and are not archived. The web server in front of the app and Cloudflare keep their own request logs, which include your store's domain in the address of each request, under their own settings.
  • Support email: kept for as long as needed to resolve the request.

What happens when you uninstall

  • As soon as Shopify tells us: we delete your session and access token, and send one email to your store's email address saying on what date your data will be deleted unless you reinstall, which is 14 days after you uninstalled. If Shopify's uninstall notification does not reach us, the same happens when its shop/redact request arrives about 48 hours later, and the date is still 14 days after the uninstall.
  • For 14 days: your images, characters, saved prompts, settings and credit balance are kept. If you reinstall the app in that time, nothing is lost and nothing is deleted.
  • On day 7 and on day 13 we send a reminder to the same address.
  • After 14 days: we delete your generated images (the files in storage and their records), your characters, the prompts we saved for your products and any session data that is left. The credit records described above are kept, without product names. Images you published to your Shopify products stay in Shopify. Stored images are served with a one-year cache lifetime, so a copy cached by Cloudflare or a browser can remain available for up to a year after the file is deleted.
  • If we cannot send an email (we have no valid address for your store, which the app reads from your store settings while you use it, or the email service is unavailable), the deletion still happens on schedule.
  • This schedule applies to stores that uninstall from now on. If you uninstalled before it started, it does not cover you yet: email us and we will delete your data.

Shopify's shop/redact request asks apps to erase a store's data and requires it to be done within 30 days of receiving it; the 14 days above end inside that period. To have your data deleted sooner, email [email protected].

Your rights and how to exercise them

Depending on where you are, you may have the right to access, correct, export, restrict, or erase the personal data we hold about you. To make a request, email [email protected] from the address associated with your Shopify account. We respond within 30 days.

We also handle Shopify's mandatory compliance webhooks (customers/data_request, customers/redact, and shop/redact), so requests routed through Shopify reach us automatically. We hold no customer data, so the two customer requests need no action. A shop/redact request is recorded and answered at once; the store's data is deleted on the schedule described under What happens when you uninstall.

Security

Data is transmitted over HTTPS. Shopify access tokens are stored in the app's database on the server (not encrypted at application level); API keys for the AI providers and storage are server environment variables. Neither is sent to your browser. Access to the production environment is limited to the app operator. No system is perfectly secure, so if we become aware of a breach affecting your data we will notify you without undue delay.

Children

The app is a business tool for merchants and is not directed to children. We do not knowingly collect data from anyone under 16.

Changes to this policy

If we change how we handle data, we will update this page and change the date in the footer. Material changes will also be announced in the app.

Contact

Email [email protected] with any question about this policy or about the data we hold.