Command Palette

Search for a command to run...

Shopify connector — required scopes

What each Shopify Admin API scope unlocks during a migration to Insites, and which scopes to skip.

Shopify uses Custom Apps with per-resource Admin API scopes. The Insites migration only reads — Studio never writes back. This page lists every scope Studio asks for and what would be silently lost from your migration if it isn't granted.

Generate the token#

  1. Open Shopify's custom-app developer area

    In Shopify admin, go to Settings → Apps and sales channels → Develop apps. Enable custom-app development if it isn't already on for the store.

  2. Create the app

    Click Create an app, name it Insites Studio, then open the Configuration tab.

  3. Tick the scopes

    Under Admin API access scopes, tick the scopes from the next two tables. Leave the Storefront API scopes alone — Studio doesn't use them.

  4. Install and copy the token

    Save, then click Install app. Copy the Admin API access token (starts with shpat_) and paste it into the connector form along with your store domain (e.g. your-store.myshopify.com).

Required (always tick these)#

The connector cannot complete without these. The connection test will fail explicitly if any are missing.

ScopeModuleWhy we need it
read_productsEcommerceProducts, variants, options, and metafields. The core of an ecommerce migration. Without this scope the migrated store has no catalog.
read_ordersEcommercePast orders with line items and totals. Insites Ecommerce uses this for order history, refunds, and reporting continuity.
read_customersCRMCustomer records become CRM contacts on the new instance. Without it, customer history is lost on day one of the new site.
read_contentCMSPages, blog articles, and navigation menus. Storefront content beyond products lives here.
read_filesAssetsFiles uploaded to the Shopify Files area (PDFs, look books, downloadable assets) — separate from product images. Pulled through the asset pipeline.

The connector silently skips these blocks if the scope isn't granted, so a content-light store still works. But anything missing here is data your migrated store will be missing too — usually with no obvious sign until the first refund, restock, or campaign report.

ScopeModuleWhy we need it
read_inventoryEcommerceStock levels per location. Without it, the migrated store starts with unknown inventory and has to be re-seeded by hand.
read_locationsEcommerceStore locations and fulfilment points. Multi-location stores need this; single-location stores can skip.
read_discountsEcommerceActive and historical discount codes. Without it, promo codes printed on packaging or flyers stop working post-migration.
read_price_rulesEcommerceAutomatic discount conditions (BOGO, tiered pricing, etc.). Required if discounts are anything more than flat codes.
read_themesCMS layoutTheme files (Liquid templates, sections, snippets, settings). Lets us keep the design intent rather than re-skinning blind.
read_script_tagsCMS layoutThird-party scripts injected by the storefront (analytics, chat, A/B test tools). Without it the migrated site silently loses these tags.
read_shippingEcommerceShipping zones and rates. Required to recreate the same checkout experience without rebuilding the rate table from memory.
read_fulfillmentsEcommerceFulfilment status per order. Needed for in-flight orders during the migration window.
read_draft_ordersEcommerceDraft orders (sales-rep-built carts, B2B quotes). Skip if you don't use draft orders.
read_marketing_eventsCRMEmail campaigns and ad campaign metadata. Useful for marketing continuity reports; skip if marketing lives elsewhere.

Skip these#

These scopes don't unlock anything useful for a migration. Leaving them off keeps the token's blast radius small if it's ever leaked.

ScopeWhy we skip
write_*Studio only ever reads from Shopify during a migration. Never grant any write scope.
read_all_ordersDefaults to last 60 days are fine for most migrations. Only request this scope (which Shopify gates behind a Plus app review) if you specifically need orders older than 60 days.
read_reportsShopify-generated reports — not data the new site needs. Recreate reporting natively in Insites.
read_usersShopify staff accounts. Insites has its own staff/role model; don't mix the two.

Token storage (alpha)#

Tokens are kept in your browser's localStorage so a refresh or shared link doesn't lose the migration session. They are sent to the Insites server only at the moment of a connection test or import run, and are never logged. Before GA we'll switch to real OAuth so tokens never touch your browser at all.

Rotate the token after the migration completes — see other connector guides.