Skip to main content

Shopify

Integrating Shopify with Osano

Connecting to Shopify


In order for Osano to discover data stored in your systems, we must connect to those data providers via an API. We require, at minimum, read-only access to establish a connection to these providers. Each provider you connect may require different information. Please see the linked vendor documentation for instructions on where and how to obtain this data.


Setup

An admin must create a custom app in the Shopify Dev Dashboard and enter its Client ID and Client Secret in Osano to establish a connection. Osano uses these credentials to obtain an Admin API access token via the client credentials grant and refreshes the token automatically.

Authenticated Roles

admin

Authentication Actions

  • API Key

Create a custom app in Shopify and give Osano its Client ID and Client Secret. Osano exchanges them for an Admin API access token via the client credentials grant and refreshes it automatically — you never paste or rotate a token yourself.

  1. In the Shopify Dev Dashboard, create a custom app for your organization. (New custom apps can no longer be created from the Shopify admin.)
  2. Add the read_customers Admin API access scope to the app.
  3. Release an app version so the scope takes effect.
  4. In the Shopify Partner Dashboard, set the app's distribution to Custom distribution: App distribution → select your app → Choose distribution → Custom distribution → Select. This grants the Protected Customer Data access Osano needs to read customer names, emails, phone numbers, and addresses.
  5. Install the app on your store.
  6. Copy the app's Client ID and Client Secret from the Dev Dashboard, and note your shop subdomain — the part before .myshopify.com (for example, osano-test in osano-test.myshopify.com/admin).
  7. Enter the Client ID, Client Secret, and Shop Subdomain in Osano.

⚠️ Custom distribution is required. Without it you will get an authorization error ("This app is not approved to access the Customer object") even with the read_customers scope. Distribution is set in the Partner Dashboard (the Dev Dashboard has no option for it) and cannot be changed after you select it.

Note: Generating an Admin API access token directly in the Shopify admin is deprecated and is no longer available for new custom apps. Existing integrations using a static Admin API access token continue to work, but new connections should use the Client ID and Client Secret above.

Authentication Methods

  • apiKey

Core Functionality

  • Data Discovery
  • User Search
  • Data Deletion

Base URL

https://$subdomain.myshopify.com

  • email
  • name
  • phoneNumber
  • address
  • birthday
  • userId

Endpoints

All requests use the Shopify GraphQL Admin API.

Used for data discovery

  • POST admin/api/2024-10/graphql.json — queries customers for a sample record, then customer for its fields

Used for user search

  • POST admin/api/2024-10/graphql.json — queries customers filtered by email, then customer for its fields

Troubleshooting

"Shopify could not complete the request: ... This app is not approved to access the Customer object" (the error may also mention ACCESS_DENIED or Protected Customer Data)

The app does not have Protected Customer Data access. This is separate from the read_customers scope — adding the scope, releasing a version, and reinstalling alone will not fix it. Grant access by setting the app's distribution to Custom distribution in the Shopify Partner Dashboard: App distribution → select your app → Choose distribution → Custom distribution → Select. Then reconnect in Osano. (Distribution cannot be changed once selected.)

"Shopify did not return an access token for the client credentials grant" (or an invalid_client / invalid_request error)

Osano could not exchange your Client ID and Client Secret for an access token. Confirm that:

  • The app was created in the Shopify Dev Dashboard (an app developed by your own organization). Apps created in the Partner Dashboard or directly in the Shopify admin cannot use the client credentials grant.
  • The app is installed on the store you are connecting.
  • The Client ID, Client Secret, and Shop Subdomain are entered correctly.

Demo Video

Last Modified: 2026-06-25