Built to be handed a live store.
It reads a lot and writes only what you approve. Here is what it can reach.

One secret, handled properly.
Connecting means handing over one client secret. This is what happens to it.
How it usually goes
- Pasted into a shared doc or an email
- Stored in plain text on a server
- Shown again to anyone who asks
- Impossible to tell who used it, or when
Ecomsync
- Encrypted on arrival with a key we never see
- Never logged, never shown again
- Rotatable, and revocable from Shopify in one click
- Stored in the EU, with every use on the record
Every write is gated
Six things stand between a request and your store.
None of them rely on the model being right.
- Read before write
- Live values first. Rows that change mid-review are skipped.
- Approval gate
- Nothing is written without a person approving the list.
- Rollback
- One click restores a run exactly. Never costs a change.
- Audit trail
- Who asked, what changed, when. Kept 90 days on every plan.
- Guardrails
- Protected products, price caps and floors. Typed confirmation for anything destructive.
- Fixed capabilities
- A fixed set of typed actions. Text it reads is data, never instruction.
What we hold, and what we never touch.
No customer or order scopes, so no customer personal data anywhere in the system.
- EU region for all storage
- Data processing agreement on request
- Deletion on account close, with a documented timeline
- No third-party analytics inside the app
What Ecomsync stores
- Catalogue snapshot
- Products, variants, collections, metafields, images and inventory. Refreshed daily for the health score.
- Change records
- Old and new value of every field written, who approved it and when. Kept 90 days.
- Credentials
- Store domain, client ID and encrypted client secret.
- Account details
- Your name, email and billing details, handled by Stripe.
Plain words, a fix, and an undo button.
Failures say what failed and what to do next.
Example message
Three products were skipped because they changed in Shopify while you were reviewing. Reload to see the current values.
Example message
Run #15 reversed. 49 fields restored to their previous values. 0 changes used.
Shopify's rate limits are respected, so large runs take minutes instead of failing halfway. Failed changes are never charged.
The questions merchants ask before connecting.
No. Ecomsync never asks for customer or order permissions. It also refuses any request that touches orders, customers, checkouts or refunds before it reaches Shopify, even on a store that granted those permissions to another app.