PermuteDocs
Go to Permute

Connector guide

Connect Shopify to Permute

Create a merchant-owned Shopify app, grant the right read access, and start complete six-hour data snapshots in Permute.

The app and store must share one Shopify organization. Create the app while signed in to the Shopify organization that owns the target store.

What you need

  • A Shopify user who can build and install apps for the target store.
  • Access to the Shopify Dev Dashboard for the organization that owns the store.
  • A Permute workspace where you can create connectors.

1. Create the Shopify app

  1. Open the Shopify Dev Dashboard.
  2. Confirm the target store appears under Stores in the same organization.
  3. Select Apps, then Create app.
  4. Under Start from Dev Dashboard, name the app. For example, “Permute Data Connector.”
  5. Select Create.
Shopify Dev Dashboard screen for creating an app directly from the dashboard
Use “Start from Dev Dashboard.” Permute does not require a Shopify CLI project or an embedded app.

2. Configure an app version

Open Versions and select Create version. A version is Shopify's immutable snapshot of the app's URLs, access scopes, and API settings.

  1. Set App URL to https://shopify.dev/apps/default-app-home.
  2. Leave Embed app in Shopify admin turned off.
  3. Leave Use legacy install flow turned off so Shopify manages installation.
  4. Paste the scopes below into Shopify's main Scopes field.
  5. Leave Shopify's Optional scopes field empty.
  6. Select Release.

Minimum connection scopes

These five scopes are required. The connector will reject the connection if any one is missing.

text
read_products,read_inventory,read_locations,read_orders,read_customers

Recommended broad-access scopes

For the highest-coverage integration, use the complete list below. These are read-only permissions. Permute does not request Shopify write scopes.

text
read_products,read_inventory,read_locations,read_orders,read_customers,read_draft_orders,read_returns,read_discounts,read_payment_terms,read_assigned_fulfillment_orders,read_merchant_managed_fulfillment_orders,read_third_party_fulfillment_orders,read_marketplace_fulfillment_orders,read_fulfillments,read_shipping,read_inventory_transfers,read_inventory_shipments,read_store_credit_accounts,read_store_credit_account_transactions,read_shopify_payments_accounts,read_shopify_payments_payouts,read_shopify_payments_disputes,read_shopify_payments_dispute_evidences,read_markets,read_publications,read_product_listings,read_marketing_events,read_metaobject_definitions,read_metaobjects,read_files,read_content,read_online_store_navigation,read_legal_policies,read_locales,read_translations
Shopify app version API access form with scopes entered in the required Scopes field
Put all requested permissions in Scopes and leave Optional scopes empty. Shopify may change minor labels without changing this distinction.

What the expanded scopes unlock

Data areaAdditional Shopify scopes
Draft orders, returns, discounts, and payment termsread_draft_orders, read_returns, read_discounts, read_payment_terms
Fulfillment orders, services, carrier services, and delivery profilesread_assigned_fulfillment_orders, read_merchant_managed_fulfillment_orders, read_third_party_fulfillment_orders, read_marketplace_fulfillment_orders, read_fulfillments, read_shipping
Inventory transfers and shipmentsread_inventory_transfers, read_inventory_shipments
Store credit accounts and transactionsread_store_credit_accounts, read_store_credit_account_transactions
Shopify Payments payouts, balance transactions, disputes, and evidenceread_shopify_payments_accounts, read_shopify_payments_payouts, read_shopify_payments_disputes, read_shopify_payments_dispute_evidences
Markets and product publication statusread_markets, read_publications, read_product_listings
Marketing, metaobjects, files, site content, policies, locales, and translationsread_marketing_events, read_metaobject_definitions, read_metaobjects, read_files, read_content, read_online_store_navigation, read_legal_policies, read_locales, read_translations
Shopify Payments access depends on the store. The store must use Shopify Payments, and the installing Shopify user needs the applicable payout permission. If the Payments scopes are unavailable or a query is denied, remove those scopes and tables rather than blocking the rest of the connector.

3. Install the app on the store

  1. Return to the app's Overview page.
  2. In the Installs card, select Install app.
  3. Select the target store, review the read permissions, and confirm installation.
  4. Return to the Dev Dashboard and confirm the installation count increased.

The app must be installed before Permute can exchange its client credentials for an access token. Shopify does not display a permanent Admin API token for this app type.

Shopify Dev Dashboard app overview with the Install app action
The Install app action appears in the Installs card after a version has been released.

4. Copy the connection details

Open the app's Settings page and copy:

  • Client ID
  • Client secret
Treat the client secret like a password. Enter it only into Permute. Do not send it through chat, email, screenshots, tickets, or source code. Rotate it in Shopify immediately if it is exposed.

Copy the permanent store domain

  1. Open Shopify Admin for the target store and select Settings.
  2. In the shop settings menu, select Domains.
  3. Find the domain ending in .myshopify.com, such as example-store.myshopify.com.
  4. Copy the domain name exactly as shown.

Copy only the myshopify.com domain name. Do not include https://, a URL path, an admin.shopify.com address, or a custom storefront domain.

Shopify Admin settings with Domains selected and the myshopify.com domain row visible
Select Settings, then Domains. The permanent store domain appears in the Domain column.
Shopify domain details page showing the permanent myshopify.com domain as the page heading
You can also open the domain row and copy the myshopify.com value from the page heading.

5. Add Shopify in Permute

  1. Open the target Permute workspace.
  2. Go to Connectors and select Add connector.
  3. Choose Shopify.
  4. Enter a recognizable connector name.
  5. Enter the permanent Shopify store domain, Client ID, and Client secret.
  6. Choose Everything to ingest every table allowed by the granted scopes, or Selected only to restrict the connector to explicitly selected tables.
  7. Select Connect.

Access orders older than 60 days

Shopify normally limits read_orders to the recent order window. To make the complete order history available, request Shopify approval for read_all_orders from the app's Request access page.

  1. Submit Shopify's Read all orders access request and explain the Permute analytics use case.
  2. Wait for Shopify to approve the request.
  3. Create a new app version and add read_all_orders to the main Scopes field.
  4. Release the version and approve the updated store permissions.
  5. Run or wait for the next Permute sync.

The Client ID and Client secret do not change. Permute checks the app's granted scopes and automatically uses the expanded order history after Shopify grants it.

Change access later

When you add or remove Shopify scopes:

  1. Create a new version in the Dev Dashboard.
  2. Update the main Scopes field and release the version.
  3. Open or reinstall the app on the store to approve any added permissions.
  4. Run the connector again. Credentials only need replacement if you rotated the client secret.

Troubleshooting

Message or symptomWhat to check
shop_not_permitted or authentication failsThe app and store are not in the same Shopify organization, or the app is not installed.
Missing required scopesAdd all five minimum scopes to the main Scopes field, release a version, and approve the update.
Connector succeeds but some tables are absentThe relevant expanded scope is missing, the table was not selected, or the store has no matching data.
Only recent orders are visibleread_all_orders has not been approved and granted.
Shopify Payments access deniedConfirm all Payments scopes, Shopify Payments activation, and the installing user's payout permission.
A bulk query does not finishConfirm the app is still installed and retry the connector sync. Permute cancels active operations after approximately 13 minutes so the sync can fail safely.

Shopify references