Privacy Policy
This policy explains what data Catalyn collects from your Shopify store, why, how long it's kept, and how to reach us. It applies to the Catalyn app only. For our other products, see their own policies.
What we collect
- Store information: your shop domain, plan and settings, and Shopify access tokens (encrypted at rest) that let Catalyn call the Shopify Admin API for you.
- Product data: titles, descriptions, vendor, product type, tags, SEO fields, category, status, variants (SKU, barcode, price, options), image URLs, sizes and alt text, and metafields in the namespaces you choose to manage. For the Google Shopping and AI shopping checks it also reads Shopify's category metafields (such as colour, fabric and target gender) and the fields the Google & YouTube channel stores on products and variants, such as gender, age group and MPN. If you approve the permission, Catalyn can also set the category attributes you choose; it never changes the Google channel's fields. Catalyn keeps its own copy and the last version seen in Shopify, so it can show differences and undo changes.
- Supplier files you upload: the file itself until it's imported (deleted then, or after 30 days if you don't finish), plus the column mapping you confirm and the import results.
- Scheduled exports (optional): if the store owner schedules one, the product filters, file type, schedule and recipient email address, and a record of each delivery. The export file itself is built when it's sent and isn't kept.
- Images you upload: product images you upload from your computer are stored by Catalyn at a private, unguessable link so Shopify can copy them when you approve the change. They're deleted once they're in Shopify, or after 30 days if they never get there.
- Supplier feeds you set up: the feed's address (web link, Google Sheets link or server and file path) and, if you enter them, the username and password for it, stored encrypted and never shown again. Each file Catalyn fetches is handled like an upload: deleted once imported. For SFTP servers Catalyn remembers the server's public key so it can tell if the server changes.
- Google account (optional): if the store owner connects a Google account for private Google Sheet feeds, its email address and a Google refresh token (encrypted at rest) that lets Catalyn read the sheets your feeds point to. See “Google Sheets” below.
- Your requirements and history: requirement profiles and rules, readiness results, stage history, change sets and an audit log. These record which staff member did what using their Shopify staff user ID — that ID is personal data, and is deleted with everything else.
- Staff who open Catalyn: each staff member's Shopify user ID and when they last opened the app. When the store owner manages approvers or digest emails, Catalyn asks Shopify to confirm who is signed in and keeps that person's name, whether they're the store owner and, if Shopify has verified it, their email address. This is used only to show the staff list and enforce who can approve changes.
- Weekly digest emails (optional): if the store owner turns them on, the recipient email address they choose and a record of each digest sent (its counts of blockers, Shopify changes, pending approvals and feed problems, and whether delivery succeeded).
- Usage of AI features: how many AI requests your store made and their size, for cost tracking and plan limits.
What we don't collect
Catalyn does not request or store any of your customers' personal data: no names, emails, addresses or
orders. Its Shopify permissions are limited to products and publications
(read_products, write_products, read_publications,
write_publications).
How we use it
Solely to run the app: scoring your products against your requirements, importing supplier files, moving products through your workflow, and writing to your store only the changes you approve.
AI column matching
When you upload a supplier file with a layout Catalyn hasn't seen, it can ask an AI model (Anthropic's Claude) to suggest which column is which. Only the column names and up to five sample values per column are sent — never the whole file — and the result is a suggestion you confirm. Anthropic doesn't use API data to train its models. You can turn AI matching off in Settings; Catalyn then matches columns by keyword.
PDF price lists
If you upload a supplier price list as a PDF, Catalyn sends the whole PDF to Claude to extract its table into rows and columns — unlike spreadsheets, where only column names and samples are sent. You're asked to confirm before a PDF is uploaded. The extracted rows then go through the same mapping and preview steps as a spreadsheet, and the PDF is deleted like any other uploaded file. Anthropic doesn't use API data to train its models.
Photos and product page links
If you import from a photo (for example packaging or a spec label), Catalyn sends that photo to Claude to read the product details, after you confirm, and deletes it like any uploaded file. If you import from links to a supplier's product pages, Catalyn fetches each page once, identifying itself as CatalynBot and respecting the site's robots.txt. It reads the product data the page publishes for search engines; only for pages without it is the page's text sent to Claude. Product images are imported only if you confirm you may use them.
AI fixes
Only when you ask (“Fix with AI” on a product, or for products you select), Catalyn sends that product's details to Claude to write missing content: its title, description, vendor, product type, category, tags, option names and values, the attributes Catalyn manages, and existing image alt text. Product images stored on Shopify's CDN are included so alt text describes what's actually shown. No customer or order data is ever sent. The suggestions are shown to you to edit or skip, and nothing is published without your approval. Anthropic doesn't use API data to train its models.
Google Sheets (optional)
If the store owner connects a Google account, Catalyn asks Google for read-only access to that account's
Google Sheets (spreadsheets.readonly) and its email address. Catalyn only reads the specific
sheets you add as supplier feeds, on the feed's schedule, and handles their contents like any other supplier
file. It can't change, create or delete your sheets, and it doesn't read other Google data such as Gmail or
Drive files. You can disconnect at any time in Settings; Catalyn then revokes its access with Google and
deletes the token. Uninstalling Catalyn does the same.
Catalyn's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Data from Google is used only to import your supplier sheets, is never used for advertising, is never sold, and isn't used to train AI models.
Supplier upload links (optional)
If you share an upload link with a supplier, the file they send is stored and handled like a file you upload, together with the name, email address and note they choose to enter. Catalyn uses that email address only to send them a receipt for the file on your behalf (you can switch receipts off), and keeps it with the import for your records. It is deleted with your other data when you uninstall.
Translations (optional)
If you turn on translations, Catalyn reads your store's languages and your products' translations from Shopify and keeps them, with any drafts you make, alongside your products. Translations are written to Shopify only when you approve them. They're deleted with your other data when you uninstall.
AI assistants (optional)
If the store owner creates an API key and connects an AI assistant (for example Claude) to Catalyn, that assistant can read the store's Catalyn product data and, with a draft-access key, draft product edits that wait for approval. The data goes to the assistant the owner chose, under that provider's terms. Catalyn stores only a hash of each key, logs drafted edits, and stops access as soon as a key is revoked.
Image background removal (optional)
Resizing, squaring and converting product images happens on Catalyn's own servers. Only if you choose “Remove the background” for an image does Cloudflare fetch that image from Catalyn and return it with the background removed, using an open-source model on Cloudflare's own servers. No other data is sent with it, and the result replaces the image only when you save.
Where it's stored
- All data is stored in a PostgreSQL database hosted on Railway. Each store's data is isolated by database row-level security.
- Uploaded supplier files and product images, until they're deleted, are kept either in that database or in Cloudflare R2 object storage (EU), in a private bucket only Catalyn can read.
- Shopify access tokens and the Google refresh token are encrypted before they're stored, with keys kept separately from the data.
Data retention and deletion
- Uploaded supplier files: deleted when the import is committed, or after 30 days if it isn't.
- Google connection: revoked and deleted when you disconnect it in Settings or uninstall the app.
- Readiness history: the latest results per product are kept; older ones are trimmed automatically.
- When you uninstall, your access tokens are cleared immediately and Shopify asks us to delete your store's data; every record tied to your store is permanently deleted within 48 hours. Products in your Shopify store are not affected by uninstalling.
You can request deletion at any time by uninstalling the app or emailing us.
Third parties
We use these subprocessors to run the app, only for hosting or processing on our behalf:
- Shopify — the platform Catalyn runs on and bills through; see Shopify's privacy policy.
- Railway — application and database hosting.
- Anthropic — AI column matching (column names and sample values only; optional), PDF price-list extraction (the PDF you upload), reading photos and product pages you import from, translation drafts (the product text and your glossary, only when you ask for AI translation) and AI fixes (the product details listed above, only for products you choose).
- Resend — delivers the optional weekly digest, supplier feed alerts and scheduled product exports (as a CSV or Excel attachment) to the address the store owner chooses.
- Sentry — error monitoring for the app's servers and the app's pages in your browser (EU data region). Error reports contain technical details such as the error, where in the code it happened and the page's address without its parameters; request contents, headers, cookies and user details are removed before sending, and no screen recordings are taken.
- Google — only if you connect a Google account: reading the Google Sheets your supplier feeds use. And only if you create a channel feed: Google Merchant Center fetches that feed from a private link, which holds your Shopify product and variant ids and the custom labels you choose (such as margin band or supplier name).
- Meta, Pinterest, TikTok — only if you create a catalog feed for them: they fetch your published products (titles, descriptions, prices, images, identifiers and the custom labels you choose) from a private link.
- Cloudflare — DNS, R2 storage for uploaded files and images while they're needed, and background removal for the product images you choose.
We do not sell your data, and we do not share it with any other third party.
Your rights
Depending on where you're located, you may have rights to access, correct or delete your data (for example under the UK GDPR or EU GDPR). Contact us to exercise them; uninstalling triggers full deletion as described above.
Changes to this policy
We'll update the "last updated" date above if this policy changes and post the new version at this URL. Material changes will be communicated in the app.
Contact
Questions about this policy or your data: [email protected].